rebase from live enviornment
This commit is contained in:
339
wp/plugins/iper-medical/campaign/IperCampaignController.php
Normal file
339
wp/plugins/iper-medical/campaign/IperCampaignController.php
Normal file
@@ -0,0 +1,339 @@
|
||||
<?php
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
die( '-1' );
|
||||
}
|
||||
|
||||
include_once "lib/IperCptCampaign.php";
|
||||
|
||||
if(!class_exists('IperCampaignController')){
|
||||
|
||||
define("kIperCampaignPath",dirname(__FILE__));
|
||||
define("kPLUGIN_DIR_URL",plugin_dir_url(__FILE__));
|
||||
define ("kPLUGIN_DIR_PATH", plugin_dir_path(__FILE__));
|
||||
|
||||
class IperCampaignController {
|
||||
|
||||
const kREST_ACTION = "GetWebCampaigns";
|
||||
const kCOOKIE_ID = "SESScampaignid";
|
||||
const kCOOKIE_ID_FIVE9 = "SESSfive9";
|
||||
const kCOOKIE_WEB_PROMOTION_TEXT = "SESSpromotion";
|
||||
const kCOOKIE_PHONE = "SESScampaignphone";
|
||||
const kCOOKIE_EXPIRE = 15552000; // 6 months (3600 * 24 * 30 * 6)
|
||||
|
||||
|
||||
protected static $instance;
|
||||
public $testVar;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->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 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 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=""){
|
||||
|
||||
setcookie(self::kCOOKIE_ID, $id, 0,'/');
|
||||
setcookie(self::kCOOKIE_PHONE, $phone, 0,'/');
|
||||
setcookie(self::kCOOKIE_ID_FIVE9, $id_five_9, 0,'/');
|
||||
setcookie(self::kCOOKIE_WEB_PROMOTION_TEXT, $WebPromotionText , 0,'/');
|
||||
if(!session_id()){
|
||||
session_start();
|
||||
}
|
||||
|
||||
$_SESSION[self::kCOOKIE_ID]=$id;
|
||||
$_SESSION[self::kCOOKIE_PHONE]=$phone;
|
||||
$_SESSION[self::kCOOKIE_ID_FIVE9]=$id_five_9;
|
||||
$_SESSION[self::kCOOKIE_WEB_PROMOTION_TEXT]=$WebPromotionText;
|
||||
}
|
||||
|
||||
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;
|
||||
$LandingURL = $single->LandingURL;
|
||||
$FriendlyURL = $single->FriendlyURL;
|
||||
$EndDate = $single->EndDate;
|
||||
$CampaignName = $single->CampaignName;
|
||||
$Five9CallbackCampaign = $single->Five9CallbackCampaign;
|
||||
$WebPromotionText = $single->WebPromotionText;//fill campaign field
|
||||
|
||||
$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_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,
|
||||
)
|
||||
);
|
||||
|
||||
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_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
|
||||
|
||||
)
|
||||
);
|
||||
|
||||
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();
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user