Esempio n. 1
0
 function append_to_valid_campaigns_sql($sql_params = array(), $options = array())
 {
     // Page check conditions
     //$pid = $_GET['page_id'];
     $pid = Icegram::get_current_page_id();
     $sql = " AND ( \n                pm.meta_key = 'icegram_campaign_target_rules' AND (\n                ( pm.meta_value LIKE '%%%s%%' ) \n                OR ( pm.meta_value LIKE '%%%s%%' AND pm.meta_value LIKE '%%%s%%' AND pm.meta_value LIKE '%%%s%%' )\n                ";
     $sql_params[] = 's:8:"sitewide";s:3:"yes";';
     $sql_params[] = 's:10:"other_page";s:3:"yes";';
     $sql_params[] = 's:7:"page_id";a:';
     $sql_params[] = serialize((string) $pid);
     //local url
     $sql .= " OR ( pm.meta_value LIKE '%%%s%%' )";
     $sql_params[] = 's:9:"local_url";s:3:"yes";';
     if (!empty($_REQUEST['cache_compatibility']) && $_REQUEST['cache_compatibility'] == 'yes') {
         $is_home = !empty($_REQUEST['is_home']) && $_REQUEST['is_home'] === 'true' ? true : false;
     } else {
         $is_home = is_home() || is_front_page() ? true : false;
     }
     if ($is_home === true) {
         $sql .= " OR ( pm.meta_value LIKE '%%%s%%' )";
         $sql_params[] = 's:8:"homepage";s:3:"yes";';
     }
     $sql .= " ) )";
     $sql_params[0] .= $sql;
     //s:9:"logged_in";s:3:"all";
     return $sql_params;
 }
 function _is_valid_page($campaign_valid, $campaign, $options)
 {
     $page_id = Icegram::get_current_page_id();
     if (!$campaign_valid || !empty($options['skip_page_check'])) {
         return $campaign_valid;
     }
     if (!empty($campaign->rules_summary['where']['sitewide']) && $campaign->rules_summary['where']['sitewide'] == 'yes') {
         if (!empty($campaign->rules['exclude_page_id']) && in_array($page_id, $campaign->rules['exclude_page_id'])) {
             return false;
         } else {
             return true;
         }
     }
     if (!empty($campaign->rules_summary['where']['homepage']) && $campaign->rules_summary['where']['homepage'] == 'yes' && (isset($_REQUEST['is_home']) && $_REQUEST['is_home'] === 'true' || is_home() || is_front_page())) {
         return true;
     }
     if (!empty($page_id)) {
         if (!empty($campaign->rules_summary['where']['other_page']) && in_array($page_id, $campaign->rules_summary['where']['other_page'])) {
             return true;
         }
     }
     if (!empty($campaign->rules_summary['where']['local_url']) && $campaign->rules_summary['where']['local_url'] == 'yes') {
         $current_page_url = Icegram::get_current_page_url();
         // TODO::change this check with remote mode
         //return if call made from remote url
         if (!empty($_POST['ig_remote_url'])) {
             return;
         }
         foreach ($campaign->rules['local_urls'] as $local_url_pattern) {
             if (empty($local_url_pattern)) {
                 $local_url_pattern = home_url() . '/';
             }
             $result = $this->is_valid_url($local_url_pattern, $current_page_url);
             if ($result) {
                 return $result;
             } else {
                 continue;
             }
         }
     }
     return false;
 }