D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
sadaunjx
/
hala-news.com
/
wp-content
/
plugins
/
quick-adsense
/
includes
/
Filename :
content.php
back
Copy
<?php $quick_adsense_ads_displayed = 0; $quick_adsense_ads_id = []; $quick_adsense_begin_end = 0; /** * Hook into the header to embed the Header tracking or ad code. */ add_action( 'wp_head', function() { $settings = get_option( 'quick_adsense_settings' ); if ( isset( $settings['header_embed_code'] ) && ( '' !== $settings['header_embed_code'] ) ) { echo wp_kses( $settings['header_embed_code'], quick_adsense_get_allowed_html() ); } } ); /** * Hook into the footer to embed the Footer tracking or ad code. */ add_action( 'wp_footer', function() { $settings = get_option( 'quick_adsense_settings' ); if ( isset( $settings['footer_embed_code'] ) && ( '' !== $settings['footer_embed_code'] ) ) { echo wp_kses( $settings['footer_embed_code'], quick_adsense_get_allowed_html() ); } } ); /** * Filter the post content to embed ads. */ add_filter( 'the_content', function( $content ) { global $quick_adsense_ads_displayed; global $quick_adsense_ads_id; global $quick_adsense_begin_end; $settings = get_option( 'quick_adsense_settings' ); if ( ! quick_adsense_postads_isactive( $settings, $content ) ) { $content = quick_adsense_content_clean_tags( $content ); return $content; } /* Begin Enforce Max Ads Per Page Rule */ $quick_adsense_ads_to_display = $settings['max_ads_per_page']; if ( strpos( $content, '<!--OffWidget-->' ) === false ) { for ( $i = 1; $i <= 10; $i++ ) { $widget_id = sanitize_title( str_replace( [ '(', ')' ], '', sprintf( 'AdsWidget%d (Quick Adsense)', $i ) ) ); $quick_adsense_ads_to_display -= ( is_active_widget( true, $widget_id ) ) ? 1 : 0; } } if ( $quick_adsense_ads_displayed >= $quick_adsense_ads_to_display ) { $content = quick_adsense_content_clean_tags( $content ); return $content; }; /* End Enforce Max Ads Per Page Rule */ /* Begin Check for Available Ad Blocks */ if ( ! count( $quick_adsense_ads_id ) ) { for ( $i = 1; $i <= 10; $i++ ) { if ( isset( $settings[ 'onpost_ad_' . $i . '_content' ] ) && ! empty( $settings[ 'onpost_ad_' . $i . '_content' ] ) ) { if ( quick_adsense_advanced_postads_isactive( $settings, $i ) ) { array_push( $quick_adsense_ads_id, (string) $i ); } } } } array_push( $quick_adsense_ads_id, 100 ); if ( ! count( $quick_adsense_ads_id ) ) { $content = quick_adsense_content_clean_tags( $content ); return $content; }; /* End Check for Available Ad Blocks */ /* Begin Insert StandIns for all Ad Blocks */ $content = str_replace( '<p></p>', '##QA-TP1##', $content ); $content = str_replace( '<p> </p>', '##QA-TP2##', $content ); $offdef = ( strpos( $content, '<!--OffDef-->' ) !== false ); if ( ! $offdef ) { $quick_adsense_ads_id_cus = []; $cusads = 'CusAds'; $cusrnd = 'CusRnd'; $quick_adsense_enable_position_after_more_tag = ( ( isset( $settings['enable_position_after_more_tag'] ) ) ? $settings['enable_position_after_more_tag'] : '' ); $quick_adsense_ad_after_more_tag = ( ( isset( $settings['ad_after_more_tag'] ) ) ? $settings['ad_after_more_tag'] : '' ); $quick_adsense_enable_position_before_last_para = ( ( isset( $settings['enable_position_before_last_para'] ) ) ? $settings['enable_position_before_last_para'] : '' ); $quick_adsense_ad_before_last_para = ( ( isset( $settings['ad_before_last_para'] ) ) ? $settings['ad_before_last_para'] : '' ); $quick_adsense_enable_position_beginning_of_post = ( ( isset( $settings['enable_position_beginning_of_post'] ) ) ? $settings['enable_position_beginning_of_post'] : '' ); $quick_adsense_ad_beginning_of_post = ( ( isset( $settings['ad_beginning_of_post'] ) ) ? $settings['ad_beginning_of_post'] : '' ); $quick_adsense_enable_position_middle_of_post = ( ( isset( $settings['enable_position_middle_of_post'] ) ) ? $settings['enable_position_middle_of_post'] : '' ); $quick_adsense_ad_middle_of_post = ( ( isset( $settings['ad_middle_of_post'] ) ) ? $settings['ad_middle_of_post'] : '' ); $quick_adsense_enable_position_end_of_post = ( ( isset( $settings['enable_position_end_of_post'] ) ) ? $settings['enable_position_end_of_post'] : '' ); $quick_adsense_ad_end_of_post = ( ( isset( $settings['ad_end_of_post'] ) ) ? $settings['ad_end_of_post'] : '' ); for ( $i = 1; $i <= 3; $i++ ) { $quick_adsense_enable_position_after_para[ $i ] = ( ( isset( $settings[ 'enable_position_after_para_option_' . $i ] ) ) ? $settings[ 'enable_position_after_para_option_' . $i ] : '' ); $quick_adsense_ad_after_para[ $i ] = ( ( isset( $settings[ 'ad_after_para_option_' . $i ] ) ) ? $settings[ 'ad_after_para_option_' . $i ] : '' ); $quick_adsense_position_after_para[ $i ] = ( ( isset( $settings[ 'position_after_para_option_' . $i ] ) ) ? $settings[ 'position_after_para_option_' . $i ] : '' ); $quick_adsense_enable_jump_position_after_para[ $i ] = ( ( isset( $settings[ 'enable_jump_position_after_para_option_' . $i ] ) ) ? $settings[ 'enable_jump_position_after_para_option_' . $i ] : '' ); } for ( $i = 1; $i <= 1; $i++ ) { $quick_adsense_enable_position_after_image = ( ( isset( $settings[ 'enable_position_after_image_option_' . $i ] ) ) ? $settings[ 'enable_position_after_image_option_' . $i ] : '' ); $quick_adsense_ad_after_image = ( ( isset( $settings[ 'ad_after_image_option_' . $i ] ) ) ? $settings[ 'ad_after_image_option_' . $i ] : '' ); $quick_adsense_position_after_image = ( ( isset( $settings[ 'position_after_image_option_' . $i ] ) ) ? $settings[ 'position_after_image_option_' . $i ] : '' ); $quick_adsense_enable_jump_position_after_image = ( ( isset( $settings[ 'enable_jump_position_after_image_option_' . $i ] ) ) ? $settings[ 'enable_jump_position_after_image_option_' . $i ] : '' ); } if ( 0 === $quick_adsense_ad_beginning_of_post ) { $quick_adsense_ad_beginning_of_post_stand_in = $cusrnd; } else { $quick_adsense_ad_beginning_of_post_stand_in = $cusads . $quick_adsense_ad_beginning_of_post; array_push( $quick_adsense_ads_id_cus, $quick_adsense_ad_beginning_of_post ); }; if ( 0 === $quick_adsense_ad_after_more_tag ) { $quick_adsense_ad_after_more_tag_stand_in = $cusrnd; } else { $quick_adsense_ad_after_more_tag_stand_in = $cusads . $quick_adsense_ad_after_more_tag; array_push( $quick_adsense_ads_id_cus, $quick_adsense_ad_after_more_tag ); }; if ( 0 === $quick_adsense_ad_middle_of_post ) { $quick_adsense_ad_middle_of_post_stand_in = $cusrnd; } else { $quick_adsense_ad_middle_of_post_stand_in = $cusads . $quick_adsense_ad_middle_of_post; array_push( $quick_adsense_ads_id_cus, $quick_adsense_ad_middle_of_post ); }; if ( 0 === $quick_adsense_ad_before_last_para ) { $quick_adsense_ad_before_last_para_stand_in = $cusrnd; } else { $quick_adsense_ad_before_last_para_stand_in = $cusads . $quick_adsense_ad_before_last_para; array_push( $quick_adsense_ads_id_cus, $quick_adsense_ad_before_last_para ); }; if ( 0 === $quick_adsense_ad_end_of_post ) { $quick_adsense_ad_end_of_post_stand_in = $cusrnd; } else { $quick_adsense_ad_end_of_post_stand_in = $cusads . $quick_adsense_ad_end_of_post; array_push( $quick_adsense_ads_id_cus, $quick_adsense_ad_end_of_post ); }; for ( $i = 1; $i <= 3; $i++ ) { if ( 0 === $quick_adsense_ad_after_para[ $i ] ) { $quick_adsense_ad_after_para_stand_in[ $i ] = $cusrnd; } else { $quick_adsense_ad_after_para_stand_in[ $i ] = $cusads . $quick_adsense_ad_after_para[ $i ]; array_push( $quick_adsense_ads_id_cus, $quick_adsense_ad_after_para[ $i ] ); }; } if ( 0 === $quick_adsense_ad_after_image ) { $quick_adsense_ad_after_image_stand_in = $cusrnd; } else { $quick_adsense_ad_after_image_stand_in = $cusads . $quick_adsense_ad_after_image; array_push( $quick_adsense_ads_id_cus, $quick_adsense_ad_after_image ); }; if ( $quick_adsense_enable_position_middle_of_post && ( strpos( $content, '<!--OffMiddle-->' ) === false ) ) { if ( substr_count( strtolower( $content ), '</p>' ) >= 2 ) { $quick_adsense_selected_tag = '</p>'; $content = str_replace( '</P>', $quick_adsense_selected_tag, $content ); $quick_adsense_temp_array = explode( $quick_adsense_selected_tag, $content ); $j = 0; $k = strlen( $content ) / 2; $quick_adsense_temp_array_count = count( $quick_adsense_temp_array ); for ( $i = 0; $i < $quick_adsense_temp_array_count; $i++ ) { $j += strlen( $quick_adsense_temp_array[ $i ] ) + 4; if ( $j > $k ) { if ( ( $k - ( $j - strlen( $quick_adsense_temp_array[ $i ] ) ) ) > ( $j - $k ) && $i + 1 < count( $quick_adsense_temp_array ) ) { $quick_adsense_temp_array[ $i + 1 ] = '<!--' . $quick_adsense_ad_middle_of_post_stand_in . '-->' . $quick_adsense_temp_array[ $i + 1 ]; } else { $quick_adsense_temp_array[ $i ] = '<!--' . $quick_adsense_ad_middle_of_post_stand_in . '-->' . $quick_adsense_temp_array[ $i ]; } break; } $quick_adsense_temp_array_count = count( $quick_adsense_temp_array ); } $content = implode( $quick_adsense_selected_tag, $quick_adsense_temp_array ); } } if ( $quick_adsense_enable_position_after_more_tag && ( strpos( $content, '<!--OffAfMore-->' ) === false ) ) { $content = str_replace( '<span id="more-' . get_the_ID() . '"></span>', '<!--' . $quick_adsense_ad_after_more_tag_stand_in . '-->', $content ); } if ( $quick_adsense_enable_position_beginning_of_post && ( strpos( $content, '<!--OffBegin-->' ) === false ) ) { $content = '<!--' . $quick_adsense_ad_beginning_of_post_stand_in . '-->' . $content; } if ( $quick_adsense_enable_position_end_of_post && ( strpos( $content, '<!--OffEnd-->' ) === false ) ) { $content = $content . '<!--' . $quick_adsense_ad_end_of_post_stand_in . '-->'; } if ( $quick_adsense_enable_position_before_last_para && ( strpos( $content, '<!--OffBfLastPara-->' ) === false ) ) { $quick_adsense_selected_tag = '<p>'; $content = str_replace( '<P>', $quick_adsense_selected_tag, $content ); $quick_adsense_temp_array = explode( $quick_adsense_selected_tag, $content ); if ( count( $quick_adsense_temp_array ) > 2 ) { $content = implode( $quick_adsense_selected_tag, array_slice( $quick_adsense_temp_array, 0, count( $quick_adsense_temp_array ) - 1 ) ) . '<!--' . $quick_adsense_ad_before_last_para_stand_in . '-->' . $quick_adsense_selected_tag . $quick_adsense_temp_array[ count( $quick_adsense_temp_array ) - 1 ]; } } for ( $i = 1; $i <= 3; $i++ ) { if ( $quick_adsense_enable_position_after_para[ $i ] ) { $quick_adsense_selected_tag = '</p>'; $content = str_replace( '</P>', $quick_adsense_selected_tag, $content ); $quick_adsense_temp_array = explode( $quick_adsense_selected_tag, $content ); if ( (int) $quick_adsense_position_after_para[ $i ] < count( $quick_adsense_temp_array ) ) { $content = implode( $quick_adsense_selected_tag, array_slice( $quick_adsense_temp_array, 0, $quick_adsense_position_after_para[ $i ] ) ) . $quick_adsense_selected_tag . '<!--' . $quick_adsense_ad_after_para_stand_in[ $i ] . '-->' . implode( $quick_adsense_selected_tag, array_slice( $quick_adsense_temp_array, $quick_adsense_position_after_para[ $i ] ) ); } elseif ( $quick_adsense_enable_jump_position_after_para[ $i ] ) { $content = implode( $quick_adsense_selected_tag, $quick_adsense_temp_array ) . '<!--' . $quick_adsense_ad_after_para_stand_in[ $i ] . '-->'; } } } if ( $quick_adsense_enable_position_after_image ) { $quick_adsense_selected_tag = '<img'; $j = '>'; $k = '[/caption]'; $l = '</a>'; $content = str_replace( '<IMG', $quick_adsense_selected_tag, $content ); $content = str_replace( '</A>', $l, $content ); $quick_adsense_temp_array = explode( $quick_adsense_selected_tag, $content ); if ( (int) $quick_adsense_position_after_image < count( $quick_adsense_temp_array ) ) { $m = explode( $j, $quick_adsense_temp_array[ $quick_adsense_position_after_image ] ); if ( count( $m ) > 1 ) { $n = explode( $k, $quick_adsense_temp_array[ $quick_adsense_position_after_image ] ); $o = ( count( $n ) > 1 ) ? ( strpos( strtolower( $n[0] ), '[caption ' ) === false ) : false; $p = explode( $l, $quick_adsense_temp_array[ $quick_adsense_position_after_image ] ); $q = ( count( $p ) > 1 ) ? ( strpos( strtolower( $p[0] ), '<a href' ) === false ) : false; if ( $quick_adsense_enable_jump_position_after_image && $o ) { $quick_adsense_temp_array[ $quick_adsense_position_after_image ] = implode( $k, array_slice( $n, 0, 1 ) ) . $k . "\r\n" . '<!--' . $quick_adsense_ad_after_image_stand_in . '-->' . "\r\n" . implode( $k, array_slice( $n, 1 ) ); } elseif ( $q ) { $quick_adsense_temp_array[ $quick_adsense_position_after_image ] = implode( $l, array_slice( $p, 0, 1 ) ) . $l . "\r\n" . '<!--' . $quick_adsense_ad_after_image_stand_in . '-->' . "\r\n" . implode( $l, array_slice( $p, 1 ) ); } else { $quick_adsense_temp_array[ $quick_adsense_position_after_image ] = implode( $j, array_slice( $m, 0, 1 ) ) . $j . "\r\n" . '<!--' . $quick_adsense_ad_after_image_stand_in . '-->' . "\r\n" . implode( $j, array_slice( $m, 1 ) ); } } $content = implode( $quick_adsense_selected_tag, $quick_adsense_temp_array ); } } } /* End Insert StandIns for all Ad Blocks */ /* Begin Replace StandIns for all Ad Blocks */ $content = '<!--EmptyClear-->' . $content . "\n" . '<div style="font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;"></div>'; $content = quick_adsense_content_clean_tags( $content, true ); $ismany = ( ! is_single() && ! is_page() ); $showall = ( ( isset( $settings['enable_all_possible_ads'] ) ) ? $settings['enable_all_possible_ads'] : '' ); if ( ! $offdef ) { $quick_adsense_ads_id_cus_count = count( $quick_adsense_ads_id_cus ); for ( $i = 1; $i <= $quick_adsense_ads_id_cus_count; $i++ ) { if ( $showall || ! $ismany || $i !== $quick_adsense_begin_end ) { if ( ( ( strpos( $content, '<!--' . $cusads . $quick_adsense_ads_id_cus[ $i - 1 ] . '-->' ) !== false ) || ( strpos( $content, '<!--' . $cusads . $quick_adsense_ads_id_cus[ $i - 1 ] . '-->' ) !== false ) ) && in_array( $quick_adsense_ads_id_cus[ $i - 1 ], $quick_adsense_ads_id, true ) ) { $content = quick_adsense_content_replace_ads( $content, $cusads . $quick_adsense_ads_id_cus[ $i - 1 ], $quick_adsense_ads_id_cus[ $i - 1 ] ); $content = quick_adsense_content_replace_ads( $content, $cusads . $quick_adsense_ads_id_cus[ $i - 1 ], $quick_adsense_ads_id_cus[ $i - 1 ] ); $quick_adsense_ads_id = quick_adsense_content_del_element( $quick_adsense_ads_id, array_search( $quick_adsense_ads_id_cus[ $i - 1 ], $quick_adsense_ads_id, true ) ); $quick_adsense_ads_displayed++; if ( $quick_adsense_ads_displayed >= $quick_adsense_ads_to_display || ! count( $quick_adsense_ads_id ) ) { $content = quick_adsense_content_clean_tags( $content ); return $content; }; $quick_adsense_begin_end = $i; if ( ! $showall && $ismany ) { break; } } } $quick_adsense_ads_id_cus_count = count( $quick_adsense_ads_id_cus ); } } if ( $showall || ! $ismany ) { $j = 0; $quick_adsense_ads_id_count = count( $quick_adsense_ads_id ); for ( $i = 1; $i <= $quick_adsense_ads_id_count; $i++ ) { if ( strpos( $content, '<!--Ads' . $quick_adsense_ads_id[ $j ] . '-->' ) !== false ) { $content = quick_adsense_content_replace_ads( $content, 'Ads' . $quick_adsense_ads_id[ $j ], $quick_adsense_ads_id[ $j ] ); $quick_adsense_ads_id = quick_adsense_content_del_element( $quick_adsense_ads_id, $j ); $quick_adsense_ads_displayed++; if ( ( $quick_adsense_ads_displayed >= $quick_adsense_ads_to_display ) || ! count( $quick_adsense_ads_id ) ) { $content = quick_adsense_content_clean_tags( $content ); return $content; }; } else { $j++; } $quick_adsense_ads_id_count = count( $quick_adsense_ads_id ); } } if ( ( strpos( $content, '<!--' . $cusrnd . '-->' ) !== false ) && ( $showall || ! $ismany ) ) { $j = substr_count( $content, '<!--' . $cusrnd . '-->' ); for ( $i = count( $quick_adsense_ads_id ); $i <= $j - 1; $i++ ) { array_push( $quick_adsense_ads_id, -1 ); } shuffle( $quick_adsense_ads_id ); for ( $i = 1; $i <= $j; $i++ ) { $content = quick_adsense_content_replace_ads( $content, $cusrnd, $quick_adsense_ads_id[0] ); $quick_adsense_ads_id = quick_adsense_content_del_element( $quick_adsense_ads_id, 0 ); $quick_adsense_ads_displayed++; if ( ( $quick_adsense_ads_displayed >= $quick_adsense_ads_to_display ) || ! count( $quick_adsense_ads_id ) ) { $content = quick_adsense_content_clean_tags( $content ); return $content; }; } } if ( ( strpos( $content, '<!--' . $cusrnd . '-->' ) !== false ) && ( $showall || ! $ismany ) ) { $quick_adsense_ads_id = $quick_adsense_ads_id; $key = array_search( '100', $quick_adsense_ads_id, true ); if ( false !== $key ) { unset( $quick_adsense_ads_id[ $key ] ); } $j = substr_count( $content, '<!--' . $cusrnd . '-->' ); for ( $i = count( $quick_adsense_ads_id ); $i <= $j - 1; $i++ ) { array_push( $quick_adsense_ads_id, -1 ); } shuffle( $quick_adsense_ads_id ); for ( $i = 1; $i <= $j; $i++ ) { $content = quick_adsense_content_replace_ads( $content, $cusrnd, $quick_adsense_ads_id[0] ); $quick_adsense_ads_id = quick_adsense_content_del_element( $quick_adsense_ads_id, 0 ); $quick_adsense_ads_displayed++; if ( ( $quick_adsense_ads_displayed >= $quick_adsense_ads_to_display ) || ! count( $quick_adsense_ads_id ) ) { $content = quick_adsense_content_clean_tags( $content ); return $content; }; } } if ( strpos( $content, '<!--RndAds-->' ) !== false && ( $showall || ! $ismany ) ) { $quick_adsense_ads_id_tmp = []; shuffle( $quick_adsense_ads_id ); for ( $i = 1; $i <= ( $quick_adsense_ads_to_display - $quick_adsense_ads_displayed ); $i++ ) { if ( $i <= count( $quick_adsense_ads_id ) ) { array_push( $quick_adsense_ads_id_tmp, $quick_adsense_ads_id[ $i - 1 ] ); } } $j = substr_count( $content, '<!--RndAds-->' ); for ( $i = count( $quick_adsense_ads_id_tmp ); $i <= $j - 1; $i++ ) { array_push( $quick_adsense_ads_id_tmp, -1 ); } shuffle( $quick_adsense_ads_id_tmp ); for ( $i = 1; $i <= $j; $i++ ) { $tmp = $quick_adsense_ads_id_tmp[0]; $content = quick_adsense_content_replace_ads( $content, 'RndAds', $quick_adsense_ads_id_tmp[0] ); $quick_adsense_ads_id_tmp = quick_adsense_content_del_element( $quick_adsense_ads_id_tmp, 0 ); if ( -1 !== $tmp ) { $quick_adsense_ads_displayed++; }; if ( $quick_adsense_ads_displayed >= $quick_adsense_ads_to_display || ! count( $quick_adsense_ads_id_tmp ) ) { $content = quick_adsense_content_clean_tags( $content ); return $content; }; } } /* End Replace StandIns for all Ad Blocks */ $content = quick_adsense_content_clean_tags( $content ); return $content; } ); /** * This function checks whether the ads are active on a post. * * @param array $settings The user settings. * @param string $content The content. * * @return boolean true on success, false on faliure. */ function quick_adsense_postads_isactive( $settings, $content ) { if ( is_feed() ) { return false; } elseif ( strpos( $content, '<!--NoAds-->' ) !== false ) { return false; } elseif ( strpos( $content, '<!--OffAds-->' ) !== false ) { return false; } elseif ( is_single() && ! ( isset( $settings['enable_on_posts'] ) ) ) { return false; } elseif ( is_page() && ! ( isset( $settings['enable_on_pages'] ) ) ) { return false; } elseif ( is_home() && ! ( isset( $settings['enable_on_homepage'] ) ) ) { return false; } elseif ( is_category() && ! ( isset( $settings['enable_on_categories'] ) ) ) { return false; } elseif ( is_archive() && ! ( isset( $settings['enable_on_archives'] ) ) ) { return false; } elseif ( is_tag() && ! ( isset( $settings['enable_on_tags'] ) ) ) { return false; } elseif ( is_user_logged_in() && ( isset( $settings['disable_for_loggedin_users'] ) ) ) { return false; } else { return true; } } /** * This function removes the quicktags from the content. * * @param string $content The content. * @param boolean $trimonly Just trim (remove p tags around the quicktag) or completly remove the quicktag. * * @return string The processed content. */ function quick_adsense_content_clean_tags( $content, $trimonly = false ) { global $quick_adsense_ads_displayed; global $quick_adsense_ads_id; global $quick_adsense_begin_end; $quicktags = [ 'EmptyClear', 'RndAds', 'NoAds', 'OffDef', 'OffAds', 'OffWidget', 'OffBegin', 'OffMiddle', 'OffEnd', 'OffBfMore', 'OffAfLastPara', 'CusRnd', ]; for ( $i = 1; $i <= 10; $i++ ) { array_push( $quicktags, 'CusAds' . $i ); array_push( $quicktags, 'Ads' . $i ); }; foreach ( $quicktags as $quicktag ) { if ( ( strpos( $content, '<!--' . $quicktag . '-->' ) !== false ) || ( 'EmptyClear' === $quicktag ) ) { if ( $trimonly ) { $content = str_replace( '<p><!--' . $quicktag . '--></p>', '<!--' . $quicktag . '-->', $content ); } else { $content = str_replace( [ '<p><!--' . $quicktag . '--></p>', '<!--' . $quicktag . '-->' ], '', $content ); $content = str_replace( '##QA-TP1##', '<p></p>', $content ); $content = str_replace( '##QA-TP2##', '<p> </p>', $content ); } } } if ( ! $trimonly && ( is_single() || is_page() ) ) { $quick_adsense_ads_displayed = 0; $quick_adsense_ads_id = []; $quick_adsense_begin_end = 0; } return $content; } /** * This function replaces the quicktag with the actual ad. * * @param string $content The content. * @param string $quicktag The quicktag. * @param integer $ad_index The array index. * * @return string The processed content. */ function quick_adsense_content_replace_ads( $content, $quicktag, $ad_index ) { if ( strpos( $content, '<!--' . $quicktag . '-->' ) === false ) { return $content; } $settings = get_option( 'quick_adsense_settings' ); $onpost_ad_styles = [ '', '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:0px;', ]; if ( ( -1 !== $ad_index ) ) { $onpost_ad_alignment = ( ( isset( $settings[ 'onpost_ad_' . $ad_index . '_alignment' ] ) ) ? $settings[ 'onpost_ad_' . $ad_index . '_alignment' ] : '' ); $onpost_ad_margin = ( ( isset( $settings[ 'onpost_ad_' . $ad_index . '_margin' ] ) ) ? $settings[ 'onpost_ad_' . $ad_index . '_margin' ] : '' ); $onpost_ad_style = sprintf( $onpost_ad_styles[ (int) $onpost_ad_alignment ], $onpost_ad_margin ); $onpost_ad_code = ( ( isset( $settings[ 'onpost_ad_' . $ad_index . '_content' ] ) ) ? $settings[ 'onpost_ad_' . $ad_index . '_content' ] : '' ); $onpost_ad_code = '<div class="' . md5( get_bloginfo( 'url' ) ) . '" data-index="' . $ad_index . '" style="' . $onpost_ad_style . '">' . "\n" . $onpost_ad_code . "\n" . '</div>' . "\n"; } else { $onpost_ad_code = ''; } $content = explode( '<!--' . $quicktag . '-->', $content, 2 ); return $content[0] . $onpost_ad_code . $content[1]; } /** * Delete the selected item from the array by index. * * @param array $quick_adsense_temp_array The input array. * @param integer $index The array index. * * @return array The processed array. */ function quick_adsense_content_del_element( $quick_adsense_temp_array, $index ) { $copy = []; if ( function_exists( 'quick_adsense_postads_update_impressions' ) ) { quick_adsense_postads_update_impressions( $quick_adsense_temp_array[ $index ] ); } $quick_adsense_temp_array_count = count( $quick_adsense_temp_array ); for ( $i = 0; $i < $quick_adsense_temp_array_count; $i++ ) { if ( $index !== $i ) { array_push( $copy, $quick_adsense_temp_array[ $i ] ); $quick_adsense_temp_array_count = count( $quick_adsense_temp_array ); } } return $copy; } /** * This function checks if the selected ad is active basedon the user settings. * * @param array $settings The user settings. * @param integer $index The ad index. * * @return boolean true on success, false on faliure. */ function quick_adsense_advanced_postads_isactive( $settings, $index ) { $mobile_detect = new Mobile_Detect(); // Begin Device Type. if ( isset( $settings[ 'onpost_ad_' . $index . '_hide_device_mobile' ] ) && $mobile_detect->isMobile() ) { return false; } if ( isset( $settings[ 'onpost_ad_' . $index . '_hide_device_tablet' ] ) && $mobile_detect->isTablet() ) { return false; } if ( isset( $settings[ 'onpost_ad_' . $index . '_hide_device_desktop' ] ) && ! $mobile_detect->isMobile() && ! $mobile_detect->isTablet() ) { return false; } // End Device Type. // Begin Visitor Source. $referer = quick_adsense_get_value( $_SERVER, 'HTTP_REFERER' ); if ( '' === $referer ) { if ( isset( $settings[ 'onpost_ad_' . $index . '_hide_visitor_direct' ] ) ) { return false; } } else { if ( preg_match( '/www\.google.*|search\.msn.*|search\.yahoo.*|www\.bing.*|msxml\.excite\.com|search.lycos\.com|www\.alltheweb\.com|search\.aol\.com|ask\.com|www\.hotbot\.com|www\.metacrawler\.com|search\.netscape\.com|go\.google\.com|dpxml\.webcrawler\.com|search\.earthlink\.net|www\.ask\.co\.uk/i', $referer ) ) { if ( isset( $settings[ 'onpost_ad_' . $index . '_hide_visitor_searchengine' ] ) ) { return false; } } else { if ( isset( $settings[ 'onpost_ad_' . $index . '_hide_visitor_indirect' ] ) ) { return false; } } } // End Visitor Source. // Begin Visitor Type. if ( is_user_logged_in() ) { if ( isset( $settings[ 'onpost_ad_' . $index . '_hide_visitor_loggedin' ] ) ) { return false; } } else { if ( isset( $settings[ 'onpost_ad_' . $index . '_hide_visitor_guest' ] ) ) { return false; } } if ( isset( $settings[ 'onpost_ad_' . $index . '_hide_visitor_bot' ] ) && $mobile_detect->is( 'Bot' ) ) { return false; } if ( isset( $settings[ 'onpost_ad_' . $index . '_hide_visitor_knownbrowser' ] ) || isset( $settings[ 'onpost_ad_' . $index . '_hide_visitor_unknownbrowser' ] ) ) { if ( $mobile_detect->match( '/msie|firefox|safari|chrome|edge|opera|netscape|maxthon|konqueror|mobile/i' ) ) { if ( isset( $settings[ 'onpost_ad_' . $index . '_hide_visitor_knownbrowser' ] ) ) { return false; } } else { if ( isset( $settings[ 'onpost_ad_' . $index . '_hide_visitor_unknownbrowser' ] ) ) { return false; } } } // End Visitor Type. // Begin Geotargeting. if ( isset( $settings[ 'onpost_ad_' . $index . '_limit_visitor_country' ] ) && ( is_array( $settings[ 'onpost_ad_' . $index . '_limit_visitor_country' ] ) ) && ( count( $settings[ 'onpost_ad_' . $index . '_limit_visitor_country' ] ) > 0 ) ) { $user_ip = quick_adsense_get_value( $_SERVER, 'REMOTE_ADDR' ); if ( '' !== $user_ip ) { $geo_ip = new \iriven\GeoIPCountry(); $country_code = $geo_ip->resolve( $user_ip ); if ( ! in_array( $country_code, $settings[ 'onpost_ad_' . $index . '_limit_visitor_country' ], true ) ) { return false; } } } // End Geotargeting. return true; } /** * This function increments the ad impressions for the ad at the selected index. * * @param integer $index The array index. */ function quick_adsense_postads_update_impressions( $index ) { $settings = get_option( 'quick_adsense_settings' ); if ( isset( $settings ) && isset( $settings[ 'onpost_ad_' . $index . '_enable_stats' ] ) ) { $stats = get_option( 'quick_adsense_onpost_ad_' . $index . '_stats' ); if ( isset( $stats ) && is_array( $stats ) ) { if ( isset( $stats[ gmdate( 'dmY' ) ] ) ) { $stats[ gmdate( 'dmY' ) ]['i'] += 1; } else { $stats[ gmdate( 'dmY' ) ] = [ 'i' => 1, 'c' => 0, ]; $stats_count = count( $stats ); while ( $stats_count > 30 ) { array_shift( $stats ); $stats_count = count( $stats ); } } } else { $stats = [ gmdate( 'dmY' ) => [ 'i' => 1, 'c' => 0, ], ]; } update_option( 'quick_adsense_onpost_ad_' . $index . '_stats', $stats ); } } /** * Add inline script to frontend to record ad stats. */ add_action( 'wp_enqueue_scripts', function() { wp_enqueue_script( 'jquery' ); wp_add_inline_script( 'jquery', quick_adsense_load_file( 'templates/js/script-frontend-stats.php', [ 'target' => md5( get_bloginfo( 'url' ) ), 'ajax_url' => admin_url( 'admin-ajax.php' ), 'nonce' => wp_create_nonce( 'quick-adsense-stats' ), ] ) ); } ); add_action( 'wp_ajax_quick_adsense_onpost_ad_click', 'quick_adsense_onpost_ad_click' ); add_action( 'wp_ajax_nopriv_quick_adsense_onpost_ad_click', 'quick_adsense_onpost_ad_click' ); /** * Ajax handler for "quick_adsense_onpost_ad_click" action which updates the ad click stats. */ function quick_adsense_onpost_ad_click() { if ( isset( $_POST['quick_adsense_nonce'] ) && wp_verify_nonce( sanitize_key( $_POST['quick_adsense_nonce'] ), 'quick-adsense-stats' ) ) { if ( isset( $_POST['quick_adsense_onpost_ad_index'] ) ) { $index = sanitize_key( $_POST['quick_adsense_onpost_ad_index'] ); $settings = get_option( 'quick_adsense_settings' ); if ( isset( $settings ) && isset( $settings[ 'onpost_ad_' . $index . '_enable_stats' ] ) ) { $stats = get_option( 'quick_adsense_onpost_ad_' . $index . '_stats' ); if ( isset( $stats ) && is_array( $stats ) ) { if ( isset( $stats[ gmdate( 'dmY' ) ] ) ) { $stats[ gmdate( 'dmY' ) ]['c'] += 1; } else { $stats[ gmdate( 'dmY' ) ] = [ 'i' => 0, 'c' => 1, ]; $stats_count = count( $stats ); while ( $stats_count > 30 ) { array_shift( $stats ); $stats_count = count( $stats ); } } } else { $stats = [ gmdate( 'dmY' ) => [ 'i' => 0, 'c' => 1, ], ]; } update_option( 'quick_adsense_onpost_ad_' . $index . '_stats', $stats ); wp_send_json_success(); } } } wp_send_json_error(); }