name == 'Bimber'){
$bimber_theme_settings = get_option( 'bimber_theme' );
if(isset($bimber_theme_settings['posts_auto_load_enable']) && $bimber_theme_settings['posts_auto_load_enable']){
return true;
}
}
/* it's an AJAX call */
return false;
}
$hide_ads = apply_filters('adsensei_hide_ads', false);
if(isset($adsensei_mode) && $adsensei_mode == 'new'){
if(
(is_feed()) ||
(is_search()) ||
(is_404() ) ||
(strpos( $content, '' ) !== false) ||
(strpos( $content, '' ) !== false) ||
true === $hide_ads
) {
return false;
}
return true;
}
// User Roles check
if(!adsensei_user_roles_permission()){
return false;
}
// Frontpage check
if (is_front_page() && isset( $adsensei_options['visibility']['AppHome'] ) ){
return true;
}
if(
(is_feed()) ||
(is_search()) ||
(is_404() ) ||
(strpos( $content, '' ) !== false) ||
(strpos( $content, '' ) !== false) ||
(is_front_page() && !isset( $adsensei_options['visibility']['AppHome'] ) ) ||
(is_category() && !(isset( $adsensei_options['visibility']['AppCate'] ) ) ) ||
(is_archive() && !( isset( $adsensei_options['visibility']['AppArch'] ) ) ) ||
(is_tag() && !( isset( $adsensei_options['visibility']['AppTags'] ) ) ) ||
(!adsensei_post_type_allowed()) ||
(is_user_logged_in() && ( isset( $adsensei_options['visibility']['AppLogg'] ) ) ) ||
true === $hide_ads
) {
return false;
}
// else
return true;
}
/**
* Check if ad is allowed on extra conditions like post tags
*
* @global array $adsensei_options
* @global array $post
* @return boolean true if tag is allowed
*/
function adsensei_hide_on_tags($isActive) {
global $adsensei_options, $post,$adsensei_mode;
// exit early. This condition can only be valid on post tags
if( !isset( $post ) ) {
return false;
}
$global_exclude= [];
if( $adsensei_mode == 'new' && (isset( $adsensei_options['multiTagsValue'])) ) {
$global_exclude = array_column($adsensei_options['multiTagsValue'], 'value');
}else if($adsensei_mode !='new' && (isset( $adsensei_options['tags'])) ) {
$global_exclude = $adsensei_options['tags'];
}
if(empty($global_exclude)){
return $isActive;
}
// Create array of slugs containing tag names
$tagsObj = wp_get_post_tags( $post->ID );
$tags = array();
foreach ( $tagsObj as $key => $value ) {
$tags[$key] = trim( $value->slug );
}
if( isset( $tags ) && count( array_intersect( $global_exclude, $tags ) ) >= 1 ) {
return true;
}
return $isActive;
}
add_filter( 'adsensei_hide_ads', 'adsensei_hide_on_tags', 5 );
/**
* Hide ads per post id
*
* @global array $adsensei_options
* @global array $post
* @return boolean
*/
function adsensei_hide_on_post_id($isActive){
global $adsensei_options, $post;
// exit early. This condition can only be valid on post ids
if (!isset($post) || empty($adsensei_options['excluded_id'])) {
return $isActive;
}
$excluded = !empty($adsensei_options['excluded_id']) ? $adsensei_options['excluded_id'] : null;
if (strpos($excluded, ',') !== false) {
$excluded = explode(',', $excluded);
if (in_array($post->ID, $excluded)) {
return true;
}
}
if ($post->ID == $excluded) {
return true;
}
// default condition
return $isActive;
}
add_filter('adsensei_hide_ads', 'adsensei_hide_on_post_id', 6);
function adsensei_user_roles_permission_new($isActive){
global $adsensei_options;
// No restriction. Show ads to all user_roles including public visitors without user role
if (!isset($adsensei_options['multiUserValue'])){
return $isActive;
}
$roles = wp_get_current_user()->roles;
foreach ($adsensei_options['multiUserValue'] as $role){
if(isset($role['value']) && isset($roles[0]) && $role['value'] == $roles[0]){
return false;
}
}
return $isActive;
}
global $adsensei_mode;
if($adsensei_mode == 'new') {
add_filter( 'adsensei_hide_ads', 'adsensei_user_roles_permission_new', 5 );
}
/**
* Hide ads on buddypess pages
*
* @global array $adsensei_options
* @global array $post
* @return boolean
*/
function adsensei_hide_buddypress($isActive){
global $adsensei_options,$adsensei_mode;
// exit early. This condition can only be valid if buddypress plugin is installed
if (!function_exists('is_buddypress')) {
return $isActive;
}
$global_exclude= [];
if( $adsensei_mode == 'new' && (isset( $adsensei_options['multiPluginsValue'])) ) {
$global_exclude = array_column($adsensei_options['multiPluginsValue'], 'value');
}else if($adsensei_mode !='new' && (isset( $adsensei_options['plugins'])) ) {
$global_exclude = $adsensei_options['plugins'];
}
if(empty($global_exclude)){
return $isActive;
}
if ( is_array($global_exclude) && in_array('buddypress', $global_exclude) && is_buddypress() ){
return true;
}
// default condition
return $isActive;
}
add_filter('adsensei_hide_ads', 'adsensei_hide_buddypress', 7);
/**
* Hide ads on woocommerce pages
*
* @global array $adsensei_options
* @global array $post
* @return boolean
*/
function adsensei_hide_woocommerce($isActive){
global $adsensei_options,$adsensei_mode;
// exit early. This condition can only be valid if buddypress plugin is installed
if (!function_exists('is_woocommerce')) {
return $isActive;
}
$global_exclude= [];
if( $adsensei_mode == 'new' && (isset( $adsensei_options['multiPluginsValue'])) ) {
$global_exclude = array_column($adsensei_options['multiPluginsValue'], 'value');
}else if($adsensei_mode !='new' && (isset( $adsensei_options['plugins'])) ) {
$global_exclude = $adsensei_options['plugins'];
}
if(empty($global_exclude)){
return $isActive;
}
if ( is_array($global_exclude) && in_array('woocommerce', $global_exclude) && is_woocommerce() ){
return true;
}
// default condition
return $isActive;
}
add_filter('adsensei_hide_ads', 'adsensei_hide_woocommerce', 8);
function adsensei_filter_ads( $args ) {
global $adsensei_options;
// Get all the paragraph values[]
$paragraph = $args['paragraph'];
//Add some extra paragraph positions
$number = 11; // number of paragraph ads to loop
for ( $i = 4; $i <= $number; $i++ ) {
$key = ($i - 4) + 1; // 1,2,3
$paragraph['status'][$i] = isset( $adsensei_options['extra' . $key]['ParAds'] ) ? $adsensei_options['extra' . $key]['ParAds'] : 0; // Status - active | inactive
$paragraph['id'][$i] = isset( $adsensei_options['extra' . $key]['ParRnd'] ) ? $adsensei_options['extra' . $key]['ParRnd'] : 0; // Ad id
$paragraph['position'][$i] = isset( $adsensei_options['extra' . $key]['ParNup'] ) ? $adsensei_options['extra' . $key]['ParNup'] : 0; // Paragraph No
$paragraph['end_post'][$i] = isset( $adsensei_options['extra' . $key]['ParCon'] ) ? $adsensei_options['extra' . $key]['ParCon'] : 0; // End of post - yes | no
}
for ( $i = 1; $i <= $number; $i++ ) {
if( $paragraph['id'][$i] == 0 ) {
$paragraph[$i] = $args['cusrnd'];
} else {
$paragraph[$i] = $args['cusads'] . $paragraph['id'][$i];
array_push( $args['AdsIdCus'], $paragraph['id'][$i] );
};
}
// Convert all return values into one array()
$args = array('paragraph' => $paragraph,
'AdsIdCus' => $args['AdsIdCus']
);
return $args;
}
add_filter( 'adsensei_filter_paragraphs', 'adsensei_filter_ads' );
function adsenseipro_visitor_comparison_logic_checker($result,$visibility ){
$v_type = $visibility['type']['value'];
$v_id = $visibility['value']['value'];
switch ($v_type) {
case 'geo_location_country':
$adsensei_client_info = array();
$adsensei_client_info = adsensei_get_ip_geolocation();
if (isset($adsensei_client_info['countryCode']) && $adsensei_client_info['countryCode'] != $v_id ) {
$result = false;
}else{
$result = true;
}
break;
case 'geo_location_city':
$adsensei_client_info = array();
$adsensei_client_info = adsensei_get_ip_geolocation();
if(isset($adsensei_client_info['city'])){
$city_cookie = str_replace(' ','',$adsensei_client_info['city']);
$city_cookie = strtolower($city_cookie);
$city = str_replace(' ','',$v_id);
$city = strtolower($city);
if($city_cookie != $city) {
$result = false;
}else{
$result = true;
}
}
break;
}
return $result;
}
add_filter( 'adsensei_visitor_comparison_logic_checker', 'adsenseipro_visitor_comparison_logic_checker',10 ,2 );
if (!function_exists('adsensei_get_client_ip')) {
function adsensei_get_client_ip() {
if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) //for cloudflare server only
$ipaddress = $_SERVER['HTTP_CF_CONNECTING_IP'];
else if (isset($_SERVER['HTTP_CLIENT_IP']))
$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
else if(isset($_SERVER['REMOTE_ADDR']))
$ipaddress = $_SERVER['REMOTE_ADDR'];
else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
else if(isset($_SERVER['HTTP_X_FORWARDED']))
$ipaddress = $_SERVER['HTTP_X_FORWARDED'];
else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
else if(isset($_SERVER['HTTP_FORWARDED']))
$ipaddress = $_SERVER['HTTP_FORWARDED'];
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}
}
if (!function_exists('adsensei_get_ip_geolocation')) {
function adsensei_get_ip_geolocation(){
if(!is_admin()){
global $adsensei_options;
$user_ip = adsensei_get_client_ip();
$saved_ip = '';
$saved_ip_list = array();
$adsensei_client_info = array();
if(isset($_COOKIE['adsensei_client_info'])){
$saved_ip_list = json_decode(base64_decode($_COOKIE['adsensei_client_info']),true);
$saved_ip = trim($saved_ip_list['ipaddress']);
$adsensei_client_info['ipaddress']=$saved_ip;
$adsensei_client_info['countryCode']=trim($saved_ip_list['countryCode']);
$adsensei_client_info['region']=trim($saved_ip_list['region']);
$adsensei_client_info['city']=trim($saved_ip_list['city']);
}
return $adsensei_client_info;
}
}
}
/**
* Global! Determine if widget ads are visible
*
* @global arr $adsensei_options
* @param string $content
* @since 0.9.4
* @return boolean true when ads are shown
*/
function adsensei_widget_ad_is_allowed( $content = null ) {
global $adsensei_options;
// Never show ads in ajax calls
if ( isset($adsensei_options['is_ajax']) && (defined('DOING_AJAX') && DOING_AJAX) ||
(! empty( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ] ) && strtolower( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ]) == 'xmlhttprequest' )
)
{
/* it's an AJAX call */
return false;
}
$hide_ads = apply_filters('adsensei_hide_ads', false);
// User Roles check
if(!adsensei_user_roles_permission()){
return false;
}
// Frontpage check
if (is_front_page() && isset( $adsensei_options['visibility']['AppHome'] ) ){
return true;
}
if(
(is_feed()) ||
(is_search()) ||
(is_404() ) ||
(strpos( $content, '' ) !== false) ||
(strpos( $content, '' ) !== false) ||
(is_category() && !(isset( $adsensei_options['visibility']['AppCate'] ) ) ) ||
(is_archive() && !( isset( $adsensei_options['visibility']['AppArch'] ) ) ) ||
(is_tag() && !( isset( $adsensei_options['visibility']['AppTags'] ) ) ) ||
(!adsensei_post_type_allowed()) ||
(is_user_logged_in() && ( isset( $adsensei_options['visibility']['AppLogg'] ) ) ) ||
true === $hide_ads
) {
return false;
}
// else
return true;
}
/**
* Check if Ad widgets are visible on homepage
*
* @since 0.9.7
* return true when ad widgets are not visible on frontpage else false
*/
function adsensei_hide_ad_widget_on_homepage(){
global $adsensei_options;
$is_active = isset($adsensei_options["visibility"]["AppSide"]) ? true : false;
if( is_front_page() && $is_active ){
return true;
}
return false;
}
/**
* Get the total number of active ads
*
* @global int $visibleShortcodeAds
* @global int $visibleContentAdsGlobal
* @global int $ad_count_custom
* @global int $ad_count_widget
* @return int number of active ads
*/
function adsensei_get_total_ad_count(){
global $visibleShortcodeAds, $visibleContentAdsGlobal, $ad_count_custom, $ad_count_widget;
$shortcode = isset($visibleShortcodeAds) ? (int)$visibleShortcodeAds : 0;
$content = isset($visibleContentAdsGlobal) ? (int)$visibleContentAdsGlobal : 0;
$custom = isset($ad_count_custom) ? (int)$ad_count_custom : 0;
//$widget = isset($ad_count_widget) ? (int)$ad_count_widget : 0;
$widget = adsensei_get_number_widget_ads();
//wp_die($widget);
//wp_die( $shortcode + $content + $custom + $widget);
return $shortcode + $content + $custom + $widget;
}
/**
* Check if the maximum amount of ads are reached
*
* @global arr $adsensei_options settings
* @var int amount of ads to activate
* @return bool true if max is reached
*/
function adsensei_ad_reach_max_count(){
global $adsensei_options;
$maxads = isset($adsensei_options['maxads']) ? $adsensei_options['maxads'] : 100;
$maxads = $maxads - adsensei_get_number_widget_ads();
//echo 'Total ads: '. adsensei_get_total_ad_count() . ' maxads: '. $maxads . '
';
//wp_die('Total ads: '. adsensei_get_total_ad_count() . ' maxads: '. $maxads . '
');
if ( adsensei_get_total_ad_count() >= $maxads ){
return true;
}
}
/**
* Increment count of active ads generated in the_content
*
* @global int $ad_count
* @param type $ad_count
* @return int amount of active ads in the_content
*/
function adsensei_set_ad_count_content(){
global $visibleContentAdsGlobal;
$visibleContentAdsGlobal++;
return $visibleContentAdsGlobal;
}
/**
* Increment count of active ads generated with shortcodes
*
* @return int amount of active shortcode ads in the_content
*/
function adsensei_set_ad_count_shortcode(){
global $visibleShortcodeAds;
$visibleShortcodeAds++;
return $visibleShortcodeAds;
}
/**
* Increment count of custom active ads
*
* @return int amount of active custom ads
*/
function adsensei_set_ad_count_custom(){
global $ad_count_custom;
$ad_count_custom++;
return $ad_count_custom;
}
/**
* Increment count of active ads generated on widgets
*
* @return int amount of active widget ads
* @deprecated since 1.4.1
*/
function adsensei_set_ad_count_widget(){
global $ad_count_widget;
$ad_count_widget++;
return $ad_count_widget;
}
/**
* Check if AMP ads are disabled on a post via the post meta box settings
*
* @global obj $post
* @return boolean true if its disabled
*/
function adsensei_is_disabled_post_amp() {
global $post;
if(!is_singular()){
return true;
}
$ad_settings = get_post_meta( $post->ID, '_adsensei_config_visibility', true );
if( !empty( $ad_settings['OffAMP'] ) ) {
return true;
}
return false;
}
function getIPAddress() {
$ip = array();
if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
$new_ip = $_SERVER['HTTP_CLIENT_IP'];
}
//whether ip is from the proxy
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$new_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
//whether ip is from the remote address
else{
$new_ip = $_SERVER['REMOTE_ADDR'];
}
$ip = get_option('add_blocked_ip') ? get_option('add_blocked_ip') : array() ;
array_push( $ip, array('ip'=>$new_ip,'time'=>date('l d-m-Y H:i:s') ) );
$ip = array_values(array_column( $ip , null, 'ip' ));
return $ip;
}
function adsensei_click_fraud_on(){
global $adsensei_options;
$cookie_check = true;
if (isset($adsensei_options['click_fraud_protection']) && !empty($adsensei_options['click_fraud_protection']) && $adsensei_options['click_fraud_protection'] && isset( $_COOKIE['adsensei_ad_clicks'] ) ) {
$adsensei_ad_click = json_decode( stripslashes( $_COOKIE['adsensei_ad_clicks'] ), true );
$current_time = time();
if (isset($adsensei_options['allowed_click']) && isset($adsensei_options['ban_duration']) && $adsensei_ad_click['count'] >= $adsensei_options['allowed_click'] ) {
if(function_exists('getIPAddress') ){
$ips = getIPAddress();
}
$final_ip = $ips ;
update_option( 'add_blocked_ip', $final_ip );
}
if (isset($adsensei_options['allowed_click']) && isset($adsensei_options['ban_duration']) && $adsensei_options['allowed_click'] <= $adsensei_ad_click['count'] ) {
$cookie_check = false;
if($current_time >= strtotime( $adsensei_ad_click['exp']. ' +'.$adsensei_options['ban_duration'].' day') ){
$cookie_check = true;
}else {
if ($current_time <= strtotime( $adsensei_ad_click['exp']. ' +'.$adsensei_options['click_limit'].' hours') ) {
$cookie_check = false;
}
}
}
}
return $cookie_check;
}
//New Functions in 2.0 starts here =272;
function adsensei_is_visitor_on($ads){
global $adsensei_options;
$include = array();
$exclude = array();
$response = false;
$visibility_include = isset($ads['targeting_include']) ? $ads['targeting_include'] : array();
$visibility_exclude = isset($ads['targeting_exclude']) ? $ads['targeting_exclude'] : array();
$check_condition_include = array_column($visibility_include, 'condition');
$check_condition_exclude = array_column($visibility_exclude, 'condition');
if((is_array($check_condition_include) && !empty($check_condition_include)) || (is_array($check_condition_exclude) && !empty($check_condition_exclude))){
$include_value_old = true;
if($visibility_include){
$condition_old = '';
$include_value_old = true;
foreach ($visibility_include as $visibility){
$condition = isset($visibility['condition']) ? $visibility['condition'] :'AND';
$include_value_new = adsensei_visitor_comparison_logic_checker($visibility);
switch ($condition_old){
case 'AND':
$include_value_old = $include_value_old && $include_value_new;
$condition_old = $condition;
break;
case 'OR':
$include_value_old = $include_value_old || $include_value_new;
$condition_old = $condition;
break;
default:
$condition_old = $condition;
$include_value_old =$include_value_new;
break;
}
}
}
$response = $include_value_old;
if($visibility_exclude){
$exclude_value_old = false;
$condition_old = '';
foreach ($visibility_exclude as $visibility){
$condition = isset($visibility['condition']) ? $visibility['condition'] :'AND';
$exclude_value_new = adsensei_visitor_comparison_logic_checker($visibility);
switch ($condition_old){
case 'AND':
$exclude_value_old = $exclude_value_old && $exclude_value_new;
$condition_old = $condition;
break;
case 'OR':
$exclude_value_old = $exclude_value_old || $exclude_value_new;
$condition_old = $condition;
break;
default:
$condition_old = $condition;
$exclude_value_old =$exclude_value_new;
break;
}
}
if($exclude_value_old){
$response =false;
}
}
}else{
if($visibility_include){
foreach ($visibility_include as $visibility){
$include[] = adsensei_visitor_comparison_logic_checker($visibility);
}
}else{
$response = true;
}
if($visibility_exclude){
foreach ($visibility_exclude as $visibility){
$exclude[] = adsensei_visitor_comparison_logic_checker($visibility);
}
}else{
if(empty($include)){
$response = true;
}
}
if(!empty($include)){
if(in_array( false ,$include )){
$response = false;
}else{
$response = true;
}
}
if(!empty($exclude)){
$exclude = array_filter(array_unique($exclude));
if(isset($exclude[0])){
$response = false;
}
}
}
return $response;
}
function adsensei_is_visibility_on($ads){
$include = array();
$exclude = array();
$response = false;
$visibility_include = isset($ads['visibility_include']) ? $ads['visibility_include'] : array();
$visibility_exclude = isset($ads['visibility_exclude']) ? $ads['visibility_exclude'] : array();
$check_condition_include = array_column($visibility_include, 'condition');
$check_condition_exclude = array_column($visibility_exclude, 'condition');
if((is_array($check_condition_include) && !empty($check_condition_include)) || (is_array($check_condition_exclude) && !empty($check_condition_exclude))){
$include_value_old = true;
if($visibility_include){
$condition_old = '';
$include_value_old = true;
foreach ($visibility_include as $visibility){
$condition = isset($visibility['condition']) ? $visibility['condition'] :'AND';
$include_value_new = adsensei_comparison_logic_checker($visibility);
switch ($condition_old){
case 'AND':
$include_value_old = $include_value_old && $include_value_new;
$condition_old = $condition;
break;
case 'OR':
$include_value_old = $include_value_old || $include_value_new;
$condition_old = $condition;
break;
default:
$condition_old = $condition;
$include_value_old =$include_value_new;
break;
}
}
}
$response = $include_value_old;
if($visibility_exclude){
$exclude_value_old = false;
$condition_old = '';
foreach ($visibility_exclude as $visibility){
$condition = isset($visibility['condition']) ? $visibility['condition'] :'AND';
$exclude_value_new = adsensei_comparison_logic_checker($visibility);
switch ($condition_old){
case 'AND':
$exclude_value_old = $exclude_value_old && $exclude_value_new;
$condition_old = $condition;
break;
case 'OR':
$exclude_value_old = $exclude_value_old || $exclude_value_new;
$condition_old = $condition;
break;
default:
$condition_old = $condition;
$exclude_value_old =$exclude_value_new;
break;
}
}
if($exclude_value_old){
$response =false;
}
}
}else{
if($visibility_include){
foreach ($visibility_include as $visibility){
$include[] = adsensei_comparison_logic_checker($visibility);
}
}
if($visibility_exclude){
foreach ($visibility_exclude as $visibility){
$exclude[] = adsensei_comparison_logic_checker($visibility);
}
}
if(!empty($include)){
$include = array_values(array_filter(array_unique($include)));
if(isset($include[0])){
$response = true;
}
}
if(!empty($exclude)){
$exclude = array_filter(array_unique($exclude));
if(isset($exclude[0])){
$response = false;
}
}
}
return $response;
}
add_action('wp_head', 'adsensei_set_browser_width_script');
function adsensei_set_browser_width_script(){
if(!is_admin() && !adsensei_is_amp_endpoint()){
echo "";
}
}
function adsensei_visitor_comparison_logic_checker($visibility){
global $post;
$v_type = $visibility['type']['value'];
$v_id = $visibility['value']['value'];
$result = false;
// Get all the users registered
$user = wp_get_current_user();
switch ($v_type) {
case 'device_type':
require_once ADSENSEI_PLUGIN_DIR . '/admin/includes/mobile-detect.php';
$mobile_detect = $isTablet = '';
$mobile_detect = new Adsensei_Mobile_Detect;
$isMobile = $mobile_detect->isMobile();
$isTablet = $mobile_detect->isTablet();
$device_name = 'desktop';
if( $isMobile && $isTablet ){ //Only For tablet
$device_name = 'mobile';
}else if($isMobile && !$isTablet){ // Only for mobile
$device_name = 'mobile';
}
if($v_id == $device_name){
$result = true;
}
break;
case 'referrer_url':
$referrer_url = (isset($_SERVER['HTTP_REFERER'])) ? esc_url($_SERVER['HTTP_REFERER']):'';
if ( $referrer_url == $v_id ) {
$result = true;
}
break;
case 'browser_language':
$browser_language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if ( $browser_language == $v_id ) {
$result = true;
}
break;
case 'multilingual_language':
if( class_exists('SitePress') ){
$multilingual_language = apply_filters( 'wpml_current_language', NULL );
if ( $multilingual_language == $v_id ) {
$result = true;
}
}
break;
case 'url_parameter':
$url = esc_url($_SERVER['REQUEST_URI']);
if ( strpos($url,$v_id) !== false ) {
$result = true;
}
break;
case 'cookie':
$cookie_arr = $_COOKIE;
if($v_id ==''){
if ( isset($cookie_arr) ) {
$result = true;
}
}else{
if($cookie_arr){
foreach($cookie_arr as $key=>$value){
if($key == $v_id){
$result = true;
break;
}
}
}
}
break;
case 'logged_in_visitor':
case 'logged_in':
if ( is_user_logged_in() ) {
$status = 'true';
} else {
$status = 'false';
}
if ( $status == $v_id ) {
$result = true;
}
break;
case 'user_agent':
$user_agent_name =adsensei_detect_user_agent();
if ( $user_agent_name == $v_id ) {
$result = true;
}
break;
case 'user_type':
if ( in_array( $v_id, (array) $user->roles ) ) {
$result = true;
}
break;
case 'browser_width':
if(isset($_COOKIE['adsensei_browser_width']) && $_COOKIE['adsensei_browser_width'] == $v_id){
$result = true;
}
break;
default:
$result = false;
break;
}
$result = apply_filters( 'adsensei_visitor_comparison_logic_checker', $result ,$visibility);
return $result;
}
function adsensei_detect_user_agent( ){
$user_agent_name ='others';
if(strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') || strpos($user_agent_name, 'OPR/')) $user_agent_name = 'opera';
elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Edge')) $user_agent_name = 'edge';
elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox')) $user_agent_name ='firefox';
elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') || strpos($user_agent_name, 'Trident/7')) $user_agent_name = 'internet_explorer';
elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'iPod')) $user_agent_name = 'ipod';
elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'iPhone')) $user_agent_name = 'iphone';
elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'iPad')) $user_agent_name = 'ipad';
elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Android')) $user_agent_name = 'android';
elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'webOS')) $user_agent_name = 'webos';
elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome')) $user_agent_name = 'chrome';
elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Safari')) $user_agent_name = 'safari';
return $user_agent_name;
}
function adsensei_comparison_logic_checker($visibility){
global $post;
$v_type = $visibility['type']['value'];
$v_id = isset($visibility['value']['value']) ? $visibility['value']['value'] :'';
$result = false;
if(!is_object($post)){
return false;
}
// Get all the users registered
$user = wp_get_current_user();
switch ($v_type) {
// Basic Controls ------------
// Posts Type
case 'post_type':
$post_type = get_post_type($post->ID);
if($v_id == $post_type && is_singular()){
$result = true;
}
break;
// Posts
case 'general':
if( ($v_id == 'homepage') && is_home() || is_front_page() || ( function_exists('ampforwp_is_home') && ampforwp_is_home()) ){
$result = true;
}
if($v_id == 'show_globally'){
$result = true;
}
break;
// Logged in User Type
case 'user_type':
if ( in_array( $v_id, (array) $user->roles ) ) {
$result = true;
}
break;
// Post Controls ------------
// Posts
case 'post':
if($v_id == $post->ID && is_singular()){
$result = true;
}
break;
// Post Category
case 'post_category':
$current_category = '';
if(is_object($post)){
$postcat = get_the_category( $post->ID );
if(!empty($postcat)){
if(is_object($postcat[0])){
$current_category = $postcat[0]->cat_ID;
}
}
}
if($v_id == $current_category){
$result = true;
}
break;
// Post Format
case 'post_format':
$current_post_format = get_post_format( $post->ID );
if ( $current_post_format === false ) {
$current_post_format = 'standard';
}
if($v_id == $current_post_format){
$result = true;
}
break;
case 'page':
global $wp_query;
$page_id = $wp_query->get_queried_object_id();
if($v_id == $page_id){
$result = true;
}
break;
case 'tags':
if ( has_tag( $v_id) ) {
$result = true;
}
break;
case 'ef_taxonomy':
$taxonomy_names = get_post_taxonomies( $post->ID );
$post_terms = '';
if ( $v_id != 'all') {
$post_terms = wp_get_post_terms($post->ID, $v_id);
if ( $post_terms ) {
$result = true;
}
} else {
if ( $taxonomy_names ) {
$result = true;
}
}
break;
case 'page_template':
$object = get_queried_object();
$template = get_page_template_slug($object);
if($v_id == $template){
$result = true;
}
break;
default:
$result = false;
break;
}
return $result;
}
//New Functions in 2.0 ends here