testVar = "prova"; add_action( 'plugins_loaded', array( $this, 'plugins_loaded' )); //Admin script add_action( 'admin_enqueue_scripts', array(&$this,'load_iper_script') ); add_filter( 'option_cta_tel', array(&$this,'check_campaign_active_tel') ); add_filter( 'option_assistance_phone', array(&$this,'check_campaign_active_ass_phone') ); add_shortcode( 'phone_number', array(&$this,'get_phone_number') ); add_shortcode( 'campaign_id', array(&$this,'getCampaignID') ); add_shortcode( 'campaign_five9', array(&$this,'getCampaignFive9') ); add_shortcode( 'campaign_special', array(&$this,'getCampaignSO') ); add_shortcode( 'web_promo', array(&$this,'getWebPromotionText') ); add_shortcode( 'confirmation', array(&$this,'getConfirmationPageText') ); $cpt = new IperCptCampaign(); } public function plugins_loaded(){ //$this->addFilters(); } public static function instance() { if ( ! isset( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } public function check_campaign_active_tel($phonenumber){ if(!empty($_COOKIE) && !empty($_COOKIE[self::kCOOKIE_ID])){ //get campaign $campaign = $this->getActiveCampaignPhoneByID($_COOKIE[self::kCOOKIE_ID]); if(!empty($campaign)){ return $campaign; } } if(!empty($_SESSION[self::kCOOKIE_ID])){ $campaign = $this->getActiveCampaignPhoneByID($_SESSION[self::kCOOKIE_ID]); if(!empty($campaign)){ return $campaign; } } return $phonenumber; } public function check_campaign_active_ass_phone($phonenumber){ if(!empty($_COOKIE) && !empty($_COOKIE[self::kCOOKIE_ID])){ //get campaign $campaign = $this->getActiveCampaignPhoneByID($_COOKIE[self::kCOOKIE_ID]); if(!empty($campaign)){ return $campaign; } } if(!empty($_SESSION[self::kCOOKIE_ID])){ $campaign = $this->getActiveCampaignPhoneByID($_SESSION[self::kCOOKIE_ID]); if(!empty($campaign)){ return $campaign; } } return $phonenumber; } public static function getCampaignID(){ if(!empty($_COOKIE) && !empty($_COOKIE[self::kCOOKIE_ID])){ return $_COOKIE[self::kCOOKIE_ID]; } if(!empty($_SESSION[self::kCOOKIE_ID])){ return $_SESSION[self::kCOOKIE_ID]; } return null; } public static function getCampaignFive9(){ if(!empty($_COOKIE) && !empty($_COOKIE[self::kCOOKIE_ID_FIVE9])){ return $_COOKIE[self::kCOOKIE_ID_FIVE9]; } if(!empty($_SESSION[self::kCOOKIE_ID_FIVE9])){ return $_SESSION[self::kCOOKIE_ID_FIVE9]; } return null; } public static function getGoogle_KW(){ if(!empty($_COOKIE) && !empty($_COOKIE[self::kCOOKIE_Google_KW])){ return $_COOKIE[self::KCOOKIE_Google_KW]; } if(!empty($_SESSION[self::KCOOKIE_Google_KW])){ return $_SESSION[self::KCOOKIE_Google_KW]; } return null; } public static function getAB_Test(){ if(!empty($_COOKIE) && !empty($_COOKIE[self::KCOOKIE_AB_Test])){ return $_COOKIE[self::KCOOKIE_AB_Test]; } if(!empty($_SESSION[self::KCOOKIE_AB_Test])){ return $_SESSION[self::KCOOKIE_AB_Test]; } return null; } public static function getCanaryPhone(){ if(!empty($_COOKIE) && !empty($_COOKIE[self::KCOOKIE_CanaryPhone])){ return $_COOKIE[self::KCOOKIE_CanaryPhone]; } if(!empty($_SESSION[self::KCOOKIE_CanaryPhone])){ return $_SESSION[self::KCOOKIE_CanaryPhone]; } return null; } public static function getControlPhone(){ if(!empty($_COOKIE) && !empty($_COOKIE[self::KCOOKIE_ControlPhone])){ return $_COOKIE[self::KCOOKIE_ControlPhone]; } if(!empty($_SESSION[self::KCOOKIE_ControlPhone])){ return $_SESSION[self::KCOOKIE_ControlPhone]; } return null; } public static function getWebPromotionText(){ if(!empty($_COOKIE) && !empty($_COOKIE[self::kCOOKIE_WEB_PROMOTION_TEXT])){ return $_COOKIE[self::kCOOKIE_WEB_PROMOTION_TEXT]; } if(!empty($_SESSION[self::kCOOKIE_WEB_PROMOTION_TEXT])){ return $_SESSION[self::kCOOKIE_WEB_PROMOTION_TEXT]; } return null; } public static function getConfirmationPageText(){ if(!empty($_COOKIE) && !empty($_COOKIE[self::KCOOKIE_ConfirmationPageText])){ return $_COOKIE[self::KCOOKIE_ConfirmationPageText]; } if(!empty($_SESSION[self::KCOOKIE_ConfirmationPageText])){ return $_SESSION[self::KCOOKIE_ConfirmationPageText]; } return null; } public static function getCampaignSO(){ if(!empty($_COOKIE) && !empty($_COOKIE[self::KCOOKIE_WEB_TOP_BAR])){ return $_COOKIE[self::KCOOKIE_WEB_TOP_BAR]; } if(!empty($_SESSION[self::KCOOKIE_WEB_TOP_BAR])){ return $_SESSION[self::KCOOKIE_WEB_TOP_BAR]; } return null; } public function get_phone_number(){ $phoneNumber = get_option('cta_tel',true); return $phoneNumber; } /** * @param string $campaignID * @return bool|string */ public function getActiveCampaignPhoneByID($campaignID="-1"){ $campaign = get_posts( array( "post_type"=>IperCptCampaign::POST_TYPE, "posts_per_page"=>1, "meta_key"=>IperCptCampaign::kMETA_CAMPAIGN_ID, "meta_value"=>$campaignID) ); if (!empty($campaign)){ $campaign = $campaign[0]; //check is active $campaignStart = get_post_meta($campaign->ID,IperCptCampaign::kMETA_CAMPAIGN_START_DATE,true); $campaignEnd = get_post_meta($campaign->ID,IperCptCampaign::kMETA_CAMPAIGN_END_DATE,true); $campaignStart.=" 00:00:00"; $campaignEnd.=" 23:59:59"; $campaignStart = strtotime($campaignStart); $campaignEnd = strtotime($campaignEnd); $now=time(); if($now>=$campaignStart && $now<=$campaignEnd) { $campaignPhone = get_post_meta($campaign->ID,IperCptCampaign::kMETA_CAMPAIGN_PHONE,true); return $campaignPhone; }else{ return false; } } return false; } public function setCampaign($id="",$phone="",$id_five_9="",$WebPromotionText="",$WebTopBarSpecialOffer="",$Google_KW, $ABTest, $ConfirmationPageText="",$CanaryPhone="",$ControlPhone=""){ setcookie(self::kCOOKIE_ID, $id, 0,'/'); setcookie(self::kCOOKIE_PHONE, $phone, 0,'/'); setcookie(self::KCOOKIE_CanaryPhone, $CanaryPhone , 0,'/'); setcookie(self::KCOOKIE_ControlPhone, $ControlPhone , 0,'/'); setcookie(self::kCOOKIE_ID_FIVE9, $id_five_9, 0,'/'); setcookie(self::kCOOKIE_WEB_PROMOTION_TEXT, $WebPromotionText , 0,'/'); setcookie(self::KCOOKIE_WEB_TOP_BAR, $WebTopBarSpecialOffer , 0,'/'); setcookie(self::KCOOKIE_Google_KW, $Google_KW , 0,'/'); setcookie(self::KCOOKIE_AB_Test, $ABTest , 0,'/'); setcookie(self::KCOOKIE_ConfirmationPageText, $ConfirmationPageText , 0,'/'); if(!session_id()){ session_start(); } $_SESSION[self::kCOOKIE_ID]=$id; $_SESSION[self::kCOOKIE_PHONE]=$phone; $_SESSION[self::KCOOKIE_CanaryPhone]=$CanaryPhone; $_SESSION[self::KCOOKIE_ControlPhone]=$ControlPhone; $_SESSION[self::kCOOKIE_ID_FIVE9]=$id_five_9; $_SESSION[self::kCOOKIE_WEB_PROMOTION_TEXT]=$WebPromotionText; $_SESSION[self::KCOOKIE_WEB_TOP_BAR]=$WebTopBarSpecialOffer; $_SESSION[self::KCOOKIE_Google_KW]=$Google_KW; $_SESSION[self::KCOOKIE_AB_Test]=$ABTest; $_SESSION[self::KCOOKIE_ConfirmationPageText]=$ConfirmationPageText; } public function activate(){ $cpt = new IperCptCampaign(); $cpt->rewrite_flush(); } public function cronJob($data){ //TODO if(!empty($data->ResponseBody)){ //set all existing campaigns flag to delete $existings = get_posts( array( "post_type"=>IperCptCampaign::POST_TYPE, "posts_per_page"=>-1, "post_status"=>"publish" ) ); if(!empty($existings)){ foreach ($existings as $post){ update_post_meta($post->ID,IperCptCampaign::kMETA_DELETE,true); } } unset($existings); foreach ($data->ResponseBody as $single): // Match GetWebCampaigns CampaignDescription $CampaignID = $single->CampaignID; $StartDate = $single->StartDate; $PhoneNumber = $single->PhoneNumber; $CanaryPhone = $single->CanaryPhoneNumber; $ControlPhone = $single->ControlPhoneNumber; $LandingURL = $single->LandingURL; $FriendlyURL = $single->FriendlyURL; $EndDate = $single->EndDate; $CampaignName = $single->CampaignName; $Five9CallbackCampaign = $single->Five9CallbackCampaign; $WebPromotionText = $single->WebPromotionText;//fill campaign field $WebTopBarSpecialOffer = $single->WebTopBarSpecialOffer; $Google_KW = $single->GoogleKW; $ABTest = $single->ABTest; $ConfirmationPageText = $single->ConfirmationPageText; $postname = str_replace(get_bloginfo('wpurl'),"",$FriendlyURL); //find if exists post with this meta key $post = get_posts( array( "post_type"=>IperCptCampaign::POST_TYPE, "posts_per_page"=>-1, "post_status"=>"publish", "meta_key"=>IperCptCampaign::kMETA_CAMPAIGN_ID, "meta_value"=>$CampaignID ) ); if(!empty($post)){ //update post meta $post = $post[0]; update_post_meta($post->ID,IperCptCampaign::kMETA_DELETE,false); $my_post = array( 'ID'=> $post->ID, 'post_title' => wp_strip_all_tags( $CampaignName ), 'post_content' => "", 'post_status' => 'publish', 'post_author' => 1, 'post_type' => IperCptCampaign::POST_TYPE, 'post_name' => $postname, 'meta_input' => array( IperCptCampaign::kMETA_CAMPAIGN_ID => $CampaignID, IperCptCampaign::kMETA_CAMPAIGN_START_DATE => $StartDate, IperCptCampaign::kMETA_CAMPAIGN_PHONE => $PhoneNumber, IperCptCampaign::KMETA_CanaryPhone => $CanaryPhone,//pull text from sales force IperCptCampaign::KMETA_ControlPhone => $ControlPhone,//pull text from sales force IperCptCampaign::kMETA_CAMPAIGN_LANDING_URL => $LandingURL, IperCptCampaign::kMETA_CAMPAIGN_SHORT_URL => $FriendlyURL, IperCptCampaign::kMETA_CAMPAIGN_END_DATE => $EndDate, IperCptCampaign::kMETA_CAMPAIGN_NAME => $CampaignName, IperCptCampaign::kMETA_FIVE9 => $Five9CallbackCampaign, IperCptCampaign::kMETA_WEB_PROMOTION_TEXT => $WebPromotionText,//pull text from sales force IperCptCampaign::KMETA_WEB_TOP_BAR => $WebTopBarSpecialOffer,//pull text from sales force IperCptCampaign::KMETA_Google_KW => $Google_KW,//pull text from sales force IperCptCampaign::KMETA_AB_Test => $ABTest,//pull text from sales force IperCptCampaign::KMETA_ConfirmationPageText => $ConfirmationPageText ) ); wp_update_post($my_post); echo "\nUPDATE CAMPAIGN ".$CampaignName; }else{ //insert post $my_post = array( 'post_title' => wp_strip_all_tags( $CampaignName ), 'post_content' => "", 'post_status' => 'publish', 'post_author' => 1, 'post_type' => IperCptCampaign::POST_TYPE, 'post_name' => $postname, 'meta_input' => array( IperCptCampaign::kMETA_CAMPAIGN_ID => $CampaignID, IperCptCampaign::kMETA_CAMPAIGN_START_DATE => $StartDate, IperCptCampaign::kMETA_CAMPAIGN_PHONE => $PhoneNumber, IperCptCampaign::KMETA_CanaryPhone => $CanaryPhone,//pull text from sales force IperCptCampaign::KMETA_ControlPhone => $ControlPhone,//pull text from sales force IperCptCampaign::kMETA_CAMPAIGN_LANDING_URL => $LandingURL, IperCptCampaign::kMETA_CAMPAIGN_SHORT_URL => $FriendlyURL, IperCptCampaign::kMETA_CAMPAIGN_END_DATE => $EndDate, IperCptCampaign::kMETA_CAMPAIGN_NAME => $CampaignName, IperCptCampaign::kMETA_FIVE9 => $Five9CallbackCampaign, IperCptCampaign::kMETA_WEB_PROMOTION_TEXT => $WebPromotionText,//pull text from sales force IperCptCampaign::KMETA_AB_Test => $ABTest,//pull text from sales force IperCptCampaign::KMETA_WEB_TOP_BAR => $WebTopBarSpecialOffer,//pull text from sales force IperCptCampaign::KMETA_ConfirmationPageText => $ConfirmationPageText//pull text from sales force ) ); wp_insert_post($my_post); echo "\nCreated Campaign: ".$CampaignName; } endforeach; $todelete = get_posts( array( "post_type"=>IperCptCampaign::POST_TYPE, "posts_per_page"=>-1, "post_status"=>"publish", "meta_key"=>IperCptCampaign::kMETA_DELETE, "meta_value"=>true ) ); if(!empty($todelete)){ echo "\n\n*** CAMPAIGN DELETE ***"; foreach ($todelete as $post){ echo "\n".$post->post_title; wp_trash_post($post->ID); } } unset($todelete); } } public function load_iper_script($hook){ //edit partner if(('post.php'== $hook || 'post-new.php'== $hook ) && get_post_type()==IperCptCampaign::POST_TYPE ){ //include metabox script wp_enqueue_style('jquery-ui'); wp_enqueue_script('jquery-ui-datepicker'); wp_enqueue_script("iper.campaign.metabox", kPLUGIN_DIR_URL. 'res/js/iper.campaign.metabox.min.js',false, filemtime(kPLUGIN_DIR_PATH. 'res/js/iper.campaign.metabox.min.js') ); } } } } if(class_exists('IperCampaignController')){ register_activation_hook(__FILE__, array('IperCampaignController', 'activate')); IperCampaignController::instance(); } ?>