Version Description
- fixed issue with JNews theme which produced a widget ID that is blockable by ad blockers
- fixed second page on ads overview showing the same results as the first
- fixed issue that caused some items to vanish on admin pages without screen ID
Download this release
Release Info
Developer | webzunft |
Plugin | Advanced Ads |
Version | 1.10.2 |
Comparing to | |
See all releases |
Code changes from version 1.10.1 to 1.10.2
- admin/includes/class-list-filters.php +16 -3
- advanced-ads.php +2 -2
- classes/widget.php +4 -1
- public/assets/js/advanced.js +1 -1
- public/assets/js/advanced.orig.js +36 -0
- readme.txt +13 -5
admin/includes/class-list-filters.php
CHANGED
@@ -255,9 +255,12 @@ class Advanced_Ads_Ad_List_Filters {
|
|
255 |
*/
|
256 |
public function post_results( $posts, $the_query ) {
|
257 |
if ( ! function_exists( 'get_current_screen' ) ) {
|
258 |
-
return;
|
259 |
}
|
260 |
-
|
|
|
|
|
|
|
261 |
// execute only on the first query.
|
262 |
if ( ! $scr ) {
|
263 |
// if there are already some records, don't re-execute. Prevents bug with plugins making early extra query.
|
@@ -288,11 +291,20 @@ class Advanced_Ads_Ad_List_Filters {
|
|
288 |
}
|
289 |
|
290 |
// re-collect data from the search results.
|
291 |
-
if ( isset( $_REQUEST['s'] ) ) {
|
292 |
$this->collect_all_ads( $posts );
|
293 |
$new_posts = $this->ad_filters( $this->all_ads, $the_query );
|
294 |
}
|
295 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
296 |
// replace the post list.
|
297 |
$the_query->posts = $new_posts;
|
298 |
|
@@ -308,6 +320,7 @@ class Advanced_Ads_Ad_List_Filters {
|
|
308 |
private function ad_filters( $posts, &$the_query ) {
|
309 |
$using_original = true;
|
310 |
$request = wp_unslash( $_REQUEST );
|
|
|
311 |
/**
|
312 |
* Filter post status
|
313 |
*/
|
255 |
*/
|
256 |
public function post_results( $posts, $the_query ) {
|
257 |
if ( ! function_exists( 'get_current_screen' ) ) {
|
258 |
+
return $posts;
|
259 |
}
|
260 |
+
|
261 |
+
$new_posts = $posts;
|
262 |
+
$scr = get_current_screen();
|
263 |
+
|
264 |
// execute only on the first query.
|
265 |
if ( ! $scr ) {
|
266 |
// if there are already some records, don't re-execute. Prevents bug with plugins making early extra query.
|
291 |
}
|
292 |
|
293 |
// re-collect data from the search results.
|
294 |
+
if ( isset( $_REQUEST['s'] ) && '' !== $_REQUEST['s'] ) {
|
295 |
$this->collect_all_ads( $posts );
|
296 |
$new_posts = $this->ad_filters( $this->all_ads, $the_query );
|
297 |
}
|
298 |
|
299 |
+
$per_page = 20;
|
300 |
+
if ( $per_page < count( $new_posts ) ) {
|
301 |
+
$paged = isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1;
|
302 |
+
$total = count( $new_posts );
|
303 |
+
$new_posts = array_slice( $new_posts, ( $paged - 1 ) * $per_page, $per_page );
|
304 |
+
$the_query->found_posts = $total;
|
305 |
+
$the_query->post_count = count( $new_posts );
|
306 |
+
}
|
307 |
+
|
308 |
// replace the post list.
|
309 |
$the_query->posts = $new_posts;
|
310 |
|
320 |
private function ad_filters( $posts, &$the_query ) {
|
321 |
$using_original = true;
|
322 |
$request = wp_unslash( $_REQUEST );
|
323 |
+
|
324 |
/**
|
325 |
* Filter post status
|
326 |
*/
|
advanced-ads.php
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
* Plugin Name: Advanced Ads
|
13 |
* Plugin URI: https://wpadvancedads.com
|
14 |
* Description: Manage and optimize your ads in WordPress
|
15 |
-
* Version: 1.10.
|
16 |
* Author: Thomas Maier
|
17 |
* Author URI: https://wpadvancedads.com
|
18 |
* Text Domain: advanced-ads
|
@@ -39,7 +39,7 @@ define( 'ADVADS_BASE_DIR', dirname( ADVADS_BASE ) ); // directory of the plugin
|
|
39 |
// general and global slug, e.g. to store options in WP
|
40 |
define( 'ADVADS_SLUG', 'advanced-ads' );
|
41 |
define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
|
42 |
-
define( 'ADVADS_VERSION', '1.10.
|
43 |
|
44 |
/*----------------------------------------------------------------------------*
|
45 |
* Autoloading, modules and functions
|
12 |
* Plugin Name: Advanced Ads
|
13 |
* Plugin URI: https://wpadvancedads.com
|
14 |
* Description: Manage and optimize your ads in WordPress
|
15 |
+
* Version: 1.10.2
|
16 |
* Author: Thomas Maier
|
17 |
* Author URI: https://wpadvancedads.com
|
18 |
* Text Domain: advanced-ads
|
39 |
// general and global slug, e.g. to store options in WP
|
40 |
define( 'ADVADS_SLUG', 'advanced-ads' );
|
41 |
define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
|
42 |
+
define( 'ADVADS_VERSION', '1.10.2' );
|
43 |
|
44 |
/*----------------------------------------------------------------------------*
|
45 |
* Autoloading, modules and functions
|
classes/widget.php
CHANGED
@@ -203,13 +203,16 @@ class Advanced_Ads_Widget extends WP_Widget {
|
|
203 |
|
204 |
/**
|
205 |
* Make it harder for ad blockers to block the widget.
|
|
|
206 |
*
|
207 |
* @param str $before_widget
|
208 |
* @param array $instance Settings for the current widget instance.
|
209 |
* @return str $before_widget
|
210 |
*/
|
211 |
private function maybe_replace_frontend_id( $before_widget, $instance ) {
|
212 |
-
if (
|
|
|
|
|
213 |
$pattern = '#\sid=("|\')[^"\']+["\']#';
|
214 |
if ( ( defined( 'ADVANCED_ADS_SHOW_WIDGET_ID' ) && ADVANCED_ADS_SHOW_WIDGET_ID )
|
215 |
|| ! empty( $instance['q2w3_fixed_widget'] )
|
203 |
|
204 |
/**
|
205 |
* Make it harder for ad blockers to block the widget.
|
206 |
+
* removes the pre-defined widget ID (e.g., advads_ad_widget-20) and replaces it with one that uses the individual frontend prefix
|
207 |
*
|
208 |
* @param str $before_widget
|
209 |
* @param array $instance Settings for the current widget instance.
|
210 |
* @return str $before_widget
|
211 |
*/
|
212 |
private function maybe_replace_frontend_id( $before_widget, $instance ) {
|
213 |
+
if ( empty( $instance['remove-widget-id'] )
|
214 |
+
|| defined( 'JNEWS_THEME_ID' ) // the JNews theme overrides the widget ID and resets it, so we target this specifically.
|
215 |
+
) {
|
216 |
$pattern = '#\sid=("|\')[^"\']+["\']#';
|
217 |
if ( ( defined( 'ADVANCED_ADS_SHOW_WIDGET_ID' ) && ADVANCED_ADS_SHOW_WIDGET_ID )
|
218 |
|| ! empty( $instance['q2w3_fixed_widget'] )
|
public/assets/js/advanced.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
advads={supports_localstorage:function(){"use strict";try{if(!window||window.localStorage===undefined){return false}window.localStorage.setItem("x","x");window.localStorage.removeItem("x");return true}catch(e){return false}},max_per_session:function(name,max){var num=1;if(max===undefined||parseInt(max)===0){max=1}if(this.cookie_exists(name)){if(this.get_cookie(name)>=max){return true}num=num+parseInt(this.get_cookie(name))}this.set_cookie(name,num);return false},count_up:function(name,exdays){var num=1;if(this.cookie_exists(name)){num=num+parseInt(this.get_cookie(name))}this.set_cookie(name,num)},set_cookie_exists:function(name){if(get_cookie(name)){return true}set_cookie(name,"",0);return false},get_cookie:function(name){var i,x,y,ADVcookies=document.cookie.split(";");for(i=0;i<ADVcookies.length;i++){x=ADVcookies[i].substr(0,ADVcookies[i].indexOf("="));y=ADVcookies[i].substr(ADVcookies[i].indexOf("=")+1);x=x.replace(/^\s+|\s+$/g,"");if(x===name){return unescape(y)}}},set_cookie:function(name,value,exdays,path,domain,secure){var expiry=exdays==null?null:exdays*24*60*60;this.set_cookie_sec(name,value,expiry,path,domain,secure)},set_cookie_sec:function(name,value,expiry,path,domain,secure){var exdate=new Date;exdate.setSeconds(exdate.getSeconds()+parseInt(expiry));document.cookie=name+"="+escape(value)+(expiry==null?"":"; expires="+exdate.toUTCString())+(path==null?"; path=/":"; path="+path)+(domain==null?"":"; domain="+domain)+(secure==null?"":"; secure")},cookie_exists:function(name){var c_value=this.get_cookie(name);if(c_value!==null&&c_value!==""&&c_value!==undefined){return true}return false},move:function(element,target,options){var el=jQuery(element);if(typeof options==="undefined"){options={}}if(typeof options.css==="undefined"){options.css={}}if(typeof options.method==="undefined"){options.method="prependTo"}if(target===""&&typeof options.target!=="undefined"){switch(options.target){case"wrapper":var offset="left";if(typeof options.offset!=="undefined"){offset=options.offset}target=this.find_wrapper(element,offset);break}}if(typeof options.moveintohidden==="undefined"){target=jQuery(target).filter(":visible")}switch(options.method){case"insertBefore":el.insertBefore(target);break;case"insertAfter":el.insertAfter(target);break;case"appendTo":el.appendTo(target);break;case"prependTo":el.prependTo(target);break;default:el.prependTo(target)}},set_parent_relative:function(element){var el=jQuery(element);var parent=el.parent();if(parent.css("position")==="static"||parent.css("position")===""){parent.css("position","relative")}},fix_element:function(element,options){this.set_parent_relative(element);var el=jQuery(element);if(typeof options!=="undefined"&&options.is_invisible){el.show()}var topoffset=parseInt(el.offset().top);var leftoffset=parseInt(el.offset().left);if(typeof options!=="undefined"&&options.is_invisible){el.hide()}el.css("position","fixed").css("top",topoffset+"px").css("left",leftoffset+"px").css("right","")},find_wrapper:function(element,offset){var returnValue;jQuery("body").children().each(function(key,value){if(value.id!==element.substring(1)){var checkedelement=jQuery(value);if(offset==="right"&&checkedelement.offset().left+jQuery(checkedelement).width()<jQuery(window).width()||offset==="left"&&checkedelement.offset().left>0){if(checkedelement.css("position")==="static"||checkedelement.css("position")===""){checkedelement.css("position","relative")}returnValue=value;return false}}});return returnValue},center_fixed_element:function(element){var el=jQuery(element);var left=jQuery(window).width()/2-parseInt(el.css("width"))/2;el.css("left",left+"px")},center_vertically:function(element){var el=jQuery(element);var left=jQuery(window).height()/2-parseInt(el.css("height"))/2;el.css("top",left+"px")},close:function(element){var wrapper=jQuery(element);wrapper.remove()},privacy:{get_state:function(){if(!window.advads_options||!window.advads_options.privacy){return"not_needed"}var options=window.advads_options.privacy;if(!options.enabled){return"not_needed"}var method=options["consent-method"]?options["consent-method"]:"0";switch(method){case"0":return"not_needed";break;case"custom":if(options["custom-cookie-value"===undefined]||options["custom-cookie-value"]===undefined){return"not_needed"}var found=advads.get_cookie(options["custom-cookie-name"]);if(typeof found!=="string"){return"unknown"}if(options["custom-cookie-value"]===""&&found===""||options["custom-cookie-value"]!==""&&found.indexOf(options["custom-cookie-value"])!==-1){return"accepted"}return"unknown";break;default:return advads.cookie_exists(method)?"accepted":"unknown"}},is_adsense_npa_enabled:function(){if(!window.advads_options||!window.advads_options.privacy){return true}var options=window.advads_options.privacy;return!!options["show-non-personalized-adsense"]}}};jQuery(document).ready(function(){if(advads.supports_localstorage()&&localStorage.getItem("advads_frontend_picker")){var advads_picker_cur,advads_picker_overlay=jQuery("<div id='advads-picker-overlay'>"),advads_picker_no=[document.body,document.documentElement,document];advads_picker_overlay.css({position:"absolute",border:"solid 2px #428bca",backgroundColor:"rgba(66,139,202,0.5)",boxSizing:"border-box",zIndex:1e6,pointerEvents:"none"}).prependTo("body");jQuery(document).mousemove(function(e){if(e.target===advads_picker_cur){return}if(~advads_picker_no.indexOf(e.target)){advads_picker_cur=null;advads_picker_overlay.hide();return}var target=jQuery(e.target),offset=target.offset(),width=target.outerWidth(),height=target.outerHeight();advads_picker_cur=e.target;advads_picker_overlay.css({top:offset.top,left:offset.left,width:width,height:height}).show();console.log(jQuery(advads_picker_cur).getPath())});jQuery(document).click(function(e){var path=jQuery(advads_picker_cur).getPath();localStorage.setItem("advads_frontend_element",path);window.location=localStorage.getItem("advads_prev_url")})}});jQuery.fn.extend({getPath:function(path,depth){if(typeof path==="undefined")path="";if(typeof depth==="undefined")depth=0;if(this.is("html")){return"html > "+path}else if(3===depth){return path}var cur=this.get(0).nodeName.toLowerCase();var el_id=this.attr("id"),el_class=this.attr("class");depth=depth+1;if(typeof el_id!=="undefined"&&!/\d/.test(el_id)){cur+="#"+el_id}else if(typeof el_class!=="undefined"){el_class=el_class.split(/[\s\n]+/);el_class=jQuery.grep(el_class,function(element,index){return!/\d/.test(element)});if(el_class.length){cur+="."+el_class.slice(0,2).join(".")}}if(this.siblings(cur).length){cur+=":eq("+this.siblings(cur).addBack().not("#advads-picker-overlay").index(this)+")"}if(path===""){return this.parent().getPath(cur,depth)}else{return this.parent().getPath(cur+" > "+path,depth)}}});
|
1 |
+
advads={supports_localstorage:function(){"use strict";try{if(!window||window.localStorage===undefined){return false}window.localStorage.setItem("x","x");window.localStorage.removeItem("x");return true}catch(e){return false}},max_per_session:function(name,max){var num=1;if(max===undefined||parseInt(max)===0){max=1}if(this.cookie_exists(name)){if(this.get_cookie(name)>=max){return true}num=num+parseInt(this.get_cookie(name))}this.set_cookie(name,num);return false},count_up:function(name,exdays){var num=1;if(this.cookie_exists(name)){num=num+parseInt(this.get_cookie(name))}this.set_cookie(name,num)},set_cookie_exists:function(name){if(get_cookie(name)){return true}set_cookie(name,"",0);return false},get_cookie:function(name){var i,x,y,ADVcookies=document.cookie.split(";");for(i=0;i<ADVcookies.length;i++){x=ADVcookies[i].substr(0,ADVcookies[i].indexOf("="));y=ADVcookies[i].substr(ADVcookies[i].indexOf("=")+1);x=x.replace(/^\s+|\s+$/g,"");if(x===name){return unescape(y)}}},set_cookie:function(name,value,exdays,path,domain,secure){var expiry=exdays==null?null:exdays*24*60*60;this.set_cookie_sec(name,value,expiry,path,domain,secure)},set_cookie_sec:function(name,value,expiry,path,domain,secure){var exdate=new Date;exdate.setSeconds(exdate.getSeconds()+parseInt(expiry));document.cookie=name+"="+escape(value)+(expiry==null?"":"; expires="+exdate.toUTCString())+(path==null?"; path=/":"; path="+path)+(domain==null?"":"; domain="+domain)+(secure==null?"":"; secure")},cookie_exists:function(name){var c_value=this.get_cookie(name);if(c_value!==null&&c_value!==""&&c_value!==undefined){return true}return false},move:function(element,target,options){var el=jQuery(element);if(typeof options==="undefined"){options={}}if(typeof options.css==="undefined"){options.css={}}if(typeof options.method==="undefined"){options.method="prependTo"}if(target===""&&typeof options.target!=="undefined"){switch(options.target){case"wrapper":var offset="left";if(typeof options.offset!=="undefined"){offset=options.offset}target=this.find_wrapper(element,offset);break}}if(typeof options.moveintohidden==="undefined"){target=jQuery(target).filter(":visible")}switch(options.method){case"insertBefore":el.insertBefore(target);break;case"insertAfter":el.insertAfter(target);break;case"appendTo":el.appendTo(target);break;case"prependTo":el.prependTo(target);break;default:el.prependTo(target)}},set_parent_relative:function(element){var el=jQuery(element);var parent=el.parent();if(parent.css("position")==="static"||parent.css("position")===""){parent.css("position","relative")}},fix_element:function(element,options){this.set_parent_relative(element);var el=jQuery(element);if(typeof options!=="undefined"&&options.is_invisible){el.show()}var topoffset=parseInt(el.offset().top);var leftoffset=parseInt(el.offset().left);if(typeof options!=="undefined"&&options.is_invisible){el.hide()}el.css("position","fixed").css("top",topoffset+"px").css("left",leftoffset+"px").css("right","")},find_wrapper:function(element,offset){var returnValue;jQuery("body").children().each(function(key,value){if(value.id!==element.substring(1)){var checkedelement=jQuery(value);if(offset==="right"&&checkedelement.offset().left+jQuery(checkedelement).width()<jQuery(window).width()||offset==="left"&&checkedelement.offset().left>0){if(checkedelement.css("position")==="static"||checkedelement.css("position")===""){checkedelement.css("position","relative")}returnValue=value;return false}}});return returnValue},center_fixed_element:function(element){var el=jQuery(element);var left=jQuery(window).width()/2-parseInt(el.css("width"))/2;el.css("left",left+"px")},center_vertically:function(element){var el=jQuery(element);var left=jQuery(window).height()/2-parseInt(el.css("height"))/2;el.css("top",left+"px")},close:function(element){var wrapper=jQuery(element);wrapper.remove()},wait_for_images:function($el,ready_callback){var loaded_count=0;var srcs=[];$el.find('img[src][src!=""]').each(function(){srcs.push(this.src)});if(srcs.length===0){ready_callback.call($el)}jQuery.each(srcs,function(i,src){var image=new Image;image.src=src;var events="load error";jQuery(image).one(events,function me(event){jQuery(this).off(events,me);loaded_count++;if(loaded_count==srcs.length){ready_callback.call($el[0]);return false}})})},privacy:{get_state:function(){if(!window.advads_options||!window.advads_options.privacy){return"not_needed"}var options=window.advads_options.privacy;if(!options.enabled){return"not_needed"}var method=options["consent-method"]?options["consent-method"]:"0";switch(method){case"0":return"not_needed";break;case"custom":if(options["custom-cookie-value"===undefined]||options["custom-cookie-value"]===undefined){return"not_needed"}var found=advads.get_cookie(options["custom-cookie-name"]);if(typeof found!=="string"){return"unknown"}if(options["custom-cookie-value"]===""&&found===""||options["custom-cookie-value"]!==""&&found.indexOf(options["custom-cookie-value"])!==-1){return"accepted"}return"unknown";break;default:return advads.cookie_exists(method)?"accepted":"unknown"}},is_adsense_npa_enabled:function(){if(!window.advads_options||!window.advads_options.privacy){return true}var options=window.advads_options.privacy;return!!options["show-non-personalized-adsense"]}}};jQuery(document).ready(function(){if(advads.supports_localstorage()&&localStorage.getItem("advads_frontend_picker")){var advads_picker_cur,advads_picker_overlay=jQuery("<div id='advads-picker-overlay'>"),advads_picker_no=[document.body,document.documentElement,document];advads_picker_overlay.css({position:"absolute",border:"solid 2px #428bca",backgroundColor:"rgba(66,139,202,0.5)",boxSizing:"border-box",zIndex:1e6,pointerEvents:"none"}).prependTo("body");jQuery(document).mousemove(function(e){if(e.target===advads_picker_cur){return}if(~advads_picker_no.indexOf(e.target)){advads_picker_cur=null;advads_picker_overlay.hide();return}var target=jQuery(e.target),offset=target.offset(),width=target.outerWidth(),height=target.outerHeight();advads_picker_cur=e.target;advads_picker_overlay.css({top:offset.top,left:offset.left,width:width,height:height}).show();console.log(jQuery(advads_picker_cur).getPath())});jQuery(document).click(function(e){var path=jQuery(advads_picker_cur).getPath();localStorage.setItem("advads_frontend_element",path);window.location=localStorage.getItem("advads_prev_url")})}});jQuery.fn.extend({getPath:function(path,depth){if(typeof path==="undefined")path="";if(typeof depth==="undefined")depth=0;if(this.is("html")){return"html > "+path}else if(3===depth){return path}var cur=this.get(0).nodeName.toLowerCase();var el_id=this.attr("id"),el_class=this.attr("class");depth=depth+1;if(typeof el_id!=="undefined"&&!/\d/.test(el_id)){cur+="#"+el_id}else if(typeof el_class!=="undefined"){el_class=el_class.split(/[\s\n]+/);el_class=jQuery.grep(el_class,function(element,index){return!/\d/.test(element)});if(el_class.length){cur+="."+el_class.slice(0,2).join(".")}}if(this.siblings(cur).length){cur+=":eq("+this.siblings(cur).addBack().not("#advads-picker-overlay").index(this)+")"}if(path===""){return this.parent().getPath(cur,depth)}else{return this.parent().getPath(cur+" > "+path,depth)}}});
|
public/assets/js/advanced.orig.js
CHANGED
@@ -298,6 +298,42 @@ advads = {
|
|
298 |
// remove the ad
|
299 |
wrapper.remove();
|
300 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
301 |
|
302 |
privacy: {
|
303 |
/**
|
298 |
// remove the ad
|
299 |
wrapper.remove();
|
300 |
},
|
301 |
+
/**
|
302 |
+
* Wait until images are ready.
|
303 |
+
*
|
304 |
+
* @param {obj} $el jQuery object.
|
305 |
+
* @param {function} ready_callback Ready callback.
|
306 |
+
* derrived from https://github.com/alexanderdickson/waitForImages/blob/master/dist/jquery.waitforimages.js
|
307 |
+
*/
|
308 |
+
wait_for_images: function( $el, ready_callback ) {
|
309 |
+
var loaded_count = 0;
|
310 |
+
var srcs = [];
|
311 |
+
|
312 |
+
$el.find( 'img[src][src!=""]' ).each( function () {
|
313 |
+
srcs.push( this.src );
|
314 |
+
});
|
315 |
+
|
316 |
+
if ( srcs.length === 0 ) {
|
317 |
+
ready_callback.call( $el );
|
318 |
+
}
|
319 |
+
|
320 |
+
jQuery.each( srcs, function( i, src ) {
|
321 |
+
var image = new Image();
|
322 |
+
image.src = src;
|
323 |
+
var events = 'load error';
|
324 |
+
|
325 |
+
jQuery( image ).one( events, function me( event ) {
|
326 |
+
// Remove remaining handler (either 'load' or 'error').
|
327 |
+
jQuery( this ).off( events, me );
|
328 |
+
loaded_count++;
|
329 |
+
|
330 |
+
if ( loaded_count == srcs.length ) {
|
331 |
+
ready_callback.call( $el[0] );
|
332 |
+
return false;
|
333 |
+
}
|
334 |
+
} );
|
335 |
+
} );
|
336 |
+
},
|
337 |
|
338 |
privacy: {
|
339 |
/**
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: ads, ad manager, ad widget, ad rotation, adsense, advertise, advertisement
|
|
5 |
Requires at least: 4.6
|
6 |
Tested up to: 4.9
|
7 |
Requires PHP: 5.4
|
8 |
-
Stable tag: 1.10.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -43,11 +43,12 @@ I built Advanced Ads based on my experience delivering millions of ads per month
|
|
43 |
|
44 |
choose between different ad types that enable you to:
|
45 |
|
46 |
-
* insert code for any ad and affiliate networks (e.g., AdSense, Chitika, Amazon, BuySellAds, Google Ad Manager, DoubleClick, Ezoic, media.net, … )
|
47 |
* dedicated support for all types of Google AdSense banners, including Responsive, InFeed and InArticle ads
|
48 |
* display images and image banners
|
49 |
* create content-rich ads with the WordPress TinyMCE editor
|
50 |
-
*
|
|
|
51 |
|
52 |
= display ads for WP =
|
53 |
|
@@ -56,7 +57,7 @@ choose between different ad types that enable you to:
|
|
56 |
* show ads in sidebars and widget areas
|
57 |
* disable all ads on specific pages
|
58 |
* display multiple ads (ad blocks)
|
59 |
-
* display a customizable label, e.g., “Advertisements” above each ad
|
60 |
|
61 |
= display conditions =
|
62 |
|
@@ -91,6 +92,7 @@ Placements to insert ads in pre-defined positions in your theme and content. [Li
|
|
91 |
* ads in the footer
|
92 |
* test placements against each other with [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/)
|
93 |
* many more ad positions with [add-ons](https://wpadvancedads.com/add-ons/)
|
|
|
94 |
|
95 |
= mobile devices =
|
96 |
|
@@ -174,7 +176,7 @@ You can use Advanced Ads to insert ads into your WordPress site without any codi
|
|
174 |
To get started, just take a look at
|
175 |
|
176 |
* the [general first ad tutorial](https://wpadvancedads.com/manual/first-ad/)
|
177 |
-
* using [AdSense Auto ads]
|
178 |
* the [AdSense overview page](https://wpadvancedads.com/manual/adsense-ads).
|
179 |
|
180 |
= What about my users’ privacy and GDPR? =
|
@@ -264,6 +266,12 @@ Yes. Advanced Ads is based on WordPress standards and therefore easily customiza
|
|
264 |
|
265 |
== Changelog ==
|
266 |
|
|
|
|
|
|
|
|
|
|
|
|
|
267 |
= 1.10.1 =
|
268 |
|
269 |
* fixed issue caused by wrongly registered third party taxonomies
|
5 |
Requires at least: 4.6
|
6 |
Tested up to: 4.9
|
7 |
Requires PHP: 5.4
|
8 |
+
Stable tag: 1.10.2
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
43 |
|
44 |
choose between different ad types that enable you to:
|
45 |
|
46 |
+
* insert code for any ad and affiliate networks (e.g., AdSense, Chitika, Amazon, BuySellAds, Google Ad Manager, DoubleClick (DFP), Ezoic, media.net, … )
|
47 |
* dedicated support for all types of Google AdSense banners, including Responsive, InFeed and InArticle ads
|
48 |
* display images and image banners
|
49 |
* create content-rich ads with the WordPress TinyMCE editor
|
50 |
+
* create Amazon ads with the Rich Content ad type and the [Amazon Associates Link Builder](https://wordpress.org/plugins/amazon-associates-link-builder/)
|
51 |
+
* use shortcodes within ads (to also deliver advertisements from other ad plugins like Ad Inserter, AdRotate, Quick AdSense, WP Bannerize, or the AdSense Plugin WP QUADS)
|
52 |
|
53 |
= display ads for WP =
|
54 |
|
57 |
* show ads in sidebars and widget areas
|
58 |
* disable all ads on specific pages
|
59 |
* display multiple ads (ad blocks)
|
60 |
+
* display a customizable label, e.g., “Advertisements” above each banner ad
|
61 |
|
62 |
= display conditions =
|
63 |
|
92 |
* ads in the footer
|
93 |
* test placements against each other with [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/)
|
94 |
* many more ad positions with [add-ons](https://wpadvancedads.com/add-ons/)
|
95 |
+
* inject any kind of code into header or footer, not only advertising
|
96 |
|
97 |
= mobile devices =
|
98 |
|
176 |
To get started, just take a look at
|
177 |
|
178 |
* the [general first ad tutorial](https://wpadvancedads.com/manual/first-ad/)
|
179 |
+
* using [AdSense Auto ads](https://wpadvancedads.com/adsense-auto-ads-wordpress/) in WordPress
|
180 |
* the [AdSense overview page](https://wpadvancedads.com/manual/adsense-ads).
|
181 |
|
182 |
= What about my users’ privacy and GDPR? =
|
266 |
|
267 |
== Changelog ==
|
268 |
|
269 |
+
= 1.10.2 =
|
270 |
+
|
271 |
+
* fixed issue with JNews theme which produced a widget ID that is blockable by ad blockers
|
272 |
+
* fixed second page on ads overview showing the same results as the first
|
273 |
+
* fixed issue that caused some items to vanish on admin pages without screen ID
|
274 |
+
|
275 |
= 1.10.1 =
|
276 |
|
277 |
* fixed issue caused by wrongly registered third party taxonomies
|