getAdDataByParam('adsensei-ads'); function adsensei_load_ads_common($user_position,$html=''){ if(!isset($adsensei_ads)|| empty($adsensei_ads)) { require_once ADSENSEI_PLUGIN_DIR . '/admin/includes/rest-api-service.php'; $api_service = new ADSENSEI_Ad_Setup_Api_Service(); $adsensei_ads = $api_service->getAdDataByParam('adsensei-ads'); } if(isset($adsensei_ads['posts_data'])){ foreach($adsensei_ads['posts_data'] as $key => $value){ $ads =$value['post_meta']; if($value['post']['post_status']== 'draft'){ continue; } if(!isset($ads['position'])){ continue; } if(isset($ads['ad_id'])) $post_status = get_post_status($ads['ad_id']); else $post_status = 'publish'; if(isset($ads['random_ads_list'])) $ads['random_ads_list'] = unserialize($ads['random_ads_list']); if(isset($ads['visibility_include'])) $ads['visibility_include'] = unserialize($ads['visibility_include']); if(isset($ads['visibility_exclude'])) $ads['visibility_exclude'] = unserialize($ads['visibility_exclude']); if(isset($ads['targeting_include'])) $ads['targeting_include'] = unserialize($ads['targeting_include']); if(isset($ads['targeting_exclude'])) $ads['targeting_exclude'] = unserialize($ads['targeting_exclude']); $is_on = adsensei_is_visibility_on($ads); $is_visitor_on = adsensei_is_visitor_on($ads); if($is_on && $is_visitor_on && $post_status == 'publish'){ if(($ads['position'] == 'bbpress_after_ad' && $user_position == 'bbpress_after_ad' )|| ($ads['position'] == 'bbpress_before_ad' && $user_position == 'bbpress_before_ad')){ $tag= ''; echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); }else if(($ads['position'] == 'bbpress_before_reply' && $user_position == 'bbpress_before_reply' )|| ($ads['position'] == 'bbpress_after_reply' && $user_position == 'bbpress_after_reply')){ if((did_action( 'bbp_theme_before_reply_content' ) % $ads['paragraph_number'] == 0 && $user_position == 'bbpress_before_reply' )|| (did_action( 'bbp_theme_after_reply_content' ) % $ads['paragraph_number'] == 0 && $user_position == 'bbpress_after_reply')){ $tag= ''; echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); } }elseif( $ads['position'] == 'before_header' && $user_position == 'newspaper_theme'){ $tag= ''; $html = preg_replace('/(.*?)
'.adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ).'$2
'advanced_ads', 'post_status' => 'publish' ); $get_Advanced_Ads = get_posts($args); foreach ($get_Advanced_Ads as $advanced_Ad) { $name = 'shortcode_'.$advanced_Ad->ID; $advanced_ads_placements[$name] = array('item' => 'ad_'.$advanced_Ad->ID,'advanced_ads'=>true); } foreach ($advanced_ads_placements as $key => $value) { $idArray = (isset($value['item']) && !empty($value['item'])) ? explode('ad_', $value['item']) : array('1'=>''); if($idArray['1'] == $advance_ads_id){ $id = $idArray['1']; } } if(empty($id)){ return ''; } $args = array( 'post_type' => 'adsensei-ads', 'meta_key' => 'advance_ads_id', 'meta_value' => $id ); $event_query = new WP_Query( $args ); if(!isset($event_query->post->ID)){ return ''; } $adsensei_post_id =$event_query->post->ID; $id_name = get_post_meta ( $adsensei_post_id, 'adsensei_ad_old_id', true ); $id_array = explode('ad', $id_name ); $id = $id_array[1]; $arr = array( 'float:left;margin:%1$dpx %1$dpx %1$dpx 0;', 'float:none;margin:%1$dpx 0 %1$dpx 0;text-align:center;', 'float:right;margin:%1$dpx 0 %1$dpx %1$dpx;', 'float:none;margin:%1$dpx;'); $adsalign = isset($adsensei_options['ads']['ad' . $id]['align']) ? $adsensei_options['ads']['ad' . $id]['align'] : 3; // default $adsmargin = isset( $adsensei_options['ads']['ad' . $id]['margin'] ) ? $adsensei_options['ads']['ad' . $id]['margin'] : '3'; // default $margin = sprintf( $arr[( int ) $adsalign], $adsmargin ); // Do not create any inline style on AMP site $style = !adsensei_is_amp_endpoint() ? apply_filters( 'adsensei_filter_margins', $margin, 'ad' . $id ) : ''; $code = "\n" . '' . "\n" . '
' . "\n"; $code .= do_shortcode( adsensei_get_ad( $id ) ); $code .= '
' . "\n"; return $code; } function adsensei_from_adsforwp_manual_ads($atts ){ global $adsensei_options; // Display Condition is false and ignoreShortcodeCond is empty or not true if( !adsensei_ad_is_allowed() && !isset($adsensei_options['ignoreShortcodeCond']) ) return; //return adsensei_check_meta_setting('NoAds'); if( adsensei_check_meta_setting( 'NoAds' ) === '1' ){ return; } // The ad id $adsforwpid = isset( $atts['id'] ) ? ( int ) $atts['id'] : 0; $args = array( 'post_type' => 'adsensei-ads', 'meta_key' => 'adsforwp_ads_id', 'meta_value' => $adsforwpid ); $event_query = new WP_Query( $args ); if(!isset($event_query->post->ID)){ return ''; } $adsensei_post_id =$event_query->post->ID; $id_name = get_post_meta ( $adsensei_post_id, 'adsensei_ad_old_id', true ); $id_array = explode('ad', $id_name ); $id = $id_array[1]; $arr = array( 'float:left;margin:%1$dpx %1$dpx %1$dpx 0;', 'float:none;margin:%1$dpx 0 %1$dpx 0;text-align:center;', 'float:right;margin:%1$dpx 0 %1$dpx %1$dpx;', 'float:none;margin:%1$dpx;'); $adsalign = isset($adsensei_options['ads']['ad' . $id]['align']) ? $adsensei_options['ads']['ad' . $id]['align'] : 3; // default $adsmargin = isset( $adsensei_options['ads']['ad' . $id]['margin'] ) ? $adsensei_options['ads']['ad' . $id]['margin'] : '3'; // default $margin = sprintf( $arr[( int ) $adsalign], $adsmargin ); // Do not create any inline style on AMP site $style = !adsensei_is_amp_endpoint() ? apply_filters( 'adsensei_filter_margins', $margin, 'ad' . $id ) : ''; $code = "\n".'
'."\n". do_shortcode(adsensei_get_ad($id)). '
'. "\n"; return $code; } function adsensei_adblocker_detector(){ if(!adsensei_is_amp_endpoint()) { $js_dir = ADSENSEI_PLUGIN_URL . 'assets/js/'; wp_enqueue_script( 'adsensei-admin-ads', $js_dir . 'ads.js', array(), ADSENSEI_VERSION, false ); } } /** * It is default settings value, if value is not set for any option in setting section * @return type */ function adsensei_defaultSettings(){ $defaults = array( 'app_blog_name' => get_bloginfo( 'name' ), 'advnc_ads_import_check' => 1, 'ad_blocker_support' => 1, 'notice_type' => 'bar', 'page_redirect' => 0, 'allow_cookies' => 2, 'notice_title' => 'Adblock Detected!', 'notice_description' => 'Our website is made possible by displaying online advertisements to our visitors. Please consider supporting us by whitelisting our website.', 'notice_close_btn' => 1, 'btn_txt' => 'X', 'notice_txt_color' => '#ffffff', 'notice_bg_color' => '#1e73be', 'notice_btn_txt_color' => '#ffffff', 'notice_btn_bg_color' => '#f44336', 'ad_sponsorship_label' => 0, 'ad_sponsorship_label_text' => 'Advertisement', 'ad_label_postion' => 'above', 'ad_label_txt_color' => '#cccccc' ); $settings = get_option( 'adsensei_settings', $defaults ); return $settings; } function adsensei_adblocker_popup_notice(){ $settings = adsensei_defaultSettings(); if( isset($settings['ad_blocker_support']) && $settings['ad_blocker_support']){ if($settings['notice_type'] == 'popup'){ $content_color = sanitize_hex_color($settings['notice_txt_color']); $notice_title = esc_attr($settings['notice_title']); $notice_description = esc_attr($settings['notice_description']); $button_txt = esc_attr($settings['btn_txt']); $background_color = sanitize_hex_color($settings['notice_bg_color']); $btn_txt_color = sanitize_hex_color($settings['notice_btn_txt_color']); $btn_background_color = sanitize_hex_color($settings['notice_btn_bg_color']); ?> '; $output .= '/* esc_attr($settings['notice_type']), 'page_redirect' => (isset($settings['page_redirect_path']['value']) && !empty($settings['page_redirect_path']['value'])) ? get_permalink($settings['page_redirect_path']['value'] ):'', 'allow_cookies' => esc_attr($settings['notice_behaviour']) ) ); $output .= '/* ]]> */'; $output .= ''; echo $output; } } } function adsensei_adblocker_notice_bar(){ $settings = adsensei_defaultSettings(); if( isset($settings['ad_blocker_support']) && $settings['ad_blocker_support']){ if($settings['notice_type'] == 'bar' ){ $notice_description = esc_attr($settings['notice_description']); $button_txt = esc_attr($settings['btn_txt']); $content_color = sanitize_hex_color($settings['notice_txt_color']); $background_color = sanitize_hex_color($settings['notice_bg_color']); $btn_txt_color = sanitize_hex_color($settings['notice_btn_txt_color']); $btn_background_color = sanitize_hex_color($settings['notice_btn_bg_color']); ?>
×
data['content']['raw'])) { $data->data['content']['raw'] = preg_replace('//','[adsensei id=$1]', $data->data['content']['raw']); $data->data['content']['raw'] = str_replace('', '[adsensei id=RndAds]', $data->data['content']['raw']); } return $data; } function adsensei_change_adsbygoogle_to_amp($content){ if (adsensei_is_amp_endpoint()){ $dom = new DOMDocument(); if( function_exists( 'mb_convert_encoding' ) ){ $content = mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8'); } else{ $content = preg_replace( '/&.*?;/', 'x', $content ); // multi-byte characters converted to X } if(empty($content)){ return $content; } @$dom->loadHTML($content); $nodes = $dom->getElementsByTagName( 'ins' ); $num_nodes = $nodes->length; for ( $i = $num_nodes - 1; $i >= 0; $i-- ) { $url = $width = $height = ''; $node = $nodes->item( $i ); if($node->getAttribute('class') == 'adsbygoogle'){ $adclient= $node->getAttribute('data-ad-client'); $adslot= $node->getAttribute('data-ad-slot'); $adformat= $node->getAttribute('data-ad-format'); $adfullwidth= $node->getAttribute('data-full-width-responsive'); $new_node= $dom->createElement('amp-ad'); $new_node->setAttribute('type', 'adsense'); $new_node->setAttribute('data-ad-client', $adclient); $new_node->setAttribute('data-ad-slot', $adslot); if($node->getAttribute('data-full-width-responsive')){ $new_node->setAttribute('data-ad-format', $adformat); $new_node->setAttribute('data-full-width-responsive', $adfullwidth); } $styletag= $node->getAttribute('style'); $widthreg = "/width:(?\\d+)/"; $heightreg = "/height:(?\\d+)/"; preg_match($widthreg, $styletag, $width); preg_match($heightreg, $styletag, $height); if(isset($width['width'])){ $new_node->setAttribute('width', $width['width']); }else{ $new_node->setAttribute('width', '100vw'); } if(isset($height['height'])){ $new_node->setAttribute('height', $height['height']); }else{ $new_node->setAttribute('height', '320'); } $child_element= $dom->createElement('div'); $child_element->setAttribute('overflow', ''); $new_node->appendChild( $child_element ); $node->parentNode->replaceChild($new_node, $node); } } $content = $dom->saveHTML(); } return $content; } /** * Adds quicktags, defined via post meta options, to content. * * @param $content Post content * * @return string */ function adsensei_post_settings_to_quicktags ( $content ) { // Return original content if ADSENSEI is not allowed if ( !adsensei_ad_is_allowed($content)){ return $content; } $quicktags_str = adsensei_get_visibility_quicktags_str(); return $content . $quicktags_str; } /** * Returns quicktags based on post meta options. * These quicktags define which ads should be hidden on current page. * * @param null $post_id Post id * * @return string */ function adsensei_get_visibility_quicktags_str( $post_id = null ) { if( !$post_id ) { $post_id = get_the_ID(); } $str = ''; if( false === $post_id ) { return $str; } $config = get_post_meta( $post_id, '_adsensei_config_visibility', true ); if( !empty( $config ) && is_array($config) ) { foreach ( $config as $qtag_id => $qtag_label ) { $str .= ''; } } return $str; } /** * Get load priority * * @global arr $adsensei_options * @return int */ function adsensei_get_load_priority(){ global $adsensei_options; if (!empty($adsensei_options['priority'])){ return intval($adsensei_options['priority']); } return 20; } /** * * @global arr $adsensei_options * @global type $adsArray * @param type $content * @return type */ function adsensei_process_content( $content ) { global $adsensei_mode, $adsensei_options, $adsArray, $adsArrayCus, $visibleContentAds, $ad_count_widget, $visibleShortcodeAds; // Array of ad codes ids $adsArray = adsensei_get_active_ads(); // Return is no ads are defined if ($adsArray === 0 && $adsensei_mode != 'new'){ return $content; } // Do nothing if maximum ads are reached in post content if( $visibleContentAds >= adsensei_get_max_allowed_post_ads( $content ) ) { $content = adsensei_clean_tags( $content ); return $content; } // Do not do anything if ads are not allowed or process is not in the main query if( !adsensei_ad_is_allowed( $content ) || !is_main_query()) { $content = adsensei_clean_tags( $content ); return $content; } $content = adsensei_sanitize_content( $content ); if($adsensei_mode == 'new'){ $content = adsensei_filter_default_ads_new( $content ); $content = '' . $content . "\n"; $content = adsensei_clean_tags( $content, true ); $content = adsensei_parse_default_ads_new( $content ); $content = adsensei_parse_quicktags( $content ); $content = adsensei_parse_random_quicktag_ads($content); $content = adsensei_parse_random_ads_new( $content ); $content = adsensei_clean_tags( $content ); $content = adsensei_parse_popup_ads( $content ); $content = adsensei_parse_video_ads( $content ); return do_shortcode( $content ); }else{ $content = adsensei_filter_default_ads( $content ); $content = '' . $content . "\n"; $content = adsensei_clean_tags( $content, true ); $content = adsensei_parse_default_ads( $content ); $content = adsensei_parse_quicktags( $content ); $content = adsensei_parse_random_quicktag_ads($content); $content = adsensei_parse_random_ads( $content ); $content = adsensei_clean_tags( $content ); return do_shortcode( $content ); } } /** * Return number of active widget ads * @param string the_content * @return int amount of widget ads */ function adsensei_get_number_widget_ads() { $number_widgets = 0; $maxWidgets = 10; // count active widget ads for ( $i = 1; $i <= $maxWidgets; $i++ ) { $AdsWidName = 'AdsWidget%d (Quick Adsense Reloaded)'; $wadsid = sanitize_title( str_replace( array('(', ')'), '', sprintf( $AdsWidName, $i ) ) ); $number_widgets += (is_active_widget( '', '', $wadsid )) ? 1 : 0; } return $number_widgets; } /** * Get list of valid ad ids's where either the plain text code field or the adsense ad slot and the ad client id is populated. * @global arr $adsensei_options */ function adsensei_get_active_ads() { global $adsensei_options; // Return early if (empty($adsensei_options['ads'])){ return 0; } // count valid ads $i = 1; foreach ( $adsensei_options['ads'] as $ads) { $tmp = isset( $adsensei_options['ads']['ad' . $i]['code'] ) ? trim( $adsensei_options['ads']['ad' . $i]['code'] ) : ''; // id is valid if there is either the plain text field populated or the adsense ad slot and the ad client id if( !empty( $tmp ) || (!empty( $adsensei_options['ads']['ad' . $i]['g_data_ad_slot'] ) && !empty( $adsensei_options['ads']['ad' . $i]['g_data_ad_client'] ) ) ) { $adsArray[] = $i; } $i++; } return (isset($adsArray) && count($adsArray) > 0) ? $adsArray : 0; } /** * Get list of valid ad ids's where either the plain text code field or the adsense ad slot and the ad client id is populated. * @global arr $adsensei_options */ function adsensei_get_active_ads_backup() { $adsensei_settings_backup = get_option( 'adsensei_settings_backup' ); // Return early if (empty($adsensei_settings_backup['ads'])){ return 0; } // count valid ads $i = 1; foreach ( $adsensei_settings_backup['ads'] as $ads) { $tmp = isset( $adsensei_settings_backup['ads']['ad' . $i]['code'] ) ? trim( $adsensei_settings_backup['ads']['ad' . $i]['code'] ) : ''; // id is valid if there is either the plain text field populated or the adsense ad slot and the ad client id if( !empty( $tmp ) || (!empty( $adsensei_settings_backup['ads']['ad' . $i]['g_data_ad_slot'] ) && !empty( $adsensei_settings_backup['ads']['ad' . $i]['g_data_ad_client'] ) ) ) { $adsArray[] = $i; } $i++; } return (isset($adsArray) && count($adsArray) > 0) ? $adsArray : 0; } /** * Get max allowed numbers of ads * * @param string $content * @return int maximum number of ads */ function adsensei_get_max_allowed_post_ads( $content ) { global $adsensei_options; // Maximum allowed general number of ads $maxAds = isset( $adsensei_options['maxads'] ) ? $adsensei_options['maxads'] : 10; $numberWidgets = 10; $AdsWidName = 'AdsWidget%d (Quick Adsense Reloaded)'; // count number of active widgets and subtract them if( strpos( $content, '' ) === false && !adsensei_is_amp_endpoint() ) { for ( $i = 1; $i <= $numberWidgets; $i++ ) { $wadsid = sanitize_title( str_replace( array('(', ')'), '', sprintf( $AdsWidName, $i ) ) ); $maxAds -= (is_active_widget( '', '', $wadsid )) ? 1 : 0; } } return $maxAds; } /** * Filter default ads * * @global array $adsensei_options global settings * @global array $adsArrayCus List of ad id'S * @param string $content * @return string content */ function adsensei_filter_default_ads_new( $content ) { global $adsensei_options, $adsArrayCus; $off_default_ads = (strpos( $content, '' ) !== false); if( $off_default_ads ) { // If default ads are disabled return $content; } if(!isset($adsensei_ads)|| empty($adsensei_ads)) { require_once ADSENSEI_PLUGIN_DIR . '/admin/includes/rest-api-service.php'; $api_service = new ADSENSEI_Ad_Setup_Api_Service(); $adsensei_ads = $api_service->getAdDataByParam('adsensei-ads'); } // Default Ads $adsArrayCus = array(); if(isset($adsensei_ads['posts_data'])){ $i = 1; foreach($adsensei_ads['posts_data'] as $key => $value){ $ads =$value['post_meta']; if($value['post']['post_status']== 'draft'){ continue; } if(isset($ads['random_ads_list'])) $ads['random_ads_list'] = unserialize($ads['random_ads_list']); if(isset($ads['visibility_include'])) $ads['visibility_include'] = unserialize($ads['visibility_include']); if(isset($ads['visibility_exclude'])) $ads['visibility_exclude'] = unserialize($ads['visibility_exclude']); if(isset($ads['targeting_include'])) $ads['targeting_include'] = unserialize($ads['targeting_include']); if(isset($ads['targeting_exclude'])) $ads['targeting_exclude'] = unserialize($ads['targeting_exclude']); $is_on = adsensei_is_visibility_on($ads); $is_visitor_on = adsensei_is_visitor_on($ads); $is_click_fraud_on = adsensei_click_fraud_on(); if(isset($ads['ad_id'])) $post_status = get_post_status($ads['ad_id']); else $post_status = 'publish'; if($is_on && $is_visitor_on && $is_click_fraud_on && $post_status=='publish'){ $ads = apply_filters( 'adsensei_default_filter_position_data', $ads); $ads = apply_filters( 'adsensei_default_filter_position_data_ab_testing', $ads); $position = (isset($ads['position']) && $ads['position'] !='') ? $ads['position'] : ''; $cls_btn = (isset($ads['cls_btn']) && $ads['cls_btn'] !='') ? $ads['cls_btn'] : ''; $paragraph_no = (isset($ads['paragraph_number']) && $ads['paragraph_number'] !='') ? $ads['paragraph_number'] : 1; $word_count_number = (isset($ads['word_count_number']) && $ads['word_count_number'] !='') ? $ads['word_count_number'] : 1; $imageNo = (isset($ads['image_number']) && $ads['image_number'] !='') ? $ads['image_number'] : 1; $imageCaption = isset($ads['image_caption']) ? $ads['image_caption'] : false; $end_of_post = isset($ads['enable_on_end_of_post']) ? $ads['enable_on_end_of_post'] : false; // placeholder string for custom ad spots if(isset($ads['random_ads_list']) && !empty($ads['random_ads_list'])){ $cusads = ''; }else if($ads['ad_type']== 'rotator_ads' &&isset($ads['ads_list']) && !empty($ads['ads_list'])){ $cusads = ''; }else if($ads['ad_type']== 'popup_ads' &&isset($ads['ads_list']) && !empty($ads['ads_list'])){ $cusads = ''; }else if($ads['ad_type']== 'video_ads'){ $cusads = ''; }else{ $cusads = ''; } switch ($position) { case 'beginning_of_post': if(strpos( $content, '' ) === false ) { $content = $cusads.$content; } break; case 'middle_of_post': // Check if ad is middle one if(strpos( $content, '' ) === false ) { $closing_p = '

'; $paragraphs = explode( $closing_p, $content ); $total_paragraphs = count($paragraphs); $paragraph_id = floor($total_paragraphs /2); if( strpos($content, "") || strpos($content, "")){ $ads_data['after_the_percentage_value'] = 50; $content = remove_ad_from_content($content,$cusads,$ads_data); }else{ foreach ($paragraphs as $index => $paragraph) { if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if ( $paragraph_id == $index + 1 ) { $paragraphs[$index] .= $cusads; } } $content = implode('', $paragraphs ); } } break; case 'end_of_post': if(strpos( $content, '' ) === false ) { $content = $content.$cusads; } # code... break; case 'ad_sticky_ad': $sticky_cookie = (isset( $_COOKIE['adsensei_sticky'] ) && $_COOKIE['adsensei_sticky']!== NULL ) ? $_COOKIE['adsensei_sticky'] : '' ; if( $sticky_cookie !== "sticky_ad" ){ if(strpos( $content, '' ) === false ) { $a_tag = ''; if( isset($cls_btn) && $cls_btn == 1 ){ $a_tag = 'x'; } $q_main_open = '
'.$a_tag.''; $q_close = '
'; $content = $content.$q_main_open.$cusads.$q_close;} } break; case 'after_more_tag': // Check if ad is after "More Tag" if(strpos( $content, '' ) === false ) { $postid = get_the_ID(); $content = str_replace( '', $cusads, $content ); } break; case 'before_last_paragraph': if(strpos( $content, '' ) === false ) { $closing_p = '

'; $paragraphs = explode( $closing_p, $content ); $p_count = count($paragraphs); $paragraph_no = ($p_count - 2); if($paragraph_no <= $p_count){ foreach ($paragraphs as $index => $paragraph) { if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if ( $paragraph_no == $index + 1 ) { $paragraphs[$index] .= $cusads; } } $content = implode( '', $paragraphs ); } } break; case 'after_word_count': if(strpos( $content, '' ) === false ) { $paragraphs = explode( ' ', $content ); $p_count = count($paragraphs); $original_paragraph_no = $paragraph_no; ; $flag= false; if($word_count_number <= $p_count){ if( strpos($content, "") || strpos($content, "")){ $content = remove_ad_from_content($content,$cusads,'',$paragraph_no); }else{ foreach ($paragraphs as $index => $paragraph) { if ( $word_count_number == $index + 1 ) { $flag= true; } if($flag && preg_match("/<[^<]+>/",$paragraphs[$index])){ $pattern = "#<\s*?li\b[^>]*>(.*?)#s"; // to find the tag name preg_match($pattern, $paragraphs[$index], $matches); if(isset($matches[0])){ $tagname =$matches[0]; $stringarray= explode($tagname,$paragraphs[$index]); if(isset($stringarray[0])){ $stringarray[0]=$stringarray[0].$cusads; $paragraphs[$index] = implode($tagname,$stringarray); } }else{ $paragraphs[$index] .= $cusads; } $flag= false; } } $content = implode( ' ', $paragraphs ); } } } break; case 'after_paragraph': if(strpos( $content, '' ) === false ) { $repeat_paragraph = (isset($ads['repeat_paragraph']) && !empty($ads['repeat_paragraph'])) ? $ads['repeat_paragraph'] : false; $paragraph_limit = isset($ads['paragraph_limit']) ? $ads['paragraph_limit'] : ''; $insert_after = isset($ads['insert_after']) ? $ads['insert_after'] : 1; $closing_p = '

'; $paragraphs = explode( $closing_p, $content ); $p_count = count($paragraphs); $original_paragraph_no = $paragraph_no; if($paragraph_no <= $p_count){ if($ads['ad_type']== 'group_insertion'){ $p_count =$p_count -1; $cusads = ''; $next_insert_val = $insert_after; $displayed_ad =1; foreach ($paragraphs as $index => $paragraph) { $addstart = false; if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if((!empty($paragraph_limit) && $paragraph_limit < $displayed_ad) || ($index == $p_count )){ break; } if($index+1 == $next_insert_val){ $displayed_ad +=1; $next_insert_val = $next_insert_val+$insert_after; $addstart = true; } if($addstart){ $paragraphs[$index] .= $cusads; } } }else if($ads['ad_type']== 'sticky_scroll'){ $p_count =$p_count -1; $cusads = ''; $next_insert_val = $insert_after; $displayed_ad =1; foreach ($paragraphs as $index => $paragraph) { $addstart = false; if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if((!empty($paragraph_limit) && $paragraph_limit < $displayed_ad) || ($index == $p_count )){ break; } if($index+1 == $next_insert_val){ $displayed_ad +=1; $next_insert_val = $next_insert_val+$insert_after; $addstart = true; } if($addstart){ $paragraphs[$index] .= $cusads; } if(!$repeat_paragraph) { break; } } }else{ foreach ($paragraphs as $index => $paragraph) { if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if ( $paragraph_no == $index + 1 ) { $paragraphs[$index] .= $cusads; if($repeat_paragraph){ $paragraph_no = $original_paragraph_no+$paragraph_no; } } } } $content = implode( '', $paragraphs ); }else{ if($end_of_post){ $content = $content.$cusads; } } } break; case 'after_image': // Sanitation $imgtag = "", $atag, $content ); // Get all images in content $imagesArray = explode( $imgtag, $content ); // Modify Image ad if( ( int ) $imageNo < count( $imagesArray ) ) { //Get all tags $tagsArray = explode( $delimiter, $imagesArray[$imageNo] ); if( count( $tagsArray ) > 1 ) { $captionArray = explode( $caption, $imagesArray[$imageNo] ); $ccp = ( count( $captionArray ) > 1 ) ? strpos( strtolower( $captionArray[0] ), '[caption ' ) === false : false; $imagesArrayAtag = explode( $atag, $imagesArray[$imageNo] ); $cdu = ( count( $imagesArrayAtag ) > 1 ) ? strpos( strtolower( $imagesArrayAtag[0] ), '") || strpos($content, "")){ $content = remove_ad_from_content($content,$cusads,'',$paragraph_no,$repeat_paragraph); }else{ $closing_p = ''; $paragraphs = explode( $closing_p, $content ); $p_count = count($paragraphs); $original_paragraph_no = $paragraph_no; if($paragraph_no <= $p_count){ foreach ($paragraphs as $index => $paragraph) { if($p_count==($index+1)){ continue; } if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if ( $paragraph_no == $index + 1 ) { $paragraphs[$index] .= $cusads; if($repeat_paragraph){ $paragraph_no = $original_paragraph_no+$paragraph_no; } } } $content = implode( '', $paragraphs ); }else{ if($end_of_post){ $content = $content.$cusads; } } } break; case 'ad_before_html_tag': $tag = 'p'; switch ( $ads['count_as_per']) { case 'p_tag': $tag = 'p'; break; case 'div_tag': $tag = 'div'; break; case 'img_tag': $tag = 'img'; break; case 'custom_tag': $tag = $ads['enter_your_tag']; break; default: $tag = $ads['count_as_per']; break; } $repeat_paragraph = (isset($ads['repeat_paragraph']) && !empty($ads['repeat_paragraph'])) ? $ads['repeat_paragraph'] : false; if( strpos($content, "") || strpos($content, "")){ $content = remove_ad_from_content($content,$cusads,'',$paragraph_no,$repeat_paragraph); }else{ $string_data = $content; $pattern_ = "/<".$tag."(.*?)>/i"; if($pattern_){ if(preg_match_all($pattern_, $string_data, $matches)) { $p_reg_match = $matches; } $finalmatch = $p_reg_match; foreach ($finalmatch[0] as $key => $value) { $openingtag = $value; } $opening_p = $openingtag; $paragraphs = explode( $opening_p, $content ); $p_count = count($paragraphs); $original_paragraph_no = $paragraph_no; if($paragraph_no <= $p_count){ foreach ($paragraphs as $index => $paragraph) { $opening_p = isset($finalmatch[0][$index]) ? $finalmatch[0][$index] : null; if ( trim( $paragraph ) || $index==0) { $paragraphs[$index] .= '<'.$tag.'>'; } if ( $paragraph_no == $index+1 ) { //$index = ($index>0) ? $index-1 : $index; if( strpos( $paragraphs[$index] , $opening_p ) > -1 ) { $ad_c = $cusads.$opening_p; $paragraphs[$index] = str_replace($opening_p,$ad_c,$paragraphs[$index]); }else{ $paragraphs[$index] .= $opening_p; } if($repeat_paragraph){ $paragraph_no = $original_paragraph_no+$paragraph_no; } } } $content = implode( '', $paragraphs ); } else{ if($end_of_post){ $content = $content.$cusads; } } } } break; case 'amp_after_paragraph': if( function_exists('adsensei_is_amp_endpoint') && adsensei_is_amp_endpoint()){ if(strpos( $content, '' ) === false ) { $repeat_paragraph = (isset($ads['repeat_paragraph']) && !empty($ads['repeat_paragraph'])) ? $ads['repeat_paragraph'] : false; $paragraph_limit = isset($ads['paragraph_limit']) ? $ads['paragraph_limit'] : ''; $insert_after = isset($ads['insert_after']) ? $ads['insert_after'] : 1; $closing_p = '

'; $paragraphs = explode( $closing_p, $content ); $p_count = count($paragraphs); $original_paragraph_no = $paragraph_no; if($paragraph_no <= $p_count){ if($ads['ad_type']== 'group_insertion'){ $p_count =$p_count -1; $cusads = ''; $next_insert_val = $insert_after; $displayed_ad =1; foreach ($paragraphs as $index => $paragraph) { $addstart = false; if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if((!empty($paragraph_limit) && $paragraph_limit < $displayed_ad) || ($index == $p_count )){ break; } if($index+1 == $next_insert_val){ $displayed_ad +=1; $next_insert_val = $next_insert_val+$insert_after; $addstart = true; } if($addstart){ $paragraphs[$index] .= $cusads; } } }else{ foreach ($paragraphs as $index => $paragraph) { if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if ( $paragraph_no == $index + 1 ) { $paragraphs[$index] .= $cusads; if($repeat_paragraph){ $paragraph_no = $original_paragraph_no+$paragraph_no; } } } } $content = implode( '', $paragraphs ); }else{ if($end_of_post){ $content = $content.$cusads; } } } } break; } $adsArrayCus[] = $i; } $i++; } } return $content; } /** * Filter default ads * * @global array $adsensei_options global settings * @global array $adsArrayCus List of ad id'S * @param string $content * @return string content */ function adsensei_filter_default_ads( $content ) { global $adsensei_options, $adsArrayCus; $off_default_ads = (strpos( $content, '' ) !== false); if( $off_default_ads ) { // If default ads are disabled return $content; } // Default Ads $adsArrayCus = array(); // placeholder string for random ad $cusrnd = 'CusRnd'; // placeholder string for custom ad spots $cusads = 'CusAds'; // Beginning of Post $beginning_position_status = isset( $adsensei_options['pos1']['BegnAds'] ) ? true : false; $beginning_position_ad_id = isset( $adsensei_options['pos1']['BegnRnd'] ) ? $adsensei_options['pos1']['BegnRnd'] : 0; // Middle of Post $middle_position_status = isset( $adsensei_options['pos2']['MiddAds'] ) ? true : false; $middle_position_ad_id = isset( $adsensei_options['pos2']['MiddRnd'] ) ? $adsensei_options['pos2']['MiddRnd'] : 0; // End of Post $end_position_status = isset( $adsensei_options['pos3']['EndiAds'] ) ? true : false; $end_position_ad_id = isset( $adsensei_options['pos3']['EndiRnd'] ) ? $adsensei_options['pos3']['EndiRnd'] : 0; // After the more tag $more_position_status = isset( $adsensei_options['pos4']['MoreAds'] ) ? true : false; $more_position_ad_id = isset( $adsensei_options['pos4']['MoreRnd'] ) ? $adsensei_options['pos4']['MoreRnd'] : 0; // Right before the last paragraph $last_paragraph_position_status = isset( $adsensei_options['pos5']['LapaAds'] ) ? true : false; $last_paragraph_position_ad_id = isset( $adsensei_options['pos5']['LapaRnd'] ) ? $adsensei_options['pos5']['LapaRnd'] : 0; // After Paragraph option 1 - 3 $number = 3; // number of paragraph ads | default value 3. $default = 5; // Position. Let's start with id 5 for ( $i = 1; $i <= $number; $i++ ) { $key = $default + $i; // 6,7,8 $paragraph['status'][$i] = isset( $adsensei_options['pos' . $key]['Par' . $i . 'Ads'] ) ? $adsensei_options['pos' . $key]['Par' . $i . 'Ads'] : 0; // Status - active | inactive $paragraph['id'][$i] = isset( $adsensei_options['pos' . $key]['Par' . $i . 'Rnd'] ) ? $adsensei_options['pos' . $key]['Par' . $i . 'Rnd'] : 0; // Ad id $paragraph['position'][$i] = isset( $adsensei_options['pos' . $key]['Par' . $i . 'Nup'] ) ? $adsensei_options['pos' . $key]['Par' . $i . 'Nup'] : 0; // Paragraph No $paragraph['end_post'][$i] = isset( $adsensei_options['pos' . $key]['Par' . $i . 'Con'] ) ? $adsensei_options['pos' . $key]['Par' . $i . 'Con'] : 0; // End of post - yes | no } // After Image ad $imageActive = isset( $adsensei_options['pos9']['Img1Ads'] ) ? $adsensei_options['pos9']['Img1Ads'] : false; $imageAdNo = isset( $adsensei_options['pos9']['Img1Rnd'] ) ? $adsensei_options['pos9']['Img1Rnd'] : false; $imageNo = isset( $adsensei_options['pos9']['Img1Nup'] ) ? $adsensei_options['pos9']['Img1Nup'] : false; $imageCaption = isset( $adsensei_options['pos9']['Img1Con'] ) ? $adsensei_options['pos9']['Img1Con'] : false; if( $beginning_position_ad_id == 0 ) { $b1 = $cusrnd; } else { $b1 = $cusads . $beginning_position_ad_id; array_push( $adsArrayCus, $beginning_position_ad_id ); }; if( $more_position_ad_id == 0 ) { $r1 = $cusrnd; } else { $r1 = $cusads . $more_position_ad_id; array_push( $adsArrayCus, $more_position_ad_id ); }; if( $middle_position_ad_id == 0 ) { $m1 = $cusrnd; } else { $m1 = $cusads . $middle_position_ad_id; array_push( $adsArrayCus, $middle_position_ad_id ); }; if( $last_paragraph_position_ad_id == 0 ) { $g1 = $cusrnd; } else { $g1 = $cusads . $last_paragraph_position_ad_id; array_push( $adsArrayCus, $last_paragraph_position_ad_id ); }; if( $end_position_ad_id == 0 ) { $b2 = $cusrnd; } else { $b2 = $cusads . $end_position_ad_id; array_push( $adsArrayCus, $end_position_ad_id ); }; for ( $i = 1; $i <= $number; $i++ ) { if( $paragraph['id'][$i] == 0 ) { $paragraph[$i] = $cusrnd; } else { $paragraph[$i] = $cusads . $paragraph['id'][$i]; array_push( $adsArrayCus, $paragraph['id'][$i] ); }; } //wp_die(print_r($adsArrayCus)); // Create the arguments for filter adsensei_filter_paragraphs $adsensei_args = array( 'paragraph' => $paragraph, 'cusads' => $cusads, 'cusrnd' => $cusrnd, 'AdsIdCus' => $adsArrayCus, ); // Execute filter to add more paragraph ad spots $adsensei_filtered = apply_filters( 'adsensei_filter_paragraphs', $adsensei_args ); // The filtered arguments $paragraph = $adsensei_filtered['paragraph']; // filtered list of ad spots $adsArrayCus = $adsensei_filtered['AdsIdCus']; // Create paragraph ads $number = 11; for ( $i = $number; $i >= 1; $i-- ) { if( !empty( $paragraph['status'][$i] ) ) { $sch = "

"; $content = str_replace( "

", $sch, $content ); /** * Get all blockquote if there are any */ preg_match_all("/
(.*?)<\/blockquote>/s", $content, $blockquotes); /** * Replace blockquotes with placeholder */ if(!empty($blockquotes)){ $bId = 0; foreach($blockquotes[0] as $blockquote){ $replace = "#ADSENSEIBLOCKQUOTE" . $bId . '#'; $content = str_replace(trim($blockquote), $replace, $content); $bId++; } } // Get paragraph tags $paragraphsArray = explode( $sch, $content ); /** * Check if last element is empty and remove it */ if(trim($paragraphsArray[count($paragraphsArray)-1]) == "") array_pop($paragraphsArray); if( ( int ) $paragraph['position'][$i] <= count( $paragraphsArray ) ) { $content = implode( $sch, array_slice( $paragraphsArray, 0, $paragraph['position'][$i] ) ) . $sch . '' . implode( $sch, array_slice( $paragraphsArray, $paragraph['position'][$i] ) ); } elseif( $paragraph['end_post'][$i] ) { $content = implode( $sch, $paragraphsArray ) . ''; } /** * Put back blockquotes into content */ if(!empty($blockquotes)){ $bId = 0; foreach($blockquotes[0] as $blockquote){ $search = '#ADSENSEIBLOCKQUOTE' . $bId . '#'; $content = str_replace($search, trim($blockquote), $content); $bId++; } } } } // Check if image ad is random one if( $imageAdNo == 0 ) { $imageAd = $cusrnd; } else { $imageAd = $cusads . $imageAdNo; array_push( $adsArrayCus, $imageAdNo ); }; // Beginning of post ad if( $beginning_position_status && strpos( $content, '' ) === false ) { $content = '' . $content; } // Check if ad is middle one if( $middle_position_status && strpos( $content, '' ) === false ) { if( substr_count( strtolower( $content ), '

' ) >= 2 ) { $closingTagP = "

"; $content = str_replace( "

", $closingTagP, $content ); $paragraphsArray = explode( $closingTagP, $content ); /** * Check if last element is empty and remove it */ if(trim($paragraphsArray[count($paragraphsArray)-1]) == "") array_pop($paragraphsArray); $nn = 0; $mm = strlen( $content ) / 2; for ( $i = 0; $i < count( $paragraphsArray ); $i++ ) { $nn += strlen( $paragraphsArray[$i] ) + 4; if( $nn > $mm ) { if( ($mm - ($nn - strlen( $paragraphsArray[$i] ))) > ($nn - $mm) && $i + 1 < count( $paragraphsArray ) ) { $paragraphsArray[$i + 1] = '' . $paragraphsArray[$i + 1]; } else { $paragraphsArray[$i] = '' . $paragraphsArray[$i]; } break; } } $content = implode( $closingTagP, $paragraphsArray ); } } // End of Post ad if( $end_position_status && strpos( $content, '' ) === false ) { $content = $content . ''; } // Check if ad is after "More Tag" if( $more_position_status && strpos( $content, '' ) === false ) { $mmr = ''; $postid = get_the_ID(); $content = str_replace( '', $mmr, $content ); } // Right before last paragraph ad if( $last_paragraph_position_status && strpos( $content, '' ) === false ) { $closingTagP = "

"; $content = str_replace( "

", $closingTagP, $content ); $paragraphsArray = explode( $closingTagP, $content ); /** * Check if last element is empty and remove it */ if(trim($paragraphsArray[count($paragraphsArray)-1]) == "") array_pop($paragraphsArray); //if( count( $paragraphsArray ) > 2 && !strpos($paragraphsArray[count( $paragraphsArray ) - 1], '
')) { if( count( $paragraphsArray ) > 2) { $content = implode( $closingTagP, array_slice( $paragraphsArray, 0, count( $paragraphsArray ) - 1 ) ) . '' . $closingTagP . $paragraphsArray[count( $paragraphsArray ) - 1]; } } // After Image ad if( $imageActive ) { // Sanitation $imgtag = "", $atag, $content ); // Get all images in content $imagesArray = explode( $imgtag, $content ); // Modify Image ad if( ( int ) $imageNo < count( $imagesArray ) ) { //Get all tags $tagsArray = explode( $delimiter, $imagesArray[$imageNo] ); if( count( $tagsArray ) > 1 ) { $captionArray = explode( $caption, $imagesArray[$imageNo] ); $ccp = ( count( $captionArray ) > 1 ) ? strpos( strtolower( $captionArray[0] ), '[caption ' ) === false : false; $imagesArrayAtag = explode( $atag, $imagesArray[$imageNo] ); $cdu = ( count( $imagesArrayAtag ) > 1 ) ? strpos( strtolower( $imagesArrayAtag[0] ), '
' . "\r\n" . implode( $caption, array_slice( $captionArray, 1 ) ); } else if( $cdu ) { $imagesArray[$imageNo] = implode( $atag, array_slice( $imagesArrayAtag, 0, 1 ) ) . $atag . "\r\n" . '' . "\r\n" . implode( $atag, array_slice( $imagesArrayAtag, 1 ) ); } else { $imagesArray[$imageNo] = implode( $delimiter, array_slice( $tagsArray, 0, 1 ) ) . $delimiter . "\r\n" . '' . "\r\n" . implode( $delimiter, array_slice( $tagsArray, 1 ) ); } } $content = implode( $imgtag, $imagesArray ); } } return $content; } /** * Sanitize content and return it cleaned * * @param string $content * @return string */ function adsensei_sanitize_content($content){ /* ... Tidy up content ... */ // Replace all

tags with placeholder ##QA-TP1## $content = str_replace( "

", "##QA-TP1##", $content ); // Replace all

 

tags with placeholder ##QA-TP2## $content = str_replace( "

 

", "##QA-TP2##", $content ); return $content; } /** * Parse random ads which are created from quicktag * * @global array $adsArray * @global int $visibleContentAds * @return content */ function adsensei_parse_random_quicktag_ads($content){ global $adsArray, $visibleContentAds, $adsensei_options; $maxAds = isset($adsensei_options['maxads']) ? $adsensei_options['maxads'] : 10; /* * Replace RndAds Random Ads */ if(!is_array($adsArray)) { $adsArray = [];} $content= str_replace('[adsensei id=RndAds]', '', $content); if( strpos( $content, '' ) !== false && is_singular() ) { $adsArrayTmp = array(); shuffle( $adsArray ); for ( $i = 1; $i <= $maxAds - $visibleContentAds; $i++ ) { if( $i <= count( $adsArray ) ) { array_push( $adsArrayTmp, $adsArray[$i - 1] ); } } $tcx = count( $adsArrayTmp ); $tcy = substr_count( $content, '' ); for ( $i = $tcx; $i <= $tcy - 1; $i++ ) { array_push( $adsArrayTmp, -1 ); } shuffle( $adsArrayTmp ); for ( $i = 1; $i <= $tcy; $i++ ) { $tmp = $adsArrayTmp[0]; $content = adsensei_replace_ads( $content, 'RndAds', $adsArrayTmp[0] ); $adsArrayTmp = adsensei_del_element( $adsArrayTmp, 0 ); if( $tmp != -1 ) { $visibleContentAds += 1; }; //adsensei_set_ad_count_content(); //if( adsensei_ad_reach_max_count() ) { if( $visibleContentAds >= adsensei_get_max_allowed_post_ads( $content ) ) { $content = adsensei_clean_tags( $content ); return $content; } } } return $content; } /** * Parse random default ads which can be enabled from general settings * * @global array $adsArray * @global int $visibleContentAds * @return string */ function adsensei_parse_random_ads_new($content) { $off_default_ads = (strpos( $content, '' ) !== false); if( $off_default_ads ) { return $content; } $selected_ads =array(); $random_ads_list_after =array(); $number_rand_ads = substr_count( $content, '#si", $content, $match); $ad_id = $match['1']; if(!empty($ad_id)){ $ad_meta = get_post_meta($ad_id, '',true); } $random_ads_list = unserialize($ad_meta['random_ads_list']['0']); if (!is_array($random_ads_list)) return $content; $temp_array =array(); foreach ($random_ads_list as $radom_ad ) { if (isset($radom_ad['value'])){ $temp_array[] = $radom_ad['value']; } } $random_ads_list_after = array_diff($temp_array, $selected_ads); $keys = array_keys($random_ads_list_after); shuffle($keys); $randomid = $random_ads_list_after[$keys[0]]; $selected_ads[] = $randomid; $enabled_on_amp = (isset($ad_meta['enabled_on_amp'][0]))? $ad_meta['enabled_on_amp'][0]: ''; $content = adsensei_replace_ads_new( $content, 'CusRnd' . $ad_id, $randomid,$enabled_on_amp); } return $content; } /** * Parse random default ads which can be enabled from general settings * * @global array $adsArray * @global int $visibleContentAds * @return string */ function adsensei_parse_random_ads($content) { global $adsRandom, $visibleContentAds; $off_default_ads = (strpos( $content, '' ) !== false); if( $off_default_ads ) { // disabled default ads return $content; } if( strpos( $content, '' ) !== false && is_singular() ) { $tcx = count( $adsRandom ); // How often is a random ad appearing in content $number_rand_ads = substr_count( $content, '' ); for ( $i = $tcx; $i <= $number_rand_ads - 1; $i++ ) { array_push( $adsRandom, -1 ); } shuffle( $adsRandom ); //wp_die(print_r($adsRandom)); //wp_die($adsRandom[0]); for ( $i = 1; $i <= $number_rand_ads; $i++ ) { $content = adsensei_replace_ads( $content, 'CusRnd', $adsRandom[0] ); $adsRandom = adsensei_del_element( $adsRandom, 0 ); $visibleContentAds += 1; //adsensei_set_ad_count_content(); //if( adsensei_ad_reach_max_count() ) { if( $visibleContentAds >= adsensei_get_max_allowed_post_ads( $content ) ) { $content = adsensei_clean_tags( $content ); return $content; } } } return $content; } /** * Parse Quicktags * * @global array $adsArray * @param string $content * @return string */ function adsensei_parse_quicktags($content){ global $adsArray, $visibleContentAds; //print_r(count($adsArray)); if (!is_array($adsArray)){ return $content; } $idx = 0; for ( $i = 1; $i <= count( $adsArray ); $i++ ) { if( strpos( $content, '' ) !== false ) { $content = adsensei_replace_ads( $content, 'Ads' . $adsArray[$idx], $adsArray[$idx] ); //$adsArray = adsensei_del_element( $adsArray, $idx ); $visibleContentAds += 1; $idx +=1; //adsensei_set_ad_count_content(); if( $visibleContentAds >= adsensei_get_max_allowed_post_ads( $content ) ) { $content = adsensei_clean_tags( $content ); return $content; } } else { $idx += 1; } } return $content; } /** * Parse default ads Beginning/Middle/End/Paragraph Ads1-10 * * @param string $content * @return string */ function adsensei_parse_default_ads( $content ) { global $adsArrayCus, $adsRandom, $adsArray, $visibleContentAds; $off_default_ads = (strpos( $content, '' ) !== false); if( $off_default_ads ) { // disabled default ads return $content; } // Create the array which contains the random ads $adsRandom = $adsArray; // echo '
';
            //        echo 'adsArrayCus: ';
            //        print_r($adsArrayCus);
            //        echo 'adsArray: ';
            //        print_r( $adsArray );
            //        echo '
'; for ( $i = 0; $i <= count( $adsArrayCus ); $i++ ) { if( isset( $adsArrayCus[$i] ) && strpos( $content, '' ) !== false && in_array( $adsArrayCus[$i], $adsArray ) ) { $content = adsensei_replace_ads( $content, 'CusAds' . $adsArrayCus[$i], $adsArrayCus[$i] ); // Create array $adsRandom for adsensei_parse_random_ads() parsing functions to make sure that the random function // is never using ads that are already used on static ad spots which are generated with adsensei_parse_default_ads() if ($i == 0){ $adsRandom = adsensei_del_element($adsRandom, array_search($adsArrayCus[$i], $adsRandom)); }else{ $adsRandom = adsensei_del_element($adsRandom, array_search($adsArrayCus[$i-1], $adsRandom)); } $visibleContentAds += 1; //adsensei_set_ad_count_content(); //if( adsensei_ad_reach_max_count() || $visibleContentAds >= adsensei_get_max_allowed_post_ads( $content ) ) { //wp_die(adsensei_get_max_allowed_post_ads( $content )); if( $visibleContentAds >= adsensei_get_max_allowed_post_ads( $content ) ) { $content = adsensei_clean_tags( $content ); } } } return $content; } function adsensei_parse_popup_ads($content) { if(!isset($_COOKIE['adsensei_popup'])){ preg_match("##si", $content, $match); if (!isset($match['1'])) { return $content; } $ad_id = $match['1']; if(!empty($ad_id)){ $ad_meta = get_post_meta($ad_id, '',true); } $ads_list = !empty($ad_meta['ads_list']['0']) ? unserialize($ad_meta['ads_list']['0']) : "" ; if (!is_array($ads_list)) return $content; $temp_array =array(); foreach ($ads_list as $ad ) { if (isset($ad['value'])){ $temp_array[] = $ad['value']; } } $ad_code = array_rand($temp_array); $popup_type = isset($ad_meta['popup_type'][0]) ? $ad_meta['popup_type'][0] : ''; $everytime_popup = (isset($ad_meta['everytime_popup'][0]) && !empty($ad_meta['everytime_popup'][0])) ? $ad_meta['everytime_popup'][0] : 0; $specific_time_interval_sec = (isset($ad_meta['specific_time_interval_sec'][0]) && !empty($ad_meta['specific_time_interval_sec'][0])) ? $ad_meta['specific_time_interval_sec'][0] : 0; $on_scroll_popup_percentage = (isset($ad_meta['on_scroll_popup_percentage'][0]) && !empty($ad_meta['on_scroll_popup_percentage'][0])) ? $ad_meta['on_scroll_popup_percentage'][0] : 0; $adsresultset = array(); if( $ads_list ){ foreach ($temp_array as $post_ad_id){ $ad_meta_group = get_post_meta($post_ad_id, '',true); if( get_post_status($post_ad_id) !== 'publish' ) { continue; } $adsresultset[] = array( 'ad_id' => $post_ad_id, 'ad_type' => $ad_meta_group['ad_type'], 'ad_adsense_type' => $ad_meta_group['adsense_type'], 'ad_data_client_id' => $ad_meta_group['g_data_ad_client'][0], 'ad_data_ad_slot' => $ad_meta_group['g_data_ad_slot'][0], // 'ad_custom_code' => $ad_meta_group['custom_code'], 'width' => $ad_meta_group['g_data_ad_width'], 'height' => $ad_meta_group['g_data_ad_height'], 'code' => $ad_meta_group['code'], 'network_code' => $ad_meta_group['network_code'], 'ad_unit_name' => $ad_meta_group['ad_unit_name'], // 'block_id' => $ad_meta_group['block_id'], 'data_container' => $ad_meta_group['data_container'], 'data_js_src' => $ad_meta_group['data_js_src'], 'data_cid' => $ad_meta_group['data_cid'], 'data_crid' => $ad_meta_group['data_crid'], 'taboola_publisher_id' => $ad_meta_group['taboola_publisher_id'], 'mediavine_site_id' => $ad_meta_group['mediavine_site_id'], 'outbrain_widget_ids' => $ad_meta_group['outbrain_widget_ids'], 'image_redirect_url' => $ad_meta_group['image_redirect_url'], 'ad_image' => $ad_meta_group['image_src'], 'mobile_ad_image' => $ad_meta_group['image_mobile_src'], ) ; } $response['adsensei_group_id'] = $ad_id; $response['adsensei_popup_type'] = 'popupads'; $response['specific_time_popup'] = $specific_time_interval_sec; $response['on_scroll_popup'] = $on_scroll_popup_percentage; $response['ads'] = $adsresultset; $arr = array( 'float:left;margin:%1$dpx %1$dpx %1$dpx 0;', 'float:none;margin:%1$dpx 0 %1$dpx 0;text-align:center;', 'float:right;margin:%1$dpx 0 %1$dpx %1$dpx;', 'float:none;margin:%1$dpx;'); $adsalign = isset($adsensei_options['ads']['ad' . $ad_id]['align']) ? $adsensei_options['ads']['ad' . $ad_id]['align'] : 0; // default $adsmargin = isset( $adsensei_options['ads']['ad' . $ad_id]['margin'] ) ? $adsensei_options['ads']['ad' . $ad_id]['margin'] : '0'; // default $margin = sprintf( $arr[( int ) $adsalign], $adsmargin ); // Do not create any inline style on AMP site $style = '' ; $popups_data = ''; if( $popup_type == "everytime_popup" ){ $style = "display:block"; $popups_data = ''; } if( $popup_type == "specific_time_popup" ){ $style = "display:none"; $popups_data = "data-timer=".$specific_time_interval_sec.""; } if( $popup_type == "on_scroll_popup" ){ $style = "display:none"; $popups_data = "data-percent=".$on_scroll_popup_percentage.""; } $code = "\n" . '' . "\n" . '
' . "\n"; $code .='
'; $code .='
'; $code .='
'; $code .= '
' . "\n"; $cont = explode('', $content, 2); $content = $cont[0].$code; $js_dir = ADSENSEI_PLUGIN_URL . 'assets/js/'; // Use minified libraries if SCRIPT_DEBUG is turned off $suffix = ( adsenseiIsDebugMode() ) ? '' : '.min'; // These have to be global wp_enqueue_script( 'wp_qds_popup', $js_dir . 'wp_qds_popup' . $suffix . '.js', array('jquery'), ADSENSEI_VERSION, false ); }else{ $content = adsensei_replace_ads_new( $content, 'CusRot' . $ad_id, $temp_array[$ad_code],$enabled_on_amp); } } return $content ; } function adsensei_parse_video_ads($content) { if(!isset($_COOKIE['adsensei_video'])){ preg_match("##si", $content, $match); if (!isset($match['1'])) { return $content; } $ad_id = $match['1']; if(!empty($ad_id)){ $ad_meta = get_post_meta($ad_id, '',true); } $video_ad_type = isset($ad_meta['video_ad_type'][0]) ? $ad_meta['video_ad_type'][0] : ''; $specific_time_interval_sec_video = (isset($ad_meta['specific_time_interval_sec_video'][0]) && !empty($ad_meta['specific_time_interval_sec_video'][0])) ? $ad_meta['specific_time_interval_sec_video'][0] : 0; $position = (isset($ad_meta['video_ad_type_position'][0]) && !empty($ad_meta['video_ad_type_position'][0])) ? $ad_meta['video_ad_type_position'][0] : 0; $on_scroll_video_percentage = (isset($ad_meta['on_scroll_video_percentage'][0]) && !empty($ad_meta['on_scroll_video_percentage'][0])) ? $ad_meta['on_scroll_video_percentage'][0] : 0; $V_image_src = (isset($ad_meta['image_src'][0]) && !empty($ad_meta['image_src'][0])) ? $ad_meta['image_src'][0] : 0; $V_redirect = (isset($ad_meta['image_redirect_url'][0]) && !empty($ad_meta['image_redirect_url'][0])) ? $ad_meta['image_redirect_url'][0] : ''; $V_image_width = (isset($ad_meta['video_width'][0]) && !empty($ad_meta['video_width'][0])) ? $ad_meta['video_width'][0] : '350'; $V_image_height = (isset($ad_meta['video_height'][0]) && !empty($ad_meta['video_height'][0])) ? $ad_meta['video_height'][0] :'auto'; $adsresultset = array(); if( $ad_meta ){ foreach ($ad_meta as $post_ad_id){ $ad_meta_group = get_post_meta($post_ad_id, '',true); if( get_post_status($post_ad_id) !== 'publish' ) { continue; } $adsresultset[] = array( 'ad_id' => $post_ad_id, 'ad_type' => 'video_ads', ) ; } $response['adsensei_group_id'] = $ad_id; $response['adsensei_video_type'] = 'videoads'; $response['specific_time_interval_sec_video'] = $specific_time_interval_sec_video; $response['on_scroll_video_percentage'] = $on_scroll_video_percentage; $response['viedo_url'] = $V_image_src; //$response['viedo_height'] = $V_image_height; $response['viedo_width'] = $V_image_width; $response['viedo_position'] = $position; $response['ads'] = $adsresultset; $arr = array( 'float:left;margin:%1$dpx %1$dpx %1$dpx 0;', 'float:none;margin:%1$dpx 0 %1$dpx 0;text-align:center;', 'float:right;margin:%1$dpx 0 %1$dpx %1$dpx;', 'float:none;margin:%1$dpx;'); $adsalign = isset($adsensei_options['ads']['ad' . $ad_id]['align']) ? $adsensei_options['ads']['ad' . $ad_id]['align'] : 0; // default $adsmargin = isset( $adsensei_options['ads']['ad' . $ad_id]['margin'] ) ? $adsensei_options['ads']['ad' . $ad_id]['margin'] : '0'; // default $margin = sprintf( $arr[( int ) $adsalign], $adsmargin ); // Do not create any inline style on AMP site $style = '' ; $videoad_data = ''; if( $video_ad_type == "specific_time_video" ){ $style = "display:none"; $videoad_data = "data-position=".$position." data-timer=".$specific_time_interval_sec_video.""; } if( $video_ad_type == "after_scroll_video" ){ $style = "display:none"; $videoad_data = "data-position=".$position." data-percent=".$on_scroll_video_percentage.""; } $code = "\n" . '' . "\n" . '
' . "\n"; $code .='
'; $code .='
'; $code .='
'; $code .= '
' . "\n"; $code .= '
' . "\n"; $cont = explode('', $content, 2); $content = $cont[0].$code; $js_dir = ADSENSEI_PLUGIN_URL . 'assets/js/'; // Use minified libraries if SCRIPT_DEBUG is turned off $suffix = ( adsenseiIsDebugMode() ) ? '' : '.min'; // These have to be global wp_enqueue_script( 'wp_qds_video', $js_dir . 'wp_qds_video' . $suffix . '.js', array('jquery'), ADSENSEI_VERSION, false ); } } return $content ; } function adsensei_parse_default_ads_new( $content ) { global $adsArrayCus, $adsRandom, $adsArray; $off_default_ads = (strpos( $content, '' ) !== false); if( $off_default_ads ) { // disabled default ads return $content; } $number_rand_ads = substr_count( $content, '#si", $content, $match); $ad_id = isset($match['1'])?$match['1']:''; if( strpos( $content, '' ) !== false ) { $content = adsensei_replace_ads_new( $content, 'CusAds' . $ad_id, $ad_id ); } } return $content; } /** * Replace ad code in content * * @global type $adsensei_options * @param string $content * @param string $quicktag Quicktag * @param string $id id of the ad * @return type */ function adsensei_replace_ads($content, $quicktag, $id) { global $adsensei_options; if( strpos($content,'')===false ) { return $content; } if ($id != -1) { $code = !empty($adsensei_options['ads']['ad' . $id ]['code']) ? $adsensei_options['ads']['ad' . $id ]['code'] : ''; $style = adsensei_get_inline_ad_style($id); $adscode = "\n".'
'."\n". adsensei_render_ad('ad'.$id, $code)."\n". '
'. "\n"; } else { $adscode =''; } $cont = explode('', $content, 2); return $cont[0].$adscode.$cont[1]; } /** * Replace ad code in content * * @global type $adsensei_options * @param string $content * @param string $quicktag Quicktag * @param string $id id of the ad * @return type */ function adsensei_replace_ads_new($content, $quicktag, $id,$ampsupport='') { global $adsensei_options; if( strpos($content,'')===false ) { return $content; } $flag = true; // if it was sticky ad return empty if (isset($ad_meta['adsense_ad_type'][0]) && $ad_meta['adsense_ad_type'][0] == 'adsense_sticky_ads' ){ $flag = false; } $ad_meta = get_post_meta($id, '',true); if (isset($ad_meta['code'][0])&& $flag) { if(!empty($ad_meta['code'][0])){ $code = ''; if ( isset($adsensei_options['lazy_load_global']) && $adsensei_options['lazy_load_global']===true && strpos($ad_meta['code'][0], 'class="adsbygoogle"') !== false) { $id_name = "adsensei-".esc_attr($id)."-place"; $code .= '
' ; } $code .= $ad_meta['code'][0]; if ( isset($adsensei_options['lazy_load_global']) && $adsensei_options['lazy_load_global']===true && strpos($ad_meta['code'][0], 'class="adsbygoogle"') !== false) { $check_script_tag = preg_match('#(.*?)#is', $code); if($check_script_tag){ $code = preg_replace('#(.*?)#is', '', $code); } $code = str_replace( 'class="adsbygoogle"', '', $code ); $code = str_replace( '>', '>Loading...
', $code ); $code1 = 'instant= new adsenseLoader( \'#adsensei-' . esc_attr($id) . '-place\', { onLoad: function( ad ){ if (ad.classList.contains("adsensei-ll")) { ad.classList.remove("adsensei-ll"); } } });'; $code = str_replace( '(adsbygoogle = window.adsbygoogle || []).push({});', $code1, $code ); } }else{ $code =''; } $style = adsensei_get_inline_ad_style_new($id); $adscode = "\n".'
'."\n". adsensei_render_ad($ad_meta['adsensei_ad_old_id'][0], $code,'',$ampsupport)."\n". '
'. "\n"; } else { $adscode =''; } $cont = explode('', $content, 2); if(isset($adsensei_options['tcf_2_integration']) && !empty($adsensei_options['tcf_2_integration']) && $adsensei_options['tcf_2_integration'] && function_exists( 'run_qc_choice' ) ){ $adscode= sprintf( '', $id, base64_encode( $adscode ) ); } $content = $cont[0].$adscode.$cont[1]; $adscode = apply_filters("wp_adsensei_final_ad_data", $adscode); return $content; } /** * Get ad inline style * * @global arr $adsensei_options * @param int $id id of the ad * @return string */ function adsensei_get_inline_ad_style( $id ) { global $adsensei_options; if( empty($id) ) { return ''; } // Basic style $styleArray = array( 'float:left;margin:%1$dpx %1$dpx %1$dpx 0;', 'float:none;margin:%1$dpx 0 %1$dpx 0;text-align:center;', 'float:right;margin:%1$dpx 0 %1$dpx %1$dpx;', 'float:none;margin:%1$dpx;'); // Alignment $adsalign = ( int )$adsensei_options['ads']['ad' . $id]['align']; // Margin $adsmargin = isset( $adsensei_options['ads']['ad' . $id]['margin'] ) ? $adsensei_options['ads']['ad' . $id]['margin'] : '3'; // default option = 3 $margin = sprintf( $styleArray[$adsalign], $adsmargin ); //wp_die($adsensei_options['ads']['ad' . $id]['margin']); //wp_die('ad'.$id); // Do not create any inline style on AMP site $style = apply_filters( 'adsensei_filter_margins', $margin, 'ad' . $id ); return $style; } function adsensei_get_inline_ad_style_new( $id ) { global $adsensei_options; if( empty($id) ) { return ''; } $ad_meta = get_post_meta($id, '',true); // Basic style $styleArray = array( 'float:left;margin:%1$dpx %1$dpx %1$dpx 0;', 'float:none;text-align:center;', 'float:right;margin:%1$dpx 0 %1$dpx %1$dpx;', 'float:none;margin:%1$dpx %2$dpx %3$dpx %4$dpx;'); $padding_styleArray = array( 'padding:%1$dpx %1$dpx %1$dpx 0;', 'padding:%1$dpx 0 %1$dpx 0;', 'padding:%1$dpx 0 %1$dpx %1$dpx;', 'padding:%1$dpx;'); // Alignment $adsalign = ( int )$ad_meta['align'][0]; // Margin $adsmargin = isset( $ad_meta['margin'][0] ) ? $ad_meta['margin'][0] : '3'; // default option = 3 $adsmargin_right = isset( $ad_meta['margin_right'][0] ) ? $ad_meta['margin_right'][0] : '3'; // default option = 3 $adsmargin_bottom = isset( $ad_meta['margin_bottom'][0] ) ? $ad_meta['margin_bottom'][0] : '3'; // default option = 3 $adsmargin_left = isset( $ad_meta['margin_left'][0] ) ? $ad_meta['margin_left'][0] : '3'; // default option = 3 $margin = sprintf( $styleArray[$adsalign], $adsmargin, $adsmargin_right, $adsmargin_bottom, $adsmargin_left ); // Padding $adspadding = isset( $ad_meta['padding'][0] ) ? $ad_meta['padding'][0] : '0'; // default option = 0 $padding = sprintf( $padding_styleArray[$adsalign], $adspadding ); // Do not create any inline style on AMP site $style = apply_filters( 'adsensei_filter_margins', $margin, 'ad' . $id ) ; return $style.$padding; } /** * Revert content to original content any remove any processing helper strings * * @global int $visibleContentAds * @global array $adsArray * @global array $adsensei_options * @global int $ad_count * @param string $content * @param boolean $trimonly * * @return string content */ function adsensei_clean_tags($content, $trimonly = false) { global $visibleContentAds; global $adsArray; global $adsensei_options; global $ad_count; $tagnames = array('EmptyClear','RndAds','NoAds','OffDef','OffAds','OffWidget','OffBegin','OffMiddle','OffEnd','OffBfMore','OffAfLastPara','CusRnd'); for($i=1;$i<=10;$i++) { array_push($tagnames, 'CusAds'.$i); array_push($tagnames, 'Ads'.$i); }; foreach ($tagnames as $tags) { if(strpos($content,'')!==false || $tags=='EmptyClear') { if($trimonly) { $content = str_replace('

', '', $content); }else{ $content = str_replace(array('

',''), '', $content); $content = str_replace("##QA-TP1##", "

", $content); $content = str_replace("##QA-TP2##", "

 

", $content); } } } if(!$trimonly && (is_single() || is_page()) ) { $visibleContentAds = 0; $adsArray = array(); } return $content; } /** * Remove element from array * * @param array $paragraphsArrayay * @param int $idx key to remove from array * @return array */ function adsensei_del_element($array, $idx) { $copy = array(); for( $i=0; $icurrent_post )) { return; }; // don’t inject into main query on single pages. if( $wp_query->is_main_query() && is_single() ){ return; } if ( $wp_query->is_singular() || ! $wp_query->in_the_loop ) { return; } // check if the loop is outside of wp_head, but only on non-AJAX calls. if ( ! is_admin() && ! did_action( 'wp_head' ) ) { return; } $curr_index = $wp_query->current_post ; // normalize index static $handled_indexes = array(); if ( $wp_query->is_main_query() ) { if ( in_array( $curr_index, $handled_indexes ) ) { return; } $handled_indexes[] = $curr_index; } if(empty($adsensei_new_interface_ads)){ if(isset($adsensei_ads) && !empty($adsensei_ads)) { $adsensei_new_interface_ads = $adsensei_ads; } else { require_once ADSENSEI_PLUGIN_DIR . '/admin/includes/rest-api-service.php'; $api_service = new ADSENSEI_Ad_Setup_Api_Service(); $adsensei_new_interface_ads = $api_service->getAdDataByParam('adsensei-ads'); } }else{ $adsensei_ads = $adsensei_new_interface_ads; } if(isset($adsensei_ads['posts_data'])){ foreach($adsensei_ads['posts_data'] as $key => $value){ $ads =$value['post_meta']; if($value['post']['post_status']== 'draft'){ continue; } $display_after_every = (isset($ads['display_after_every']) && !empty($ads['display_after_every'])) ? $ads['display_after_every'] : false; if( isset($ads['position'] ) && $ads['position'] == 'amp_ads_in_loops' && (isset($ads['ads_loop_number']) && ($ads['ads_loop_number'] == $curr_index || ($display_after_every && $curr_index!== 0 && ($curr_index % $ads['ads_loop_number'] == 0))))){ $tag= ''; if(isset($ads['visibility_include'])) $ads['visibility_include'] = unserialize($ads['visibility_include']); if(isset($ads['visibility_exclude'])) $ads['visibility_exclude'] = unserialize($ads['visibility_exclude']); if(isset($ads['targeting_include'])) $ads['targeting_include'] = unserialize($ads['targeting_include']); if(isset($ads['targeting_exclude'])) $ads['targeting_exclude'] = unserialize($ads['targeting_exclude']); $is_on = adsensei_is_visibility_on($ads); $is_visitor_on = adsensei_is_visitor_on($ads); if($is_on && $is_visitor_on ){ echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); } } } } } function adsensei_background_ad(){ if(!is_admin()){ ob_start( "adsensei_background_ad_last"); } } function adsensei_background_ad_last($content){ if(!isset($adsensei_ads)|| empty($adsensei_ads)) { require_once ADSENSEI_PLUGIN_DIR . '/admin/includes/rest-api-service.php'; $api_service = new ADSENSEI_Ad_Setup_Api_Service(); $adsensei_ads = $api_service->getAdDataByParam('adsensei-ads'); } if(isset($adsensei_ads['posts_data'])){ foreach($adsensei_ads['posts_data'] as $key => $value){ $ads =$value['post_meta']; if($value['post']['post_status']== 'draft'){ continue; } if(isset($ads['visibility_include'])) $ads['visibility_include'] = unserialize($ads['visibility_include']); if(isset($ads['visibility_exclude'])) $ads['visibility_exclude'] = unserialize($ads['visibility_exclude']); if(isset($ads['targeting_include'])) $ads['targeting_include'] = unserialize($ads['targeting_include']); if(isset($ads['targeting_exclude'])) $ads['targeting_exclude'] = unserialize($ads['targeting_exclude']); $is_on = adsensei_is_visibility_on($ads); $is_visitor_on = adsensei_is_visitor_on($ads); if(isset($ads['ad_id'])) $post_status = get_post_status($ads['ad_id']); else $post_status = 'publish'; if(!isset($ads['position']) || isset($ads['ad_type']) && $ads['ad_type']== 'random_ads'){ $is_on = true; } if($is_on && $is_visitor_on && $post_status=='publish'){ if($ads['ad_type'] == 'background_ad'){ $after_body='
' . '' . '
'; $style=' '; $before_body = $style.'
'; $content = preg_replace("/(\)/", $before_body."$1".$after_body, $content); } else if($ads['ad_type'] == 'skip_ads'){ if(!isset($_COOKIE['skip_ads_delay'])) { setcookie('skip_ads_delay', esc_attr($ads['freq_page_view']),-1, "/"); // 86400 = 1 day }else{ if($_COOKIE['skip_ads_delay'] != 0){ setcookie('skip_ads_delay', esc_attr($_COOKIE['skip_ads_delay']-1),-1, "/"); // 86400 = 1 day return $content; } } $html = '
Please wait..
'; if(isset($ads['skip_ads_type']) && $ads['skip_ads_type'] == 'image_banner' ){ if(isset($ads['image_redirect_url']) && !empty($ads['image_redirect_url'])){ $html .= ' '; }else{ $html .= ''; } }else{ $html .= $ads['code']; } $html .= '
'; $content = preg_replace("/(\)/", $html."$1".$after_body, $content); } } } } return $content; } function remove_ad_from_content($content,$ads,$ads_data='',$position='',$repeat_paragraph=false){ $wp_charset = get_bloginfo( 'charset' ); $tag = 'p[not(parent::blockquote)]|p[not(parent::table)]'; $offsets = array(); $paragraphs = array(); $doc = new DOMDocument( '1.0', $wp_charset ); libxml_use_internal_errors( true ); if($content) { $doc->loadHTML(mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8')); } else { return ''; } $xpath = new DOMXPath( $doc ); $items = $xpath->query( '/html/body/' . $tag ); $whitespaces = json_decode( '"\t\n\r \u00A0"' ); foreach ( $items as $item) { if ( ( isset( $item->textContent ) && trim( $item->textContent, $whitespaces ) !== '' ) ) { $paragraphs[] = $item; } } $total_paragraphs = count($paragraphs); if(isset($ads_data['after_the_percentage_value'])){ $percentage = intval($ads_data['after_the_percentage_value']); $position = floor(($percentage / 100) * $total_paragraphs); } if($repeat_paragraph){ for ( $i = $position -1; $i < $total_paragraphs; $i++ ) { // Select every X number. if ( ( $i + 1 ) % $position === 0 ) { $offsets[] = $i; } } foreach ( $offsets as $offset ) { $ref_node = $paragraphs[$offset]->nextSibling; $ad_dom = new DOMDocument( '1.0', $wp_charset ); libxml_use_internal_errors( true ); $ad_dom->loadHTML(mb_convert_encoding('' . $ads, 'HTML-ENTITIES', 'UTF-8')); foreach ( $ad_dom->getElementsByTagName( 'body' )->item( 0 )->childNodes as $importedNode ) { $importedNode = $doc->importNode( $importedNode, true ); if($ref_node){ $ref_node->parentNode->insertBefore( $importedNode, $ref_node ); } } } }else{ if(isset($paragraphs[$position])){ $ref_node = $paragraphs[$position]; $ad_dom = new DOMDocument( '1.0', $wp_charset ); libxml_use_internal_errors( true ); $ad_dom->loadHTML(mb_convert_encoding('' . $ads, 'HTML-ENTITIES', 'UTF-8')); foreach ( $ad_dom->getElementsByTagName( 'body' )->item( 0 )->childNodes as $importedNode ) { $importedNode = $doc->importNode( $importedNode, true ); if($ref_node){ $ref_node->parentNode->insertBefore( $importedNode, $ref_node ); } } } } $content =$doc->saveHTML(); return $content; } function adsenseiv2_process_content( $content ) { global $adsensei_mode, $adsensei_options, $adsArray, $adsArrayCus, $visibleContentAds, $ad_count_widget, $visibleShortcodeAds; // Array of ad codes ids $adsArray = adsensei_get_active_ads(); // Return is no ads are defined if ($adsArray === 0 && $adsensei_mode != 'new') { return $content; } $content = adsensei_parse_group_insert_ads( $content ); $content = adsensei_parse_rotator_ads( $content ); $content = adsensei_parse_sticky_scroll_ads( $content ); return $content; } add_filter( 'adsensei_default_filter_position_data', 'adsenseipro_default_filter_position_data',10 ,1 ); function adsenseipro_default_filter_position_data($ads){ if($ads['ad_type']== 'ad_blindness' ){ $cusads = ''; if(isset($ads['ad_blindness'])) $ads['ad_blindness'] = unserialize($ads['ad_blindness']); $key = array_rand($ads['ad_blindness']); $ad_blindness = $ads['ad_blindness'][$key]; $ads=array_merge($ads,$ad_blindness); if(isset($ads['ads_list'])) $ads['ads_list'] = unserialize($ads['ads_list']); $ads['ad_id'] = $ads['ads_list'][0]['value']; } return $ads; } add_filter( 'adsensei_default_filter_position_data_ab_testing', 'adsenseipro_default_filter_position_data2',10 ,1 ); function adsenseipro_default_filter_position_data2($ads){ if($ads['ad_type']== 'ab_testing' ){ $cusads = ''; if(isset($ads['ab_testing'])) $ads['ab_testing'] = unserialize($ads['ab_testing']); $key = array_rand($ads['ab_testing']); $ab_testing = $ads['ab_testing'][$key]; $ads=array_merge($ads,$ab_testing); if( $ab_testing["position"] == 'beginning_of_post' ){ add_filter('wp_adsensei_content_html_last_filter','wpadsensei_content_pos_b_modifier'); function wpadsensei_content_pos_b_modifier( $content_buffer ){ $content_buffer = preg_replace("/class=\"adsensei-location(.*?)\"/", "class=\"adsensei-location$1\" data-attr=\"beginning_of_post\" " , $content_buffer); return $content_buffer; } } if( $ab_testing["position"] == 'end_of_post' ){ add_filter('wp_adsensei_content_html_last_filter','wpadsensei_content_pos_e_modifier'); function wpadsensei_content_pos_e_modifier( $content_buffer ){ $content_buffer = preg_replace("/class=\"adsensei-location(.*?)\"/", "class=\"adsensei-location$1\" data-attr=\"end_of_post\" " , $content_buffer); return $content_buffer; } } if( $ab_testing["position"] == 'middle_of_post' ){ add_filter('wp_adsensei_content_html_last_filter','wpadsensei_content_pos_mid_modifier'); function wpadsensei_content_pos_mid_modifier( $content_buffer ){ $content_buffer = preg_replace("/class=\"adsensei-location(.*?)\"/", "class=\"adsensei-location$1\" data-attr=\"middle_of_post\" " , $content_buffer); return $content_buffer; } } if( $ab_testing["position"] == 'after_more_tag' ){ add_filter('wp_adsensei_content_html_last_filter','wpadsensei_content_pos_amt_modifier'); function wpadsensei_content_pos_amt_modifier( $content_buffer ){ $content_buffer = preg_replace("/class=\"adsensei-location(.*?)\"/", "class=\"adsensei-location$1\" data-attr=\"after_more_tag\" " , $content_buffer); return $content_buffer; } } if(isset($ads['ads_list'])) $ads['ads_list'] = unserialize($ads['ads_list']); $ads['ad_id'] = $ads['ads_list'][0]['value']; } return apply_filters( 'adsensei_ads_data' , $ads); } add_action('wp_ajax_nopriv_adsensei_insert_ad_clicks_beginning_of_post', 'adsensei_insert_ad_clicks_beginning_of_post'); add_action('wp_ajax_adsensei_insert_ad_clicks_beginning_of_post', 'adsensei_insert_ad_clicks_beginning_of_post'); function adsensei_insert_ad_clicks_beginning_of_post( ){ global $wpdb; $stats = $wpdb->get_var($wpdb->prepare("SELECT * FROM `{$wpdb->prefix}adsensei_stats`" )); if($stats>0){ $wpdb->query( $wpdb->prepare( "UPDATE `{$wpdb->prefix}adsensei_stats` SET `Beginning_of_post` = `Beginning_of_post` + 1 WHERE `id` = %d;", $stats ) ); } } add_action('wp_ajax_nopriv_adsensei_insert_ad_clicks_end_of_post', 'adsensei_insert_ad_clicks_end_of_post'); add_action('wp_ajax_adsensei_insert_ad_clicks_end_of_post', 'adsensei_insert_ad_clicks_end_of_post'); function adsensei_insert_ad_clicks_end_of_post( ){ global $wpdb; $stats = $wpdb->get_var($wpdb->prepare("SELECT * FROM `{$wpdb->prefix}adsensei_stats`" )); if($stats>0){ $wpdb->query( "UPDATE `{$wpdb->prefix}adsensei_stats` SET `End_of_post` = `End_of_post` + 1 " ); } } add_action('wp_ajax_nopriv_adsensei_insert_ad_clicks_middle_of_post', 'adsensei_insert_ad_clicks_middle_of_post'); add_action('wp_ajax_adsensei_insert_ad_clicks_middle_of_post', 'adsensei_insert_ad_clicks_middle_of_post'); function adsensei_insert_ad_clicks_middle_of_post( ){ global $wpdb; $stats = $wpdb->get_var($wpdb->prepare("SELECT * FROM `{$wpdb->prefix}adsensei_stats`" )); if($stats>0){ $wpdb->query( "UPDATE `{$wpdb->prefix}adsensei_stats` SET `Middle_of_post` = `Middle_of_post` + 1 " ); } } add_action('wp_ajax_nopriv_adsensei_insert_ad_clicks_after_more_tag', 'adsensei_insert_ad_clicks_after_more_tag'); add_action('wp_ajax_adsensei_insert_ad_clicks_after_more_tag', 'adsensei_insert_ad_clicks_after_more_tag'); function adsensei_insert_ad_clicks_after_more_tag( ){ global $wpdb; $stats = $wpdb->get_var($wpdb->prepare("SELECT * FROM `{$wpdb->prefix}adsensei_stats`" )); if($stats>0){ $wpdb->query( $wpdb->prepare( "UPDATE `{$wpdb->prefix}adsensei_stats` SET `After_more_tag` = `After_more_tag` + 1 WHERE `id` = %d", $stats ) ); } } /** * Parse rotator default ads which can be enabled from general settings * * @global array $adsArray * @global int $visibleContentAds * @return string */ function adsensei_parse_rotator_ads($content) { $off_default_ads = (strpos($content, '') !== false); if ($off_default_ads) { return $content; } preg_match("##si", $content, $match); if (!isset($match['1'])) { return $content; } $ad_id = $match['1']; if(!empty($ad_id)){ $ad_meta = get_post_meta($ad_id, '',true); } $ads_list = !empty($ad_meta['ads_list']['0']) ? unserialize($ad_meta['ads_list']['0']) : "" ; if (!is_array($ads_list)) return $content; $temp_array =array(); foreach ($ads_list as $ad ) { if (isset($ad['value'])){ $temp_array[] = $ad['value']; } } $ad_code = array_rand($temp_array); $enabled_on_amp = (isset($ad_meta['enabled_on_amp'][0]))? $ad_meta['enabled_on_amp'][0]: ''; $refresh_type = isset($ad_meta['refresh_type'][0]) ? $ad_meta['refresh_type'][0] : ''; $refresh_type_interval_sec = (isset($ad_meta['refresh_type_interval_sec'][0]) && !empty($ad_meta['refresh_type_interval_sec'][0])) ? $ad_meta['refresh_type_interval_sec'][0] : 0; $refresh_type_grid_column = isset( $ad_meta['grid_data_ad_column'][0] ) ? $ad_meta['grid_data_ad_column'][0] : 0 ; $refresh_type_grid_row = isset( $ad_meta['grid_data_ad_row'][0] ) ? $ad_meta['grid_data_ad_row'][0] : 0 ; // Number of Ads to Show $refresh_type_nofadstoshow = isset( $ad_meta['num_ads_t_s'][0] ) ? $ad_meta['num_ads_t_s'][0] : 0 ; $adsresultset = array(); if($refresh_type == 'on_interval'){ foreach ($temp_array as $post_ad_id){ $ad_meta_group = get_post_meta($post_ad_id, '',true); if( get_post_status($post_ad_id) !== 'publish' ) { continue; } $adsresultset[] = array( 'ad_id' => $post_ad_id, 'ad_type' => $ad_meta_group['ad_type'], 'ad_adsense_type' => $ad_meta_group['adsense_type'], 'ad_data_client_id' => $ad_meta_group['g_data_ad_client'][0], 'ad_data_ad_slot' => $ad_meta_group['g_data_ad_slot'][0], // 'ad_custom_code' => $ad_meta_group['custom_code'], 'width' => $ad_meta_group['g_data_ad_width'], 'height' => $ad_meta_group['g_data_ad_height'], 'code' => $ad_meta_group['code'], 'network_code' => $ad_meta_group['network_code'], 'ad_unit_name' => $ad_meta_group['ad_unit_name'], // 'block_id' => $ad_meta_group['block_id'], 'data_container' => $ad_meta_group['data_container'], 'data_js_src' => $ad_meta_group['data_js_src'], 'data_cid' => $ad_meta_group['data_cid'], 'data_crid' => $ad_meta_group['data_crid'], 'taboola_publisher_id' => $ad_meta_group['taboola_publisher_id'], 'mediavine_site_id' => $ad_meta_group['mediavine_site_id'], 'outbrain_widget_ids' => $ad_meta_group['outbrain_widget_ids'], 'image_redirect_url' => $ad_meta_group['image_redirect_url'], 'ad_image' => $ad_meta_group['image_src'], ) ; } $response['adsensei_group_id'] = $ad_id; $response['adsensei_refresh_type'] = 'on_interval'; $response['adsensei_group_ref_interval_sec'] = $refresh_type_interval_sec; $response['adsensei_refresh_type_grid_column'] = $refresh_type_grid_column; $response['adsensei_refresh_type_grid_row'] = $refresh_type_grid_row; $response['adsensei_refresh_type_grid_num_of_ats'] = $refresh_type_nofadstoshow; $response['ads'] = $adsresultset; $arr = array( 'float:none;text-align:center;', 'float:none;margin:%1$dpx 0 %1$dpx 0;text-align:center;', 'float:right;margin:%1$dpx 0 %1$dpx %1$dpx;', 'float:none;margin:%1$dpx;'); $adsalign = isset($adsensei_options['ads']['ad' . $ad_id]['align']) ? $adsensei_options['ads']['ad' . $ad_id]['align'] : ''; // default $adsmargin = isset( $adsensei_options['ads']['ad' . $ad_id]['margin'] ) ? $adsensei_options['ads']['ad' . $ad_id]['margin'] : ''; // default $margin = sprintf( $arr[( int ) $adsalign], $adsmargin ); // Do not create any inline style on AMP site $style = !adsensei_is_amp_endpoint() ? apply_filters( 'adsensei_filter_margins', $margin, 'ad' . $ad_id ) : ''; $code = "\n" . '' . "\n" . '
' . "\n"; // $inserted_rotater_ads_data = $response['ads']; // foreach ($inserted_rotater_ads_data as $key => $value) { // $code .= ''; // } $code .='
'; $code .='
'; $json_grid_column = $response['adsensei_refresh_type_grid_column'] ; $json_grid_row = $response['adsensei_refresh_type_grid_row'] ; $grid_row_css = ''; if($json_grid_column>=1 && $json_grid_row == 1 ){ $grid_row_css = 'style="grid-template-columns: auto"' ; } if($json_grid_column==1 && $json_grid_row==1 ){ $grid_row_css = 'style="grid-template-columns: auto"' ; } if($json_grid_column==2 && $json_grid_row==2 ){ $grid_row_css = 'style="grid-template-columns: auto auto"' ; } if($json_grid_column>=1 && $json_grid_row == 2 ){ $grid_row_css = 'style="grid-template-columns: auto auto"' ; } if($json_grid_column>=1 && $json_grid_row == 3 ){ $grid_row_css = 'style="grid-template-columns: auto auto auto"' ; } if($json_grid_column>=1 && $json_grid_row == 4 ){ $grid_row_css = 'style="grid-template-columns: auto auto auto auto"' ; } $code .='
'; $code .= '
' . "\n"; $cont = explode('', $content, 2); $content = $cont[0].$code.$cont[1]; $js_dir = ADSENSEI_PLUGIN_URL . 'assets/js/'; // Use minified libraries if SCRIPT_DEBUG is turned off $suffix = ( adsenseiIsDebugMode() ) ? '' : '.min'; // These have to be global wp_enqueue_script( 'adsensei-rotator_ads', $js_dir . 'rotator_ads' . $suffix . '.js', array('jquery'), ADSENSEI_VERSION, false ); }else{ $content = adsensei_replace_ads_new( $content, 'CusRot' . $ad_id, $temp_array[$ad_code],$enabled_on_amp); } return $content ; } /** * Parse rotator default ads which can be enabled from general settings * * @global array $adsArray * @global int $visibleContentAds * @return string */ function adsensei_parse_group_insert_ads($content) { $off_default_ads = (strpos( $content, '' ) !== false); if( $off_default_ads ) { return $content; } preg_match("##si", $content, $match); if(!isset($match['1'])){ return $content; } $ad_id = $match['1']; if(!empty($ad_id)){ $ad_meta = get_post_meta($ad_id, '',true); } $ads_list = unserialize($ad_meta['ads_list']['0']); if (!is_array($ads_list)) return $content; $temp_array =array(); foreach ($ads_list as $ad ) { if (isset($ad['value'])){ $temp_array[] = $ad['value']; } } $temp_array_count =count($temp_array); for($j=0; $j < $temp_array_count;$j++){ $enabled_on_amp = (isset($ad_meta['enabled_on_amp'][0]))? $ad_meta['enabled_on_amp'][0]: ''; $content = adsensei_replace_ads_new( $content, 'CusGI' . $ad_id, $temp_array[$j],$enabled_on_amp); if($j == $temp_array_count-1){ $number_rand_ads = substr_count( $content, '' ) !== false); if( $off_default_ads ) { return $content; } preg_match("##si", $content, $match); if(!isset($match['1'])){ return $content; } $ad_id = $match['1']; if(!empty($ad_id)){ $ad_meta = get_post_meta($ad_id, '',true); } $useragent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '' ; if(isset($ad_meta) && !adsensei_is_amp_endpoint() && preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))) { $temp_con='
'; $temp_con.='
'; $content = preg_replace('//i', $temp_con, $content); } $ads_list = unserialize($ad_meta['ads_list']['0']); if (!is_array($ads_list)) return $content; $temp_array =array(); foreach ($ads_list as $ad ) { if (isset($ad['value'])){ $temp_array[] = $ad['value']; } } $temp_array_count =count($temp_array); for($j=0; $j < $temp_array_count;$j++){ $enabled_on_amp = (isset($ad_meta['enabled_on_amp'][0]))? $ad_meta['enabled_on_amp'][0]: ''; $content = adsensei_replace_ads_new( $content, 'CusSS' . $ad_id, $temp_array[$j],$enabled_on_amp); if($j == $temp_array_count-1){ $number_rand_ads = substr_count( $content, '