admin_url('admin-ajax.php'))); } /** * Function to override wordpress with activedemand landing page * @return none */ function activedemand_return_landing_page(){ $options = get_option('activedemand_options_field'); if(!is_array($options)) return; if(!array_key_exists('activedemand_appkey',$options)) return; $lp=_activedemand_return_landing_page(); if($lp){ //define anti-caching constants if(!defined('DONOTCACHEPAGE')) define ('DONOTCACHEPAGE', TRUE); if(!defined('DONOTCDN')) define('DONOTCDN', TRUE); if(!defined('DONOTCACHEDB')) define('DONOTCACHEDB', TRUE); if(!defined('DONOTMINIFY')) define('DONOTMINIFY', TRUE); if(!defined('DONOTCACHEOBJECT')) define('DONOTCACHEOBJECT', TRUE); echo $lp; die(); } } add_action('wp', 'activedemand_return_landing_page',1); /** * Formatting function for page url * @param string $url * @param int $id * @return string */ function activedemand_append_pageid($url,$id){ return $url.$id.'.html'; } function _activedemand_return_landing_page(){ global $wp_query; if(!$wp_query->is_page) return FALSE; $post_id=get_queried_object_id(); $landing_page_id= get_post_meta($post_id, ACTIVEDEMAND_LANDING, TRUE); if($landing_page_id===FALSE) return FALSE; $html=(string) activedemand_get_landing_html($landing_page_id); return $html; } /** * Retrieves landing Page using ActiveDemand API * @param int $id * @return string html of landing page */ function activedemand_get_landing_html($id){ $url= activedemand_append_pageid(ACTIVEDEMAND_LANDING_HTML_URL, $id); $html= activedemand_getHTML($url, 10); return $html; } /** * * @return array of Landing Pages */ function activedemand_get_landing_ids(){ $json= activedemand_getHTML(ACTIVEDEMAND_LANDING_ID_URL, 10); $arr= json_decode($json, TRUE); return $arr; } add_action('wp_ajax_get_landing_html', 'activedemand_ajax_get_landing_html'); function activedemand_ajax_get_landing_html(){ if(!isset($_POST['ad_landing_nonce']) || !isset($_POST['page'])) wp_die('Wrong Post'); $page_id= filter_var($_POST['page'], FILTER_SANITIZE_NUMBER_INT); $action='ad_landing-'.$page_id; if(!check_ajax_referer($action, 'ad_landing_nonce')) wp_die('bad nonce'); $lp_id= filter_var($_POST['activedemand_landing_id'], FILTER_SANITIZE_NUMBER_INT); $html= activedemand_get_landing_html($lp_id); echo $html; wp_die(); } /** * Include the ActiveDEMNAND Landing Page Meta box on Pages */ add_action('add_meta_boxes', 'activedemand_landingpage_metaboxes'); function activedemand_landingpage_metaboxes(){ //activedemand guard statements $options = get_option('activedemand_options_field'); if(!is_array($options)) return; if(!array_key_exists('activedemand_appkey', $options)) return; add_meta_box('activedemand-landing-page',PLUGIN_VENDOR.' Landing Page', 'activedemand_landing_metabox', 'page', 'side', 'low'); } function activedemand_landing_metabox($post){ $lp_id= get_post_meta($post->ID, ACTIVEDEMAND_LANDING, TRUE); $lps= activedemand_get_landing_ids(); $output='