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; }