Version Description
(March 29, 2022) =
- Improvement: introduce new header on plugin-related pages in WP Admin
- Improvement: better highlight selected condition options
- Improvement: prevent admin notices from jumping on Advanced Ads pages
- Improvement: consistently call the overview page "Dashboard" in the page title and menu
- Fix: remove default "Visibility" setting from ad edit page to avoid confusion
Download this release
Release Info
Developer | advancedads |
Plugin | Advanced Ads |
Version | 1.33.0 |
Comparing to | |
See all releases |
Code changes from version 1.32.0 to 1.33.0
- admin/assets/css/admin.css +198 -11
- admin/assets/js/conditions.js +2 -2
- admin/assets/js/ui.js +21 -6
- admin/class-advanced-ads-admin.php +39 -10
- admin/includes/class-menu.php +14 -4
- admin/includes/class-meta-box.php +1 -1
- admin/includes/class-overview-widgets.php +2 -2
- admin/views/ad-group.php +11 -19
- admin/views/ad-info-top.php +4 -4
- admin/views/ad-info.php +1 -1
- admin/views/header.php +50 -0
- admin/views/notices/plugin_error.php +1 -1
- admin/views/overview.php +0 -2
- admin/views/placements.php +3 -11
- admin/views/settings.php +1 -1
- advanced-ads.php +2 -2
- changelog.txt +21 -0
- classes/display-conditions.php +15 -18
- languages/advanced-ads.pot +148 -127
- lib/composer/ClassLoader.php +2 -2
- lib/composer/autoload_classmap.php +1 -1
- lib/composer/autoload_real.php +4 -4
- lib/composer/autoload_static.php +2 -2
- public/class-advanced-ads.php +1 -1
- readme.txt +47 -46
admin/assets/css/admin.css
CHANGED
@@ -92,6 +92,10 @@ h2.hndle .advads-hndlelinks a + a, #advads_overview_adsense_stats .advads-hndlel
|
|
92 |
.advads-metabox-notices .error { color: #dc3232; }
|
93 |
.advads-metabox-notices .warning, .advads-message-warning { color: #de8400; }
|
94 |
|
|
|
|
|
|
|
|
|
95 |
.post-type-advanced_ads #poststuff .meta-box-sortables .inside {
|
96 |
margin: 0;
|
97 |
padding: 0;
|
@@ -130,36 +134,91 @@ h2.hndle .advads-hndlelinks a + a, #advads_overview_adsense_stats .advads-hndlel
|
|
130 |
.advads-conditions-new select:first-letter { text-transform: uppercase; }
|
131 |
.advads-conditions-new select + .advads-loader { display: inline-block; vertical-align: middle; }
|
132 |
.advads-display-conditions-remove + h5 { display: inline-block; margin-top: 0; margin-left: 1em; }
|
133 |
-
|
134 |
-
.advads-conditions-table { border-collapse: collapse; width: 100%;
|
135 |
-
.advads-conditions-table td, .advads-conditions-table td * { vertical-align: top; }
|
136 |
.advads-conditions-table > tbody > tr { background: #eee; }
|
137 |
-
.advads-condition-line-wrap { display: flex; flex-wrap: wrap; }
|
138 |
-
.advads-condition-line-wrap > input { flex-grow: 1; }
|
139 |
.advads-conditions-table > tbody > tr > td:last-child { padding-right: 10px; }
|
140 |
-
.advads-conditions-table select { vertical-align: inherit; margin: 0; }
|
141 |
.advads-conditions-table tr:first-child.advads-conditions-connector { display: none; }
|
142 |
.advads-conditions-connector { text-align: center; }
|
143 |
.advads-conditions-table > tbody > .advads-conditions-connector-and { background: none; }
|
144 |
-
.advads-conditions-connector label {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
.advads-conditions-type:first-letter { text-transform: uppercase; }
|
146 |
.advads-conditions-table .advads-conditions-connector .advads-error-message { display: none; }
|
147 |
|
148 |
.post-type-advanced_ads #advads-ad-content-plain { width: 100%; }
|
149 |
.advads-conditions-single th { vertical-align: top; }
|
150 |
.advads-conditions-single { margin: 0; padding: 0 10px 0 0; line-height: 1em; }
|
151 |
-
select + .advads-conditions-single {
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
.advads-conditions-single.disabled { display: none; opacity: .5; }
|
153 |
-
.advads-conditions-table .advads-conditions-single.advads-buttonset label {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
.advads-conditions-table .advads-conditions-single.advads-buttonset .advads-ui-state-active { border-color: #0074a2 !important; }
|
155 |
-
.advads-conditions-single.advads-buttonset label span {
|
156 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
.advads-conditions-postids-show-search { margin-left: .5em !important; }
|
158 |
.advads-conditions-postids-list li { background: #F1F1F1; padding: 3px; }
|
159 |
.advads-conditions-postids-list .remove { margin-right: 1em; font-size: .9em; }
|
160 |
.advads-conditions-postids-autocomplete-suggestions li span.left { float: left; }
|
161 |
.advads-conditions-postids-autocomplete-suggestions li span.right { float: right; color: #aaa; font-size: .8em; }
|
162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
#ad-display-box .advads-conditions-terms-show-search { height: 22px; line-height: 22px; font-weight: bold; font-size: 1.5em; }
|
164 |
.advads-conditions-terms-search { display: none; }
|
165 |
.post-type-advanced_ads #ad-parameters-box .advads-ad-parameters-spinner { display: block; float: none; }
|
@@ -170,6 +229,18 @@ select + .advads-conditions-single { padding-left: 10px }
|
|
170 |
.post-type-advanced_ads #advanced-ad-output-margin input[type="number"] { width: 4.5em; }
|
171 |
.post-type-advanced_ads #advanced-ad-output-margin label + label { margin-left: 1em; }
|
172 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
/* option lists */
|
174 |
.advads-option-list { overflow: hidden; }
|
175 |
.advads-option-list > .label { display: block; padding: 10px; font-weight: bold; color: #444; text-align: left; font-size: 100%; }
|
@@ -346,6 +417,121 @@ tr:hover .on-hover { display: block; }
|
|
346 |
text-transform: uppercase;
|
347 |
}
|
348 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
/**
|
350 |
WELCOME PANEL
|
351 |
*/
|
@@ -587,6 +773,7 @@ a.advads-modal-close-background {
|
|
587 |
.advanced-ads-feedback-review { background-color: #fbfbfb; border: 1px solid #eee; padding: 0.5em; }
|
588 |
.advanced-ads-feedback-review-text { font-size: 1.2em; font-weight: 400; }
|
589 |
.advanced-ads-feedback-review .dashicons { color: #ffb900; }
|
|
|
590 |
|
591 |
/**
|
592 |
- GENERAL
|
92 |
.advads-metabox-notices .error { color: #dc3232; }
|
93 |
.advads-metabox-notices .warning, .advads-message-warning { color: #de8400; }
|
94 |
|
95 |
+
.post-type-advanced_ads .misc-pub-visibility {
|
96 |
+
display: none;
|
97 |
+
}
|
98 |
+
|
99 |
.post-type-advanced_ads #poststuff .meta-box-sortables .inside {
|
100 |
margin: 0;
|
101 |
padding: 0;
|
134 |
.advads-conditions-new select:first-letter { text-transform: uppercase; }
|
135 |
.advads-conditions-new select + .advads-loader { display: inline-block; vertical-align: middle; }
|
136 |
.advads-display-conditions-remove + h5 { display: inline-block; margin-top: 0; margin-left: 1em; }
|
137 |
+
|
138 |
+
.advads-conditions-table { border-collapse: collapse; width: 100%; }
|
|
|
139 |
.advads-conditions-table > tbody > tr { background: #eee; }
|
|
|
|
|
140 |
.advads-conditions-table > tbody > tr > td:last-child { padding-right: 10px; }
|
|
|
141 |
.advads-conditions-table tr:first-child.advads-conditions-connector { display: none; }
|
142 |
.advads-conditions-connector { text-align: center; }
|
143 |
.advads-conditions-table > tbody > .advads-conditions-connector-and { background: none; }
|
144 |
+
.advads-conditions-connector label {
|
145 |
+
text-transform: uppercase;
|
146 |
+
background: #fff;
|
147 |
+
border: 1px solid #aaa;
|
148 |
+
color: #555;
|
149 |
+
margin-top: 10px;
|
150 |
+
margin-bottom: 10px;
|
151 |
+
}
|
152 |
.advads-conditions-type:first-letter { text-transform: uppercase; }
|
153 |
.advads-conditions-table .advads-conditions-connector .advads-error-message { display: none; }
|
154 |
|
155 |
.post-type-advanced_ads #advads-ad-content-plain { width: 100%; }
|
156 |
.advads-conditions-single th { vertical-align: top; }
|
157 |
.advads-conditions-single { margin: 0; padding: 0 10px 0 0; line-height: 1em; }
|
158 |
+
select + .advads-conditions-single { display: inline-flex; flex-wrap: wrap; align-items: center; }
|
159 |
+
#advads-ad-display-conditions select {
|
160 |
+
margin-right: 10px;
|
161 |
+
}
|
162 |
+
#advads-ad-display-conditions .advads-condition-line-wrap select {
|
163 |
+
margin-right: 20px;
|
164 |
+
}
|
165 |
.advads-conditions-single.disabled { display: none; opacity: .5; }
|
166 |
+
.advads-conditions-table .advads-conditions-single.advads-buttonset label {
|
167 |
+
margin: 0.5em 0.5em 0.5em 0;
|
168 |
+
padding-right: 0;
|
169 |
+
padding-left: 0.5em;
|
170 |
+
background: #f7f7f7;
|
171 |
+
height: 28px;
|
172 |
+
line-height: 26px;
|
173 |
+
color: #555;
|
174 |
+
font-family: inherit;
|
175 |
+
box-shadow: none;
|
176 |
+
border: 1px solid #ccc;
|
177 |
+
}
|
178 |
.advads-conditions-table .advads-conditions-single.advads-buttonset .advads-ui-state-active { border-color: #0074a2 !important; }
|
179 |
+
.advads-conditions-single.advads-buttonset label span {
|
180 |
+
margin: 0;
|
181 |
+
padding: 0;
|
182 |
+
line-height: inherit;
|
183 |
+
padding-left: 0.5em;
|
184 |
+
display: flex;
|
185 |
+
align-items: center;
|
186 |
+
}
|
187 |
+
.advads-conditions-single.advads-buttonset label span:after {
|
188 |
+
font-family: "dashicons";
|
189 |
+
padding: 0;
|
190 |
+
width: 28px;
|
191 |
+
display: inline-block;
|
192 |
+
border-left: 1px solid #ccc;
|
193 |
+
margin-left: 1em;
|
194 |
+
height: 28px;
|
195 |
+
line-height: 30px;
|
196 |
+
text-align: center;
|
197 |
+
color: #ccc;
|
198 |
+
}
|
199 |
+
.advads-conditions-single.advads-buttonset label:not(.advads-ui-state-active) span:after { content: "\f159"; }
|
200 |
+
.advads-conditions-single.advads-buttonset label.advads-ui-state-active span:after {
|
201 |
+
content: "\f12a";
|
202 |
+
color: white;
|
203 |
+
border-color: #0074a2;
|
204 |
+
}
|
205 |
+
.advads-conditions-not-selected.advads-notice-inline {
|
206 |
+
margin: 0;
|
207 |
+
}
|
208 |
+
.advads-conditions-single.advads-buttonset label.advads-ui-state-active:hover span:after { content: "\f153"; }
|
209 |
.advads-conditions-postids-show-search { margin-left: .5em !important; }
|
210 |
.advads-conditions-postids-list li { background: #F1F1F1; padding: 3px; }
|
211 |
.advads-conditions-postids-list .remove { margin-right: 1em; font-size: .9em; }
|
212 |
.advads-conditions-postids-autocomplete-suggestions li span.left { float: left; }
|
213 |
.advads-conditions-postids-autocomplete-suggestions li span.right { float: right; color: #aaa; font-size: .8em; }
|
214 |
|
215 |
+
.advads-conditions-table td:nth-of-type(2) {
|
216 |
+
display: flex;
|
217 |
+
flex-wrap: wrap;
|
218 |
+
align-items: center;
|
219 |
+
gap: 10px;
|
220 |
+
}
|
221 |
+
|
222 |
#ad-display-box .advads-conditions-terms-show-search { height: 22px; line-height: 22px; font-weight: bold; font-size: 1.5em; }
|
223 |
.advads-conditions-terms-search { display: none; }
|
224 |
.post-type-advanced_ads #ad-parameters-box .advads-ad-parameters-spinner { display: block; float: none; }
|
229 |
.post-type-advanced_ads #advanced-ad-output-margin input[type="number"] { width: 4.5em; }
|
230 |
.post-type-advanced_ads #advanced-ad-output-margin label + label { margin-left: 1em; }
|
231 |
|
232 |
+
@media screen and (max-width: 782px) {
|
233 |
+
.advads-conditions-table .advads-conditions-single.advads-buttonset label {
|
234 |
+
height: 40px;
|
235 |
+
line-height: 36px;
|
236 |
+
}
|
237 |
+
|
238 |
+
.advads-conditions-single.advads-buttonset label span:after {
|
239 |
+
height: 39px;
|
240 |
+
line-height: 40px;
|
241 |
+
}
|
242 |
+
}
|
243 |
+
|
244 |
/* option lists */
|
245 |
.advads-option-list { overflow: hidden; }
|
246 |
.advads-option-list > .label { display: block; padding: 10px; font-weight: bold; color: #444; text-align: left; font-size: 100%; }
|
417 |
text-transform: uppercase;
|
418 |
}
|
419 |
|
420 |
+
/**
|
421 |
+
* Branded Page Header
|
422 |
+
*/
|
423 |
+
/* Hide some h1 headlines and buttons created by WordPress on our pages since we show our custom header */
|
424 |
+
.post-type-advanced_ads .wrap .wp-heading-inline,
|
425 |
+
.advanced-ads_page_advanced-ads-groups .wrap .wp-heading-inline,
|
426 |
+
.post-type-advanced_ads .wrap .page-title-action
|
427 |
+
{
|
428 |
+
display: none;
|
429 |
+
}
|
430 |
+
|
431 |
+
#advads-header {
|
432 |
+
border-bottom: 1px solid #c3c4c7;
|
433 |
+
padding: 22px 0px;
|
434 |
+
margin-left: -20px;
|
435 |
+
background: #fff;
|
436 |
+
}
|
437 |
+
|
438 |
+
#advads-header-wrapper {
|
439 |
+
display: grid;
|
440 |
+
width: calc(100% - 20px);
|
441 |
+
grid-template-columns: max-content 1fr auto;
|
442 |
+
justify-content: start;
|
443 |
+
justify-items: start;
|
444 |
+
align-content: center;
|
445 |
+
align-items: start;
|
446 |
+
padding-left: 20px;
|
447 |
+
gap: 10px 10px;
|
448 |
+
}
|
449 |
+
|
450 |
+
#advads-header svg {
|
451 |
+
display: inline;
|
452 |
+
margin: 0;
|
453 |
+
width: 32px;
|
454 |
+
}
|
455 |
+
|
456 |
+
#advads-header h1 {
|
457 |
+
display: inline;
|
458 |
+
font-weight: 300;
|
459 |
+
margin: 0 10px;
|
460 |
+
line-height: 30px;
|
461 |
+
vertical-align: top;
|
462 |
+
}
|
463 |
+
|
464 |
+
#advads-header .header-action {
|
465 |
+
margin-right: 10px;
|
466 |
+
border: 1px solid #1B183A;
|
467 |
+
font-weight: 400;
|
468 |
+
color: #1B183A;
|
469 |
+
background: #fff;
|
470 |
+
}
|
471 |
+
|
472 |
+
#advads-header .header-action .dashicons {
|
473 |
+
line-height: 30px;
|
474 |
+
margin-left: -5px;
|
475 |
+
padding-right: 5px;
|
476 |
+
}
|
477 |
+
|
478 |
+
#advads-header #advads-header-links {
|
479 |
+
margin-right: 20px;
|
480 |
+
}
|
481 |
+
|
482 |
+
#advads-header #advads-header-links a {
|
483 |
+
margin-left: 10px;
|
484 |
+
}
|
485 |
+
|
486 |
+
#advads-header #advads-header-links .advads-upgrade {
|
487 |
+
font-weight: bold;
|
488 |
+
text-decoration: none;
|
489 |
+
color: #1d2327;
|
490 |
+
}
|
491 |
+
|
492 |
+
#advads-header #advads-links a {
|
493 |
+
color: #1B183A;
|
494 |
+
}
|
495 |
+
|
496 |
+
@media (max-width: 782px) {
|
497 |
+
#advads-header-wrapper {
|
498 |
+
grid-template-columns: 1fr;
|
499 |
+
}
|
500 |
+
#advads-header .header-action .dashicons {
|
501 |
+
line-height: 40px;
|
502 |
+
}
|
503 |
+
#advads-header #advads-header-links {
|
504 |
+
grid-column-end: auto;
|
505 |
+
}
|
506 |
+
}
|
507 |
+
|
508 |
+
/**
|
509 |
+
* Custom Boxes, similar to WP Metaboxes
|
510 |
+
*/
|
511 |
+
.advads-box {
|
512 |
+
margin-bottom: 20px;
|
513 |
+
padding: 0px;
|
514 |
+
}
|
515 |
+
.advads-box h2 {
|
516 |
+
border-bottom: 1px solid #eee;
|
517 |
+
font-size: 14px;
|
518 |
+
padding: 8px 12px;
|
519 |
+
margin: 0;
|
520 |
+
line-height: 1.4;
|
521 |
+
}
|
522 |
+
.advads-box-wrapper {
|
523 |
+
display: flex;
|
524 |
+
justify-content: space-between;
|
525 |
+
flex-wrap: wrap;
|
526 |
+
column-gap: 20px;
|
527 |
+
}
|
528 |
+
.advads-box-half {
|
529 |
+
flex: 1 0 calc(50% - 20px);
|
530 |
+
}
|
531 |
+
.advads-box-third {
|
532 |
+
flex: 1 0 calc(33% - 20px);
|
533 |
+
}
|
534 |
+
|
535 |
/**
|
536 |
WELCOME PANEL
|
537 |
*/
|
773 |
.advanced-ads-feedback-review { background-color: #fbfbfb; border: 1px solid #eee; padding: 0.5em; }
|
774 |
.advanced-ads-feedback-review-text { font-size: 1.2em; font-weight: 400; }
|
775 |
.advanced-ads-feedback-review .dashicons { color: #ffb900; }
|
776 |
+
.row-actions .aa-get-pro { font-weight: bold; color: #0474A2; }
|
777 |
|
778 |
/**
|
779 |
- GENERAL
|
admin/assets/js/conditions.js
CHANGED
@@ -97,7 +97,7 @@ jQuery( document ).ready(
|
|
97 |
minLength: 1,
|
98 |
select: function ( event, ui ) {
|
99 |
// append new line with input fields.
|
100 |
-
$( '<label class="button advads-ui-state-active">' + ui.item.label + '<input type="hidden" name="' + self.data( 'inputName' ) + '" value="' + ui.item.value + '"></label>' ).appendTo( self.siblings( '.advads-conditions-terms-buttons' ) )
|
101 |
|
102 |
// show / hide other elements
|
103 |
// $( '.advads-display-conditions-individual-post' ).hide();
|
@@ -135,7 +135,7 @@ jQuery( document ).ready(
|
|
135 |
minLength: 1,
|
136 |
select: function ( event, ui ) {
|
137 |
// append new line with input fields
|
138 |
-
var newline = $( '<label class="button advads-ui-state-active">' + ui.item.label + '</label>' )
|
139 |
$( '<input type="hidden" name="' + self.dataset.fieldName + '[value][]" value="' + ui.item.value + '"/>' ).appendTo( newline )
|
140 |
newline.insertBefore( $( self ).parent( '.advads-conditions-postids-search-line' ) )
|
141 |
},
|
97 |
minLength: 1,
|
98 |
select: function ( event, ui ) {
|
99 |
// append new line with input fields.
|
100 |
+
$( '<label class="button advads-button advads-ui-state-active"><span class="advads-button-text">' + ui.item.label + '<input type="hidden" name="' + self.data( 'inputName' ) + '" value="' + ui.item.value + '"></span></label>' ).appendTo( self.siblings( '.advads-conditions-terms-buttons' ) )
|
101 |
|
102 |
// show / hide other elements
|
103 |
// $( '.advads-display-conditions-individual-post' ).hide();
|
135 |
minLength: 1,
|
136 |
select: function ( event, ui ) {
|
137 |
// append new line with input fields
|
138 |
+
var newline = $( '<label class="button advads-button advads-ui-state-active"><span class="advads-button-text">' + ui.item.label + '</span></label>' )
|
139 |
$( '<input type="hidden" name="' + self.dataset.fieldName + '[value][]" value="' + ui.item.value + '"/>' ).appendTo( newline )
|
140 |
newline.insertBefore( $( self ).parent( '.advads-conditions-postids-search-line' ) )
|
141 |
},
|
admin/assets/js/ui.js
CHANGED
@@ -30,7 +30,7 @@
|
|
30 |
var $label = jQuery( 'label[for="' + $changed.attr( 'id' ) + '"]', $ancestor );
|
31 |
|
32 |
if ( type === 'radio' ) {
|
33 |
-
$
|
34 |
}
|
35 |
|
36 |
if ( $changed.is( ':checked' ) ) {
|
@@ -49,16 +49,31 @@
|
|
49 |
var $that = jQuery( this );
|
50 |
|
51 |
$that.each( function() {
|
52 |
-
$
|
53 |
|
54 |
-
if ( $
|
55 |
return true;
|
56 |
}
|
57 |
-
$
|
58 |
|
59 |
var items = 'input[type=checkbox], input[type=radio]';
|
60 |
-
var $all_buttons = $
|
61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
|
63 |
$all_buttons.advads_button();
|
64 |
} );
|
30 |
var $label = jQuery( 'label[for="' + $changed.attr( 'id' ) + '"]', $ancestor );
|
31 |
|
32 |
if ( type === 'radio' ) {
|
33 |
+
$ancestor.find( 'label' ).removeClass( 'advads-ui-state-active' );
|
34 |
}
|
35 |
|
36 |
if ( $changed.is( ':checked' ) ) {
|
49 |
var $that = jQuery( this );
|
50 |
|
51 |
$that.each( function() {
|
52 |
+
$buttonset = jQuery( this );
|
53 |
|
54 |
+
if ( $buttonset.data( 'advads_buttonset' ) ) {
|
55 |
return true;
|
56 |
}
|
57 |
+
$buttonset.data( 'advads_buttonset', true );
|
58 |
|
59 |
var items = 'input[type=checkbox], input[type=radio]';
|
60 |
+
var $all_buttons = $buttonset.find( items );
|
61 |
+
|
62 |
+
if ( ! $all_buttons.length ) {
|
63 |
+
return;
|
64 |
+
}
|
65 |
+
|
66 |
+
// Show selected checkboxes first.
|
67 |
+
if ( jQuery.escapeSelector ) {
|
68 |
+
$items = jQuery();
|
69 |
+
$all_buttons.filter( ':checked' ).each( function() {
|
70 |
+
$items = $items.add( $buttonset.find( 'label[for="' + jQuery.escapeSelector( this.id ) + '"]' ) );
|
71 |
+
$items = $items.add( this );
|
72 |
+
} );
|
73 |
+
$items.prependTo( $buttonset );
|
74 |
+
}
|
75 |
+
|
76 |
+
$buttonset.addClass( 'advads-buttonset' );
|
77 |
|
78 |
$all_buttons.advads_button();
|
79 |
} );
|
admin/class-advanced-ads-admin.php
CHANGED
@@ -246,7 +246,6 @@ class Advanced_Ads_Admin {
|
|
246 |
global $post;
|
247 |
wp_enqueue_media( array( 'post' => $post ) );
|
248 |
}
|
249 |
-
|
250 |
}
|
251 |
|
252 |
/**
|
@@ -255,7 +254,6 @@ class Advanced_Ads_Admin {
|
|
255 |
* @return bool true if screen belongs to Advanced Ads
|
256 |
*/
|
257 |
public static function screen_belongs_to_advanced_ads() {
|
258 |
-
|
259 |
if ( ! function_exists( 'get_current_screen' ) ) {
|
260 |
return false;
|
261 |
}
|
@@ -333,7 +331,7 @@ class Advanced_Ads_Admin {
|
|
333 |
|
334 |
/**
|
335 |
* Remove all registered admin_notices from AA screens
|
336 |
-
*
|
337 |
*/
|
338 |
if ( $this->screen_belongs_to_advanced_ads() ) {
|
339 |
remove_all_actions( 'admin_notices' );
|
@@ -354,6 +352,10 @@ class Advanced_Ads_Admin {
|
|
354 |
}
|
355 |
}
|
356 |
|
|
|
|
|
|
|
|
|
357 |
// Show success notice after starter setup was imported. Registered here because it will be visible only once.
|
358 |
if ( isset( $_GET['message'] ) && 'advanced-ads-starter-setup-success' === $_GET['message'] ) {
|
359 |
add_action( 'advanced-ads-admin-notices', array( $this, 'starter_setup_success_message' ) );
|
@@ -365,10 +367,13 @@ class Advanced_Ads_Admin {
|
|
365 |
&& current_user_can( Advanced_Ads_Plugin::user_cap( 'advanced_ads_edit_ads' ) )
|
366 |
&& ( ! isset( $screen->id ) || 'toplevel_page_advanced-ads' !== $screen->id ) ) {
|
367 |
$this->notices = Advanced_Ads_Admin_Notices::get_instance()->notices;
|
|
|
|
|
368 |
Advanced_Ads_Admin_Notices::get_instance()->display_notices();
|
369 |
|
370 |
// allow other Advanced Ads plugins to show admin notices at this late stage.
|
371 |
do_action( 'advanced-ads-admin-notices' );
|
|
|
372 |
}
|
373 |
}
|
374 |
|
@@ -380,7 +385,6 @@ class Advanced_Ads_Admin {
|
|
380 |
* @return array $links
|
381 |
*/
|
382 |
public function add_plugin_links( $links ) {
|
383 |
-
|
384 |
if ( ! is_array( $links ) ) {
|
385 |
return $links;
|
386 |
}
|
@@ -390,7 +394,11 @@ class Advanced_Ads_Admin {
|
|
390 |
array_unshift( $links, $support_link );
|
391 |
|
392 |
// add link to add-ons.
|
393 |
-
|
|
|
|
|
|
|
|
|
394 |
array_unshift( $links, $extend_link );
|
395 |
|
396 |
return $links;
|
@@ -402,7 +410,6 @@ class Advanced_Ads_Admin {
|
|
402 |
* @since 1.7.14
|
403 |
*/
|
404 |
public function add_deactivation_logic() {
|
405 |
-
|
406 |
$screen = get_current_screen();
|
407 |
if ( ! isset( $screen->id ) || ! in_array( $screen->id, array( 'plugins', 'plugins-network' ), true ) ) {
|
408 |
return;
|
@@ -456,7 +463,6 @@ class Advanced_Ads_Admin {
|
|
456 |
if ( isset( $form['advanced_ads_disable_reason'] )
|
457 |
&& 'get help' === $form['advanced_ads_disable_reason']
|
458 |
&& ! empty( $form['advanced_ads_disable_reply_email'] ) ) {
|
459 |
-
|
460 |
$email = trim( $form['advanced_ads_disable_reply_email'] );
|
461 |
if ( ! is_email( $email ) ) {
|
462 |
die();
|
@@ -494,7 +500,6 @@ class Advanced_Ads_Admin {
|
|
494 |
$success = wp_mail( 'improve@wpadvancedads.com', $subject, $text, $headers );
|
495 |
|
496 |
die();
|
497 |
-
|
498 |
}
|
499 |
|
500 |
/**
|
@@ -667,7 +672,6 @@ class Advanced_Ads_Admin {
|
|
667 |
|
668 |
/* translators: %s is the URL to add a new review, https://wordpress.org/support/plugin/advanced-ads/reviews/#new-post */
|
669 |
return sprintf( __( 'Thank the developer with a ★★★★★ review on <a href="%s" target="_blank">wordpress.org</a>', 'advanced-ads' ), 'https://wordpress.org/support/plugin/advanced-ads/reviews/#new-post' );
|
670 |
-
|
671 |
}
|
672 |
|
673 |
return $default_text;
|
@@ -677,7 +681,6 @@ class Advanced_Ads_Admin {
|
|
677 |
* Import a starter setup for new users
|
678 |
*/
|
679 |
public function import_starter_setup() {
|
680 |
-
|
681 |
if (
|
682 |
! isset( $_GET['action'] )
|
683 |
|| 'advanced_ads_starter_setup' !== $_GET['action']
|
@@ -742,4 +745,30 @@ class Advanced_Ads_Admin {
|
|
742 |
self::$admin_settings = $new_settings;
|
743 |
}
|
744 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
745 |
}
|
246 |
global $post;
|
247 |
wp_enqueue_media( array( 'post' => $post ) );
|
248 |
}
|
|
|
249 |
}
|
250 |
|
251 |
/**
|
254 |
* @return bool true if screen belongs to Advanced Ads
|
255 |
*/
|
256 |
public static function screen_belongs_to_advanced_ads() {
|
|
|
257 |
if ( ! function_exists( 'get_current_screen' ) ) {
|
258 |
return false;
|
259 |
}
|
331 |
|
332 |
/**
|
333 |
* Remove all registered admin_notices from AA screens
|
334 |
+
* we need to use this or some users have half or more of their viewports cluttered with unrelated notices
|
335 |
*/
|
336 |
if ( $this->screen_belongs_to_advanced_ads() ) {
|
337 |
remove_all_actions( 'admin_notices' );
|
352 |
}
|
353 |
}
|
354 |
|
355 |
+
if ( $this->screen_belongs_to_advanced_ads() ) {
|
356 |
+
$this->branded_admin_header();
|
357 |
+
}
|
358 |
+
|
359 |
// Show success notice after starter setup was imported. Registered here because it will be visible only once.
|
360 |
if ( isset( $_GET['message'] ) && 'advanced-ads-starter-setup-success' === $_GET['message'] ) {
|
361 |
add_action( 'advanced-ads-admin-notices', array( $this, 'starter_setup_success_message' ) );
|
367 |
&& current_user_can( Advanced_Ads_Plugin::user_cap( 'advanced_ads_edit_ads' ) )
|
368 |
&& ( ! isset( $screen->id ) || 'toplevel_page_advanced-ads' !== $screen->id ) ) {
|
369 |
$this->notices = Advanced_Ads_Admin_Notices::get_instance()->notices;
|
370 |
+
|
371 |
+
echo '<div class="wrap">';
|
372 |
Advanced_Ads_Admin_Notices::get_instance()->display_notices();
|
373 |
|
374 |
// allow other Advanced Ads plugins to show admin notices at this late stage.
|
375 |
do_action( 'advanced-ads-admin-notices' );
|
376 |
+
echo '</div>';
|
377 |
}
|
378 |
}
|
379 |
|
385 |
* @return array $links
|
386 |
*/
|
387 |
public function add_plugin_links( $links ) {
|
|
|
388 |
if ( ! is_array( $links ) ) {
|
389 |
return $links;
|
390 |
}
|
394 |
array_unshift( $links, $support_link );
|
395 |
|
396 |
// add link to add-ons.
|
397 |
+
if ( defined( 'AAP_VERSION' ) ) {
|
398 |
+
$extend_link = '<a href="' . ADVADS_URL . 'add-ons/?utm_source=advanced-ads&utm_medium=link&utm_campaign=plugin-page-add-ons" target="_blank">' . __( 'Add-Ons', 'advanced-ads' ) . '</a>';
|
399 |
+
} else {
|
400 |
+
$extend_link = '<a href="' . ADVADS_URL . 'add-ons/all-access/?utm_source=advanced-ads&utm_medium=link&utm_campaign=plugin-page-features" target="_blank" class="aa-get-pro">' . __( 'See Pro Features', 'advanced-ads' ) . '</a>';
|
401 |
+
}
|
402 |
array_unshift( $links, $extend_link );
|
403 |
|
404 |
return $links;
|
410 |
* @since 1.7.14
|
411 |
*/
|
412 |
public function add_deactivation_logic() {
|
|
|
413 |
$screen = get_current_screen();
|
414 |
if ( ! isset( $screen->id ) || ! in_array( $screen->id, array( 'plugins', 'plugins-network' ), true ) ) {
|
415 |
return;
|
463 |
if ( isset( $form['advanced_ads_disable_reason'] )
|
464 |
&& 'get help' === $form['advanced_ads_disable_reason']
|
465 |
&& ! empty( $form['advanced_ads_disable_reply_email'] ) ) {
|
|
|
466 |
$email = trim( $form['advanced_ads_disable_reply_email'] );
|
467 |
if ( ! is_email( $email ) ) {
|
468 |
die();
|
500 |
$success = wp_mail( 'improve@wpadvancedads.com', $subject, $text, $headers );
|
501 |
|
502 |
die();
|
|
|
503 |
}
|
504 |
|
505 |
/**
|
672 |
|
673 |
/* translators: %s is the URL to add a new review, https://wordpress.org/support/plugin/advanced-ads/reviews/#new-post */
|
674 |
return sprintf( __( 'Thank the developer with a ★★★★★ review on <a href="%s" target="_blank">wordpress.org</a>', 'advanced-ads' ), 'https://wordpress.org/support/plugin/advanced-ads/reviews/#new-post' );
|
|
|
675 |
}
|
676 |
|
677 |
return $default_text;
|
681 |
* Import a starter setup for new users
|
682 |
*/
|
683 |
public function import_starter_setup() {
|
|
|
684 |
if (
|
685 |
! isset( $_GET['action'] )
|
686 |
|| 'advanced_ads_starter_setup' !== $_GET['action']
|
745 |
self::$admin_settings = $new_settings;
|
746 |
}
|
747 |
}
|
748 |
+
|
749 |
+
/**
|
750 |
+
* Add an Advanced Ads branded header to plugin pages
|
751 |
+
*/
|
752 |
+
private function branded_admin_header() {
|
753 |
+
$screen_id = get_current_screen()->id;
|
754 |
+
// manually set a few page titles
|
755 |
+
switch ( $screen_id ) {
|
756 |
+
case 'edit-advanced_ads': // ad overview
|
757 |
+
$title = __( 'Your Ads', 'advanced-ads' );
|
758 |
+
break;
|
759 |
+
case 'advanced-ads_page_advanced-ads-groups': // ad groups
|
760 |
+
$title = __( 'Your Groups', 'advanced-ads' );
|
761 |
+
break;
|
762 |
+
case 'advanced-ads_page_advanced-ads-placements':
|
763 |
+
$title = __( 'Your Placements', 'advanced-ads' );
|
764 |
+
break;
|
765 |
+
case 'advanced-ads_page_advanced-ads-settings':
|
766 |
+
$title = __( 'Advanced Ads Settings', 'advanced-ads' );
|
767 |
+
break;
|
768 |
+
default:
|
769 |
+
$title = get_admin_page_title();
|
770 |
+
break;
|
771 |
+
}
|
772 |
+
include ADVADS_BASE_PATH . 'admin/views/header.php';
|
773 |
+
}
|
774 |
}
|
admin/includes/class-menu.php
CHANGED
@@ -63,7 +63,7 @@ class Advanced_Ads_Admin_Menu {
|
|
63 |
// use the overview page only when there is an ad already.
|
64 |
if ( $has_ads ) {
|
65 |
add_menu_page(
|
66 |
-
__( '
|
67 |
'Advanced Ads',
|
68 |
Advanced_Ads_Plugin::user_cap( 'advanced_ads_see_interface' ),
|
69 |
$this->plugin_slug,
|
@@ -71,7 +71,17 @@ class Advanced_Ads_Admin_Menu {
|
|
71 |
Advanced_Ads_Plugin::get_icon_svg(),
|
72 |
'58.74'
|
73 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
}
|
|
|
75 |
// forward Ads link to new-ad page when there is no ad existing yet.
|
76 |
// the target to post-new.php needs the extra "new" or any other attribute, since the original add-ad link was removed by CSS using the exact href attribute as a selector.
|
77 |
$target = ( ! $has_ads ) ? 'post-new.php?post_type=' . Advanced_Ads::POST_TYPE_SLUG . '&new=new' : 'edit.php?post_type=' . Advanced_Ads::POST_TYPE_SLUG;
|
@@ -86,7 +96,7 @@ class Advanced_Ads_Admin_Menu {
|
|
86 |
// display the main overview page as second item when we don’t have ads yet.
|
87 |
if ( ! $has_ads ) {
|
88 |
add_menu_page(
|
89 |
-
__( '
|
90 |
'Advanced Ads',
|
91 |
Advanced_Ads_Plugin::user_cap( 'advanced_ads_see_interface' ),
|
92 |
$this->plugin_slug,
|
@@ -97,8 +107,8 @@ class Advanced_Ads_Admin_Menu {
|
|
97 |
|
98 |
add_submenu_page(
|
99 |
$this->plugin_slug,
|
100 |
-
__( '
|
101 |
-
__( '
|
102 |
Advanced_Ads_Plugin::user_cap( 'advanced_ads_see_interface' ),
|
103 |
$this->plugin_slug,
|
104 |
array( $this, 'display_overview_page' )
|
63 |
// use the overview page only when there is an ad already.
|
64 |
if ( $has_ads ) {
|
65 |
add_menu_page(
|
66 |
+
__( 'Dashboard', 'advanced-ads' ),
|
67 |
'Advanced Ads',
|
68 |
Advanced_Ads_Plugin::user_cap( 'advanced_ads_see_interface' ),
|
69 |
$this->plugin_slug,
|
71 |
Advanced_Ads_Plugin::get_icon_svg(),
|
72 |
'58.74'
|
73 |
);
|
74 |
+
// the main menu entry automatically creates a submenu entry with the title "Advanced Ads"
|
75 |
+
// to show another title, we needed to create a submenu entry that uses the same page menu slug as the parent menu item
|
76 |
+
add_submenu_page(
|
77 |
+
$this->plugin_slug,
|
78 |
+
__( 'Dashboard', 'advanced-ads' ),
|
79 |
+
__( 'Dashboard', 'advanced-ads' ),
|
80 |
+
Advanced_Ads_Plugin::user_cap( 'advanced_ads_edit_ads' ),
|
81 |
+
$this->plugin_slug
|
82 |
+
);
|
83 |
}
|
84 |
+
|
85 |
// forward Ads link to new-ad page when there is no ad existing yet.
|
86 |
// the target to post-new.php needs the extra "new" or any other attribute, since the original add-ad link was removed by CSS using the exact href attribute as a selector.
|
87 |
$target = ( ! $has_ads ) ? 'post-new.php?post_type=' . Advanced_Ads::POST_TYPE_SLUG . '&new=new' : 'edit.php?post_type=' . Advanced_Ads::POST_TYPE_SLUG;
|
96 |
// display the main overview page as second item when we don’t have ads yet.
|
97 |
if ( ! $has_ads ) {
|
98 |
add_menu_page(
|
99 |
+
__( 'Dashboard', 'advanced-ads' ),
|
100 |
'Advanced Ads',
|
101 |
Advanced_Ads_Plugin::user_cap( 'advanced_ads_see_interface' ),
|
102 |
$this->plugin_slug,
|
107 |
|
108 |
add_submenu_page(
|
109 |
$this->plugin_slug,
|
110 |
+
__( 'Dashboard', 'advanced-ads' ),
|
111 |
+
__( 'Dashboard', 'advanced-ads' ),
|
112 |
Advanced_Ads_Plugin::user_cap( 'advanced_ads_see_interface' ),
|
113 |
$this->plugin_slug,
|
114 |
array( $this, 'display_overview_page' )
|
admin/includes/class-meta-box.php
CHANGED
@@ -509,7 +509,7 @@ class Advanced_Ads_Admin_Meta_Boxes {
|
|
509 |
if ( ! current_user_can( Advanced_Ads_Plugin::user_cap( 'advanced_ads_see_interface' ) ) ) {
|
510 |
return;
|
511 |
}
|
512 |
-
add_meta_box( 'advads_dashboard_widget', __( '
|
513 |
}
|
514 |
|
515 |
/**
|
509 |
if ( ! current_user_can( Advanced_Ads_Plugin::user_cap( 'advanced_ads_see_interface' ) ) ) {
|
510 |
return;
|
511 |
}
|
512 |
+
add_meta_box( 'advads_dashboard_widget', __( 'Dashboard', 'advanced-ads' ), array( $this, 'dashboard_widget_function' ), 'dashboard', 'side', 'high' );
|
513 |
}
|
514 |
|
515 |
/**
|
admin/includes/class-overview-widgets.php
CHANGED
@@ -632,7 +632,7 @@ endif;
|
|
632 |
$add_ons['selling']['link_title'] = __( 'Activate now', 'advanced-ads' );
|
633 |
$installed_pro_plugins++;
|
634 |
} elseif ( class_exists( 'Advanced_Ads_Selling_Plugin' ) ) {
|
635 |
-
$add_ons['selling']['link'] = ADVADS_URL . 'manual/
|
636 |
$add_ons['selling']['desc'] = '';
|
637 |
$add_ons['selling']['installed'] = true;
|
638 |
$add_ons['selling']['order'] = 20;
|
@@ -667,7 +667,7 @@ endif;
|
|
667 |
$add_ons['slider']['link'] = wp_nonce_url( 'plugins.php?action=activate&plugin=advanced-ads-slider/slider.php&', 'activate-plugin_advanced-ads-slider/slider.php' );
|
668 |
$add_ons['slider']['link_title'] = __( 'Activate now', 'advanced-ads' );
|
669 |
} elseif ( class_exists( 'Advanced_Ads_Slider_Plugin' ) ) {
|
670 |
-
$add_ons['slider']['link'] = ADVADS_URL . '
|
671 |
$add_ons['slider']['desc'] = '';
|
672 |
$add_ons['slider']['installed'] = true;
|
673 |
$add_ons['slider']['order'] = 20;
|
632 |
$add_ons['selling']['link_title'] = __( 'Activate now', 'advanced-ads' );
|
633 |
$installed_pro_plugins++;
|
634 |
} elseif ( class_exists( 'Advanced_Ads_Selling_Plugin' ) ) {
|
635 |
+
$add_ons['selling']['link'] = ADVADS_URL . 'manual/selling-ads/?utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-add-ons-manual';
|
636 |
$add_ons['selling']['desc'] = '';
|
637 |
$add_ons['selling']['installed'] = true;
|
638 |
$add_ons['selling']['order'] = 20;
|
667 |
$add_ons['slider']['link'] = wp_nonce_url( 'plugins.php?action=activate&plugin=advanced-ads-slider/slider.php&', 'activate-plugin_advanced-ads-slider/slider.php' );
|
668 |
$add_ons['slider']['link_title'] = __( 'Activate now', 'advanced-ads' );
|
669 |
} elseif ( class_exists( 'Advanced_Ads_Slider_Plugin' ) ) {
|
670 |
+
$add_ons['slider']['link'] = ADVADS_URL . 'manual/ad-slider/?utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-add-ons-manual';
|
671 |
$add_ons['slider']['desc'] = '';
|
672 |
$add_ons['slider']['installed'] = true;
|
673 |
$add_ons['slider']['order'] = 20;
|
admin/views/ad-group.php
CHANGED
@@ -11,6 +11,9 @@
|
|
11 |
|
12 |
$ad_groups_list = new Advanced_Ads_Groups_List();
|
13 |
|
|
|
|
|
|
|
14 |
// create new group.
|
15 |
if ( isset( $_REQUEST['advads-group-add-nonce'] ) ) {
|
16 |
$create_result = $ad_groups_list->create_group();
|
@@ -19,9 +22,9 @@ if ( isset( $_REQUEST['advads-group-add-nonce'] ) ) {
|
|
19 |
// potential error comes from WP_Error and is no user input.
|
20 |
// phpcs:ignore
|
21 |
$error_string = $create_result->get_error_message();
|
22 |
-
echo '<div id="message" class="error"><p>' . esc_html( $error_string ) . '</p></div>';
|
23 |
} else {
|
24 |
-
echo '<div id="message" class="updated"><p>' . esc_html__( 'Ad Group successfully created', 'advanced-ads' ) . '</p></div>';
|
25 |
}
|
26 |
}
|
27 |
// save updated groups.
|
@@ -32,11 +35,14 @@ if ( isset( $_REQUEST['advads-group-update-nonce'] ) ) {
|
|
32 |
$error_string = $udpate_result->get_error_message();
|
33 |
// potential error comes from WP_Error and is no user input.
|
34 |
// phpcs:ignore
|
35 |
-
echo '<div id="message" class="error"><p>' . $error_string . '</p></div>';
|
36 |
} else {
|
37 |
-
echo '<div id="message" class="updated"><p>' . esc_html__( 'Ad Groups successfully updated', 'advanced-ads' ) . '</p></div>';
|
38 |
}
|
39 |
}
|
|
|
|
|
|
|
40 |
|
41 |
$last_edited_group_id = 0;
|
42 |
if ( isset( $_REQUEST['advads-last-edited-group'] ) ) {
|
@@ -53,18 +59,11 @@ if ( isset( $_REQUEST['advads-last-edited-group'] ) ) {
|
|
53 |
|
54 |
?>
|
55 |
<div class="wrap nosubsub">
|
56 |
-
<
|
57 |
-
<?php
|
58 |
-
echo esc_html( $title );
|
59 |
-
?>
|
60 |
-
</h1>
|
61 |
<?php
|
62 |
|
63 |
if ( ! empty( $_REQUEST['s'] ) ) {
|
64 |
printf( '<span class="subtitle">' . __( 'Search results for “%s”', 'advanced-ads' ) . '</span>', esc_html( wp_unslash( $_REQUEST['s'] ) ) );
|
65 |
-
} else {
|
66 |
-
$group_page_url = Advanced_Ads_Groups_List::group_page_url( array( 'action' => 'edit' ) );
|
67 |
-
echo ' <a href="' . esc_url( $group_page_url ) . '" id="advads-new-ad-group-link" class="add-new-h2">' . esc_html( $tax->labels->add_new_item ) . '</a>';
|
68 |
}
|
69 |
?>
|
70 |
<form id="advads-new-group-form" action="" method="post" style="display:none;">
|
@@ -100,13 +99,6 @@ if ( isset( $_REQUEST['advads-last-edited-group'] ) ) {
|
|
100 |
|
101 |
<div id="col-container">
|
102 |
<div class="col-wrap">
|
103 |
-
<div class="tablenav top">
|
104 |
-
<form class="search-form" action="" method="get">
|
105 |
-
<!--input type="hidden" name="taxonomy" value="<?php echo esc_attr( $taxonomy ); ?>" /-->
|
106 |
-
<input type="hidden" name="page" value="advanced-ads-groups" />
|
107 |
-
<?php $wp_list_table->search_box( $tax->labels->search_items, 'tag' ); ?>
|
108 |
-
</form>
|
109 |
-
</div>
|
110 |
<div id="advads-ad-group-list">
|
111 |
<form action="" method="post" id="advads-form-groups">
|
112 |
<?php wp_nonce_field( 'update-advads-groups', 'advads-group-update-nonce' ); ?>
|
11 |
|
12 |
$ad_groups_list = new Advanced_Ads_Groups_List();
|
13 |
|
14 |
+
?>
|
15 |
+
<div class="wrap">
|
16 |
+
<?php
|
17 |
// create new group.
|
18 |
if ( isset( $_REQUEST['advads-group-add-nonce'] ) ) {
|
19 |
$create_result = $ad_groups_list->create_group();
|
22 |
// potential error comes from WP_Error and is no user input.
|
23 |
// phpcs:ignore
|
24 |
$error_string = $create_result->get_error_message();
|
25 |
+
echo '<div id="message" class="error inline"><p>' . esc_html( $error_string ) . '</p></div>';
|
26 |
} else {
|
27 |
+
echo '<div id="message" class="updated inline"><p>' . esc_html__( 'Ad Group successfully created', 'advanced-ads' ) . '</p></div>';
|
28 |
}
|
29 |
}
|
30 |
// save updated groups.
|
35 |
$error_string = $udpate_result->get_error_message();
|
36 |
// potential error comes from WP_Error and is no user input.
|
37 |
// phpcs:ignore
|
38 |
+
echo '<div id="message" class="error inline"><p>' . $error_string . '</p></div>';
|
39 |
} else {
|
40 |
+
echo '<div id="message" class="updated inline"><p>' . esc_html__( 'Ad Groups successfully updated', 'advanced-ads' ) . '</p></div>';
|
41 |
}
|
42 |
}
|
43 |
+
?>
|
44 |
+
</div>
|
45 |
+
<?php
|
46 |
|
47 |
$last_edited_group_id = 0;
|
48 |
if ( isset( $_REQUEST['advads-last-edited-group'] ) ) {
|
59 |
|
60 |
?>
|
61 |
<div class="wrap nosubsub">
|
62 |
+
<h2 style="display: none;"><!-- There needs to be an empty H2 headline at the top of the page so that WordPress can properly position admin notifications --></h2>
|
|
|
|
|
|
|
|
|
63 |
<?php
|
64 |
|
65 |
if ( ! empty( $_REQUEST['s'] ) ) {
|
66 |
printf( '<span class="subtitle">' . __( 'Search results for “%s”', 'advanced-ads' ) . '</span>', esc_html( wp_unslash( $_REQUEST['s'] ) ) );
|
|
|
|
|
|
|
67 |
}
|
68 |
?>
|
69 |
<form id="advads-new-group-form" action="" method="post" style="display:none;">
|
99 |
|
100 |
<div id="col-container">
|
101 |
<div class="col-wrap">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
<div id="advads-ad-group-list">
|
103 |
<form action="" method="post" id="advads-form-groups">
|
104 |
<?php wp_nonce_field( 'update-advads-groups', 'advads-group-update-nonce' ); ?>
|
admin/views/ad-info-top.php
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
<?php // display ad wizard controls.
|
2 |
-
?><button type="button"
|
3 |
-
<button
|
4 |
<script>
|
5 |
// move wizard button to head.
|
6 |
-
jQuery('#advads-start-wizard').appendTo('
|
7 |
-
jQuery('.advads-stop-wizard').
|
8 |
</script>
|
9 |
<?php
|
10 |
// show wizard welcome message.
|
1 |
<?php // display ad wizard controls.
|
2 |
+
?><button id="advads-start-wizard" type="button" class="header-action button"><span class="dashicons dashicons-controls-play"></span><?php esc_html_e( 'Start Wizard', 'advanced-ads' ); ?></button>
|
3 |
+
<button id="advads-stop-wizard" type="button" class="header-action button advads-stop-wizard hidden"><span class="dashicons dashicons-no"></span><?php esc_html_e( 'Stop Wizard', 'advanced-ads' ); ?></button>
|
4 |
<script>
|
5 |
// move wizard button to head.
|
6 |
+
jQuery('#advads-start-wizard').appendTo('#advads-header-actions');
|
7 |
+
jQuery('.advads-stop-wizard').appendTo('#advads-header-actions');
|
8 |
</script>
|
9 |
<?php
|
10 |
// show wizard welcome message.
|
admin/views/ad-info.php
CHANGED
@@ -21,7 +21,7 @@
|
|
21 |
),
|
22 |
)
|
23 |
),
|
24 |
-
esc_url( ADVADS_URL ) . 'manual/
|
25 |
);
|
26 |
?>
|
27 |
</span>
|
21 |
),
|
22 |
)
|
23 |
),
|
24 |
+
esc_url( ADVADS_URL ) . 'manual/first-ad/?utm_source=advanced-ads&utm_medium=link&utm_campaign=edit-ad-title'
|
25 |
);
|
26 |
?>
|
27 |
</span>
|
admin/views/header.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Header on admin pages
|
4 |
+
*
|
5 |
+
* @var string $title page title.
|
6 |
+
* @var string $screen_id ID of the current screen.
|
7 |
+
*/
|
8 |
+
?>
|
9 |
+
<div id="advads-header">
|
10 |
+
<div id="advads-header-wrapper">
|
11 |
+
<div>
|
12 |
+
<svg class="advads-header-logo" xmlns="http://www.w3.org/2000/svg" x="0" y="0" height="30" width="30" viewBox="0 0 351.7 352" xml:space="preserve"><path d="M252.2 149.6v125.1h-174.9v-174.9H202.4c-5.2-11.8-8-24.7-8-38.5s3-26.7 8-38.5h-37.7H0v267.9l8.8 8.8 -8.8-8.8C0 324.5 27.5 352 61.3 352l0 0h103.4 164.5V149.3c-11.8 5.2-25 8.3-38.8 8.3C276.9 157.6 264 154.6 252.2 149.6z" fill="#1C1B3A"/><circle cx="290.4" cy="61.3" r="61.3" fill="#0E75A4"/></svg>
|
13 |
+
<h1><?php echo esc_html( $title ); ?></h1>
|
14 |
+
</div>
|
15 |
+
<div id="advads-header-actions">
|
16 |
+
<?php
|
17 |
+
// load page-specific information
|
18 |
+
$manual_url = 'manual/';
|
19 |
+
switch ( $screen_id ) :
|
20 |
+
case 'advanced_ads': // ad edit page
|
21 |
+
case 'edit-advanced_ads': // ad overview
|
22 |
+
?>
|
23 |
+
<a href="<?php echo esc_url( admin_url( 'post-new.php?post_type=advanced_ads' ) ); ?>" class="header-action button" ><span class="dashicons dashicons-plus"></span><?php esc_html_e( 'New Ad', 'advanced-ads' ); ?></a>
|
24 |
+
<?php
|
25 |
+
$manual_url = 'manual/first-ad/';
|
26 |
+
break;
|
27 |
+
case 'advanced-ads_page_advanced-ads-groups': // ad groups
|
28 |
+
?>
|
29 |
+
<a href="#" id="advads-new-ad-group-link" class="header-action button"><span class="dashicons dashicons-plus"></span><?php esc_html_e( 'New Ad Group', 'advanced-ads' ); ?></a>
|
30 |
+
<?php
|
31 |
+
$manual_url = 'manual/rotate-ad/';
|
32 |
+
break;
|
33 |
+
case 'advanced-ads_page_advanced-ads-placements':
|
34 |
+
?>
|
35 |
+
<a href="#" class="header-action button" title="<?php esc_html_e( 'Create a new placement', 'advanced-ads' ); ?>" onclick="advads_toggle('.advads-placements-new-form'); advads_scroll_to_element('#advads-placements-new-form');"><span class="dashicons dashicons-plus"></span><?php esc_html_e( 'New Placement', 'advanced-ads' ); ?></a>
|
36 |
+
<?php
|
37 |
+
$manual_url = 'manual/placements/';
|
38 |
+
break;
|
39 |
+
endswitch;
|
40 |
+
$manual_url = apply_filters( 'advanced-ads-admin-header-manual-url', $manual_url, $screen_id );
|
41 |
+
?>
|
42 |
+
</div>
|
43 |
+
<div id="advads-header-links">
|
44 |
+
<?php if ( ! defined( 'AAP_VERSION' ) ) : ?>
|
45 |
+
<a class="advads-upgrade" href="<?php echo esc_url( ADVADS_URL ); ?>add-ons/?utm_source=advanced-ads&utm_medium=link&utm_campaign=header-upgrade-<?php echo esc_attr( $screen_id ); ?>" target="_blank"><?php esc_html_e( 'See all Add-ons', 'advanced-ads' ); ?></a>
|
46 |
+
<?php endif; ?>
|
47 |
+
<a href="<?php echo esc_url( ADVADS_URL . $manual_url ); ?>?utm_source=advanced-ads&utm_medium=link&utm_campaign=header-manual-<?php echo esc_attr( $screen_id ); ?>" target="_blank"><?php esc_html_e( 'Manual', 'advanced-ads' ); ?></a>
|
48 |
+
</div>
|
49 |
+
</div>
|
50 |
+
</div>
|
admin/views/notices/plugin_error.php
CHANGED
@@ -1 +1 @@
|
|
1 |
-
<div class="notice notice-error advads-admin-notice"><p><?php echo $text; ?></p></div>
|
1 |
+
<div class="notice notice-error advads-admin-notice inline"><p><?php echo wp_kses_post( $text ); ?></p></div>
|
admin/views/overview.php
CHANGED
@@ -5,8 +5,6 @@
|
|
5 |
|
6 |
?>
|
7 |
<div class="wrap">
|
8 |
-
<h1><?php esc_html_e( 'Ads Dashboard', 'advanced-ads' ); ?></h1>
|
9 |
-
|
10 |
<div id="advads-overview">
|
11 |
<?php Advanced_Ads_Overview_Widgets_Callbacks::setup_overview_widgets(); ?>
|
12 |
</div>
|
5 |
|
6 |
?>
|
7 |
<div class="wrap">
|
|
|
|
|
8 |
<div id="advads-overview">
|
9 |
<?php Advanced_Ads_Overview_Widgets_Callbacks::setup_overview_widgets(); ?>
|
10 |
</div>
|
admin/views/placements.php
CHANGED
@@ -11,23 +11,16 @@ $quick_actions['delete'] = '<a style="cursor: pointer;" class="advads-delete-tag
|
|
11 |
|
12 |
?>
|
13 |
<div class="wrap">
|
14 |
-
|
15 |
<?php
|
16 |
if ( isset( $_GET['message'] ) ) :
|
17 |
if ( $_GET['message'] === 'error' ) :
|
18 |
?>
|
19 |
-
<div id="message" class="error"><p><?php esc_html_e( 'Couldn’t create the new placement. Please check your form field and whether the name is already in use.', 'advanced-ads' ); ?></p></div>
|
20 |
<?php elseif ( $_GET['message'] === 'updated' ) : ?>
|
21 |
-
<div id="message" class="updated"><p><?php esc_html_e( 'Placements updated', 'advanced-ads' ); ?></p></div>
|
22 |
<?php endif; ?>
|
23 |
<?php endif; ?>
|
24 |
-
<h1 class="wp-heading-inline"><?php echo esc_html( get_admin_page_title() ); ?></h1>
|
25 |
-
<a href="#" class="page-title-action" title="<?php esc_html_e( 'Create a new placement', 'advanced-ads' ); ?>" class="button-secondary" onclick="advads_toggle('.advads-placements-new-form'); advads_scroll_to_element('#advads-placements-new-form');">
|
26 |
-
<?php esc_html_e( 'New Placement', 'advanced-ads' ); ?>
|
27 |
-
</a>
|
28 |
-
|
29 |
-
<hr class="wp-header-end">
|
30 |
-
|
31 |
<p class="description"><?php esc_html_e( 'Placements are physically places in your theme and posts. You can use them if you plan to change ads and ad groups on the same place without the need to change your templates.', 'advanced-ads' ); ?></p>
|
32 |
<p class="description">
|
33 |
<?php
|
@@ -54,7 +47,6 @@ $quick_actions['delete'] = '<a style="cursor: pointer;" class="advads-delete-tag
|
|
54 |
$existing_types = array_unique( array_column( $placements, 'type' ) );
|
55 |
do_action( 'advanced-ads-placements-list-before', $placements );
|
56 |
?>
|
57 |
-
<h2><?php esc_html_e( 'Placements', 'advanced-ads' ); ?></h2>
|
58 |
<form method="POST" action="" id="advanced-ads-placements-form">
|
59 |
|
60 |
<?php
|
11 |
|
12 |
?>
|
13 |
<div class="wrap">
|
14 |
+
<h2 style="display: none;"><!-- There needs to be an empty H2 headline at the top of the page so that WordPress can properly position admin notifications --></h2>
|
15 |
<?php
|
16 |
if ( isset( $_GET['message'] ) ) :
|
17 |
if ( $_GET['message'] === 'error' ) :
|
18 |
?>
|
19 |
+
<div id="message" class="error inline"><p><?php esc_html_e( 'Couldn’t create the new placement. Please check your form field and whether the name is already in use.', 'advanced-ads' ); ?></p></div>
|
20 |
<?php elseif ( $_GET['message'] === 'updated' ) : ?>
|
21 |
+
<div id="message" class="updated inline"><p><?php esc_html_e( 'Placements updated', 'advanced-ads' ); ?></p></div>
|
22 |
<?php endif; ?>
|
23 |
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
<p class="description"><?php esc_html_e( 'Placements are physically places in your theme and posts. You can use them if you plan to change ads and ad groups on the same place without the need to change your templates.', 'advanced-ads' ); ?></p>
|
25 |
<p class="description">
|
26 |
<?php
|
47 |
$existing_types = array_unique( array_column( $placements, 'type' ) );
|
48 |
do_action( 'advanced-ads-placements-list-before', $placements );
|
49 |
?>
|
|
|
50 |
<form method="POST" action="" id="advanced-ads-placements-form">
|
51 |
|
52 |
<?php
|
admin/views/settings.php
CHANGED
@@ -16,7 +16,7 @@ $setting_tabs = apply_filters(
|
|
16 |
)
|
17 |
);
|
18 |
?><div class="wrap">
|
19 |
-
<
|
20 |
<?php Advanced_Ads_Checks::show_issues(); ?>
|
21 |
|
22 |
<?php settings_errors(); ?>
|
16 |
)
|
17 |
);
|
18 |
?><div class="wrap">
|
19 |
+
<h2 style="display: none;"><!-- There needs to be an empty H2 headline at the top of the page so that WordPress can properly position admin notifications --></h2>
|
20 |
<?php Advanced_Ads_Checks::show_issues(); ?>
|
21 |
|
22 |
<?php settings_errors(); ?>
|
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.
|
16 |
* Author: Thomas Maier, Advanced Ads GmbH
|
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.
|
43 |
|
44 |
// Autoloading, modules and functions.
|
45 |
|
12 |
* Plugin Name: Advanced Ads
|
13 |
* Plugin URI: https://wpadvancedads.com
|
14 |
* Description: Manage and optimize your ads in WordPress
|
15 |
+
* Version: 1.33.0
|
16 |
* Author: Thomas Maier, Advanced Ads GmbH
|
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.33.0' );
|
43 |
|
44 |
// Autoloading, modules and functions.
|
45 |
|
changelog.txt
CHANGED
@@ -1,5 +1,26 @@
|
|
1 |
== Changelog ==
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
= 1.31.1 =
|
4 |
|
5 |
- Fix: show ad edit button when Advanced Ads block is used
|
1 |
== Changelog ==
|
2 |
|
3 |
+
= 1.33.0 =
|
4 |
+
|
5 |
+
- Improvement: introduce new header on plugin-related pages in WP Admin
|
6 |
+
- Improvement: better highlight selected condition options
|
7 |
+
- Improvement: prevent admin notices from jumping on Advanced Ads pages
|
8 |
+
- Improvement: consistently call the overview page "Dashboard" in the page title and menu
|
9 |
+
- Fix: remove default "Visibility" setting from ad edit page to avoid confusion
|
10 |
+
|
11 |
+
= 1.32.0 =
|
12 |
+
|
13 |
+
- Improvement: load display/visitor conditions automatically after selecting them
|
14 |
+
- Fix: prevent undefined index notice in display conditions
|
15 |
+
- Fix: accommodate for deprecation in WP_User_Query in WordPress 5.9.0
|
16 |
+
- Fix: prevent tooltips from flowing out of right edge of viewport
|
17 |
+
- Fix: correct ad list counter for expiring ads
|
18 |
+
- Fix: prevent creating unneeded group wrapper around Advanced Ads block
|
19 |
+
- Fix: escape the ad title on groups screen to prevent authenticated XSS
|
20 |
+
- Fix: prevent authenticated XSS in plain text ads if `DISALLOW_UNFILTERED_HTML` is set
|
21 |
+
- Fix: prevent authenticated RCE in plain text ads if `DISALLOW_FILE_EDIT` is set
|
22 |
+
- Fix: rename "Responsive (Matched Content)" AdSense ad type to "Multiplex ads"
|
23 |
+
|
24 |
= 1.31.1 =
|
25 |
|
26 |
- Fix: show ad edit button when Advanced Ads block is used
|
classes/display-conditions.php
CHANGED
@@ -608,14 +608,16 @@ class Advanced_Ads_Display_Conditions {
|
|
608 |
$args = array( 'hide_empty' => false );
|
609 |
$args['include'] = $checked;
|
610 |
$checked_terms = get_terms( $taxonomy->name, $args );
|
|
|
611 |
?>
|
612 |
<div class="advads-conditions-terms-buttons dynamic-search"><?php
|
613 |
foreach ( $checked_terms as $_checked_term ) :
|
614 |
-
?><label class="button advads-ui-state-active"><?php
|
615 |
-
|
616 |
-
|
617 |
endforeach;
|
618 |
?></div><?php
|
|
|
619 |
} else {
|
620 |
?>
|
621 |
<div class="advads-conditions-terms-buttons dynamic-search"></div><?php
|
@@ -627,8 +629,6 @@ class Advanced_Ads_Display_Conditions {
|
|
627 |
?>" data-input-name="<?php echo $inputname; ?>"
|
628 |
placeholder="<?php _e( 'term name or id', 'advanced-ads' ); ?>"/><?php
|
629 |
else :
|
630 |
-
?>
|
631 |
-
<div class="advads-conditions-terms-buttons advads-buttonset"><?php
|
632 |
foreach ( $terms as $_term ) :
|
633 |
$field_id = "advads-conditions-$_term->term_id-$rand";
|
634 |
?><input type="checkbox" id="<?php echo $field_id; ?>" name="<?php echo $inputname; ?>"
|
@@ -636,8 +636,6 @@ class Advanced_Ads_Display_Conditions {
|
|
636 |
?>><label for="<?php echo $field_id; ?>"><?php echo $_term->name; ?></label><?php
|
637 |
endforeach;
|
638 |
include ADVADS_BASE_PATH . 'admin/views/conditions/not-selected.php';
|
639 |
-
?>
|
640 |
-
</div><?php
|
641 |
endif;
|
642 |
endif;
|
643 |
|
@@ -672,7 +670,8 @@ class Advanced_Ads_Display_Conditions {
|
|
672 |
?>
|
673 |
<div class="advads-conditions-single advads-buttonset advads-conditions-postid-buttons">
|
674 |
<?php
|
675 |
-
//
|
|
|
676 |
if ( array() !== $values ) {
|
677 |
$args = array(
|
678 |
'post_type' => 'any',
|
@@ -686,18 +685,15 @@ class Advanced_Ads_Display_Conditions {
|
|
686 |
$the_query = new WP_Query( $args );
|
687 |
while ( $the_query->have_posts() ) {
|
688 |
$the_query->next_post();
|
689 |
-
?><label
|
690 |
-
|
691 |
-
|
692 |
-
|
|
|
693 |
}
|
694 |
}
|
695 |
-
?><span class="advads-conditions-postids-show-search button" <?php
|
696 |
-
|
697 |
-
echo 'style="display:none;"';
|
698 |
-
}
|
699 |
-
?>>+</span>
|
700 |
-
<p class="advads-conditions-postids-search-line">
|
701 |
<input type="text" class="advads-display-conditions-individual-post" <?php if ( count( $values ) ) {
|
702 |
echo 'style="display:none;"';
|
703 |
} ?>
|
@@ -705,6 +701,7 @@ class Advanced_Ads_Display_Conditions {
|
|
705 |
data-field-name="<?php echo $name; ?>"/><?php
|
706 |
wp_nonce_field( 'internal-linking', '_ajax_linking_nonce', false );
|
707 |
?></p></div><?php
|
|
|
708 |
}
|
709 |
|
710 |
/**
|
608 |
$args = array( 'hide_empty' => false );
|
609 |
$args['include'] = $checked;
|
610 |
$checked_terms = get_terms( $taxonomy->name, $args );
|
611 |
+
// phpcs:disable Squiz.PHP.EmbeddedPhp.ContentBeforeOpen, Squiz.PHP.EmbeddedPhp.ContentAfterOpen, Squiz.PHP.EmbeddedPhp.ContentBeforeEnd, Squiz.PHP.EmbeddedPhp.ContentAfterEnd -- Prevent whitespaces between labels
|
612 |
?>
|
613 |
<div class="advads-conditions-terms-buttons dynamic-search"><?php
|
614 |
foreach ( $checked_terms as $_checked_term ) :
|
615 |
+
?><label class="button advads-button advads-ui-state-active"><span class="advads-button-text"><?php
|
616 |
+
echo esc_html( $_checked_term->name ); ?><input type="hidden" name="<?php echo esc_attr( $inputname ); ?>"
|
617 |
+
value="<?php echo esc_attr( $_checked_term->term_id ); ?>"></span></label><?php
|
618 |
endforeach;
|
619 |
?></div><?php
|
620 |
+
// phpcs:enable
|
621 |
} else {
|
622 |
?>
|
623 |
<div class="advads-conditions-terms-buttons dynamic-search"></div><?php
|
629 |
?>" data-input-name="<?php echo $inputname; ?>"
|
630 |
placeholder="<?php _e( 'term name or id', 'advanced-ads' ); ?>"/><?php
|
631 |
else :
|
|
|
|
|
632 |
foreach ( $terms as $_term ) :
|
633 |
$field_id = "advads-conditions-$_term->term_id-$rand";
|
634 |
?><input type="checkbox" id="<?php echo $field_id; ?>" name="<?php echo $inputname; ?>"
|
636 |
?>><label for="<?php echo $field_id; ?>"><?php echo $_term->name; ?></label><?php
|
637 |
endforeach;
|
638 |
include ADVADS_BASE_PATH . 'admin/views/conditions/not-selected.php';
|
|
|
|
|
639 |
endif;
|
640 |
endif;
|
641 |
|
670 |
?>
|
671 |
<div class="advads-conditions-single advads-buttonset advads-conditions-postid-buttons">
|
672 |
<?php
|
673 |
+
// Query active post ids.
|
674 |
+
// phpcs:disable Squiz.PHP.EmbeddedPhp.ContentBeforeOpen, Squiz.PHP.EmbeddedPhp.ContentAfterOpen, Squiz.PHP.EmbeddedPhp.ContentBeforeEnd, Squiz.PHP.EmbeddedPhp.ContentAfterEnd -- Prevent whitespaces between labels
|
675 |
if ( array() !== $values ) {
|
676 |
$args = array(
|
677 |
'post_type' => 'any',
|
685 |
$the_query = new WP_Query( $args );
|
686 |
while ( $the_query->have_posts() ) {
|
687 |
$the_query->next_post();
|
688 |
+
?><label class="button advads-button advads-ui-state-active"><span class="advads-button-text"><?php
|
689 |
+
echo esc_html(
|
690 |
+
sprintf( '%s (%s)', get_the_title( $the_query->post->ID ), $the_query->post->post_type )
|
691 |
+
); ?></span><input type="hidden" name="<?php echo esc_attr( $name ); ?>[value][]"
|
692 |
+
value="<?php echo esc_attr( $the_query->post->ID ); ?>"></label><?php
|
693 |
}
|
694 |
}
|
695 |
+
?><span class="advads-conditions-postids-show-search button" <?php if ( ! count( $values ) ) {
|
696 |
+
echo 'style="display:none;"'; } ?>>+</span><p class="advads-conditions-postids-search-line">
|
|
|
|
|
|
|
|
|
697 |
<input type="text" class="advads-display-conditions-individual-post" <?php if ( count( $values ) ) {
|
698 |
echo 'style="display:none;"';
|
699 |
} ?>
|
701 |
data-field-name="<?php echo $name; ?>"/><?php
|
702 |
wp_nonce_field( 'internal-linking', '_ajax_linking_nonce', false );
|
703 |
?></p></div><?php
|
704 |
+
// phpcs:enable
|
705 |
}
|
706 |
|
707 |
/**
|
languages/advanced-ads.pot
CHANGED
@@ -2,14 +2,14 @@
|
|
2 |
# This file is distributed under the same license as the Advanced Ads plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Advanced Ads 1.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/advanced-ads/\n"
|
7 |
"Last-Translator: Thomas Maier <post@webzunft.de>\n"
|
8 |
"Language-Team: webgilde <support@wpadvancedads.com>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"POT-Creation-Date: 2022-03-
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: advanced-ads\n"
|
@@ -94,25 +94,46 @@ msgstr ""
|
|
94 |
msgid "Permanently delete this placement?"
|
95 |
msgstr ""
|
96 |
|
97 |
-
#: admin/class-advanced-ads-admin.php:
|
98 |
-
#: admin/includes/class-menu.php:
|
99 |
-
#: admin/includes/class-menu.php:
|
100 |
#: admin/views/settings.php:29
|
101 |
msgid "Support"
|
102 |
msgstr ""
|
103 |
|
104 |
-
#: admin/class-advanced-ads-admin.php:
|
105 |
#: admin/includes/class-overview-widgets.php:72
|
106 |
msgid "Add-Ons"
|
107 |
msgstr ""
|
108 |
|
|
|
|
|
|
|
|
|
109 |
#. translators: %s is the URL to add a new review, https://wordpress.org/support/plugin/advanced-ads/reviews/#new-post
|
110 |
#. translators: %s is a URL.
|
111 |
-
#: admin/class-advanced-ads-admin.php:
|
112 |
#: admin/includes/class-overview-widgets.php:191
|
113 |
msgid "Thank the developer with a ★★★★★ review on <a href=\"%s\" target=\"_blank\">wordpress.org</a>"
|
114 |
msgstr ""
|
115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
#. translators: %1$s is a version number.
|
117 |
#: admin/includes/ad-health-notices.php:32
|
118 |
msgid "Your <strong>PHP version (%1$s) is too low</strong>. Advanced Ads is built for PHP %2$s and higher. It might work, but updating PHP is highly recommended. Please ask your hosting provider for more information."
|
@@ -126,7 +147,7 @@ msgstr ""
|
|
126 |
#. translators: %s is a list of PHP extensions.
|
127 |
#. Translators: %s is a name of a module.
|
128 |
#: admin/includes/ad-health-notices.php:54
|
129 |
-
#: admin/views/placements.php:
|
130 |
msgid "Missing PHP extensions could cause issues. Please ask your hosting provider to enable them: %s"
|
131 |
msgstr ""
|
132 |
|
@@ -312,7 +333,7 @@ msgid "Display ads with the highest ad weight first"
|
|
312 |
msgstr ""
|
313 |
|
314 |
#: admin/includes/class-ad-groups-list.php:339
|
315 |
-
#: admin/views/placements.php:
|
316 |
#: modules/import-export/classes/import.php:153
|
317 |
#: modules/import-export/classes/import.php:193
|
318 |
#: modules/import-export/classes/import.php:595
|
@@ -321,7 +342,7 @@ msgid "Edit"
|
|
321 |
msgstr ""
|
322 |
|
323 |
#: admin/includes/class-ad-groups-list.php:340
|
324 |
-
#: admin/views/placements.php:
|
325 |
msgid "Usage"
|
326 |
msgstr ""
|
327 |
|
@@ -555,14 +576,17 @@ msgid "Expiring"
|
|
555 |
msgstr ""
|
556 |
|
557 |
#: admin/includes/class-menu.php:66
|
558 |
-
#: admin/includes/class-menu.php:
|
559 |
-
#: admin/includes/class-menu.php:
|
560 |
-
#: admin/includes/class-menu.php:
|
561 |
-
|
|
|
|
|
|
|
562 |
msgstr ""
|
563 |
|
564 |
-
#: admin/includes/class-menu.php:
|
565 |
-
#: admin/includes/class-menu.php:
|
566 |
#: admin/includes/class-shortcode-creator.php:212
|
567 |
#: admin/views/ad-group-list-form-row.php:91
|
568 |
#: admin/views/ad-group-list-header.php:16
|
@@ -575,59 +599,55 @@ msgstr ""
|
|
575 |
msgid "Ads"
|
576 |
msgstr ""
|
577 |
|
578 |
-
#: admin/includes/class-menu.php:
|
579 |
#: public/class-advanced-ads.php:797
|
580 |
msgid "Add New Ad"
|
581 |
msgstr ""
|
582 |
|
583 |
-
#: admin/includes/class-menu.php:
|
584 |
#: admin/views/ad-group-list-ads.php:36
|
|
|
585 |
#: public/class-advanced-ads.php:796
|
586 |
#: public/class-advanced-ads.php:800
|
587 |
msgid "New Ad"
|
588 |
msgstr ""
|
589 |
|
590 |
-
#: admin/includes/class-menu.php:
|
591 |
msgid "Ad Groups & Rotations"
|
592 |
msgstr ""
|
593 |
|
594 |
-
#: admin/includes/class-menu.php:
|
595 |
msgid "Groups & Rotation"
|
596 |
msgstr ""
|
597 |
|
598 |
-
#: admin/includes/class-menu.php:
|
599 |
msgid "Ad Placements"
|
600 |
msgstr ""
|
601 |
|
602 |
-
#: admin/includes/class-menu.php:
|
603 |
#: admin/includes/class-shortcode-creator.php:226
|
604 |
-
#: admin/views/placements.php:57
|
605 |
#: classes/widget.php:122
|
606 |
#: modules/gutenberg/includes/class-gutenberg.php:88
|
607 |
#: modules/import-export/views/page.php:25
|
608 |
msgid "Placements"
|
609 |
msgstr ""
|
610 |
|
611 |
-
#: admin/includes/class-menu.php:
|
612 |
-
msgid "Advanced Ads Settings"
|
613 |
-
msgstr ""
|
614 |
-
|
615 |
-
#: admin/includes/class-menu.php:141
|
616 |
msgid "Settings"
|
617 |
msgstr ""
|
618 |
|
619 |
-
#: admin/includes/class-menu.php:
|
620 |
-
#: admin/includes/class-menu.php:
|
621 |
#: admin/includes/class-settings.php:298
|
622 |
msgid "Licenses"
|
623 |
msgstr ""
|
624 |
|
625 |
-
#: admin/includes/class-menu.php:
|
626 |
-
#: admin/includes/class-menu.php:
|
627 |
msgid "Sorry, you are not allowed to access this feature."
|
628 |
msgstr ""
|
629 |
|
630 |
-
#: admin/includes/class-menu.php:
|
631 |
msgid "You attempted to edit an ad group that doesn’t exist. Perhaps it was deleted?"
|
632 |
msgstr ""
|
633 |
|
@@ -650,15 +670,15 @@ msgid "Layout / Output"
|
|
650 |
msgstr ""
|
651 |
|
652 |
#: admin/includes/class-meta-box.php:104
|
653 |
-
#: admin/views/placements.php:
|
654 |
-
#: admin/views/placements.php:
|
655 |
#: classes/ad-debug.php:152
|
656 |
msgid "Display Conditions"
|
657 |
msgstr ""
|
658 |
|
659 |
#: admin/includes/class-meta-box.php:112
|
660 |
-
#: admin/views/placements.php:
|
661 |
-
#: admin/views/placements.php:
|
662 |
#: classes/ad-debug.php:239
|
663 |
msgid "Visitor Conditions"
|
664 |
msgstr ""
|
@@ -677,6 +697,7 @@ msgstr ""
|
|
677 |
#: admin/includes/class-overview-widgets.php:179
|
678 |
#: admin/views/ad-main-metabox.php:29
|
679 |
#: admin/views/ad-output-metabox.php:65
|
|
|
680 |
#: admin/views/settings/general/custom-label.php:10
|
681 |
#: classes/ad_type_plain.php:238
|
682 |
#: modules/ads-txt/admin/views/setting-create.php:12
|
@@ -697,11 +718,6 @@ msgstr ""
|
|
697 |
msgid "Ad Settings"
|
698 |
msgstr ""
|
699 |
|
700 |
-
#: admin/includes/class-meta-box.php:512
|
701 |
-
#: admin/views/overview.php:8
|
702 |
-
msgid "Ads Dashboard"
|
703 |
-
msgstr ""
|
704 |
-
|
705 |
#. translators: %1$d is the number of ads, %2$s and %3$s are URLs.
|
706 |
#: admin/includes/class-meta-box.php:528
|
707 |
msgid "%1$d ads – <a href=\"%2$s\">manage</a> - <a href=\"%3$s\">new</a>"
|
@@ -1179,7 +1195,7 @@ msgid "Update"
|
|
1179 |
msgstr ""
|
1180 |
|
1181 |
#: admin/views/ad-group-list-ads.php:20
|
1182 |
-
#: admin/views/placements.php:
|
1183 |
#: classes/ad-debug.php:118
|
1184 |
#: classes/ad-debug.php:167
|
1185 |
#: classes/ad-debug.php:169
|
@@ -1196,7 +1212,7 @@ msgid "add"
|
|
1196 |
msgstr ""
|
1197 |
|
1198 |
#: admin/views/ad-group-list-form-row.php:31
|
1199 |
-
#: admin/views/placements.php:
|
1200 |
#: modules/gadsense/admin/views/external-ads-list.php:41
|
1201 |
#: modules/gadsense/admin/views/external-ads-list.php:51
|
1202 |
#: modules/privacy/admin/views/setting-general.php:44
|
@@ -1204,8 +1220,8 @@ msgid "Name"
|
|
1204 |
msgstr ""
|
1205 |
|
1206 |
#: admin/views/ad-group-list-form-row.php:56
|
1207 |
-
#: admin/views/placements.php:
|
1208 |
-
#: admin/views/placements.php:
|
1209 |
#: modules/gadsense/admin/views/adsense-ad-parameters.php:105
|
1210 |
msgid "Type"
|
1211 |
msgstr ""
|
@@ -1234,7 +1250,7 @@ msgstr ""
|
|
1234 |
|
1235 |
#: admin/views/ad-group-list-row.php:22
|
1236 |
#: admin/views/ad-info.php:7
|
1237 |
-
#: admin/views/placements.php:
|
1238 |
msgid "shortcode"
|
1239 |
msgstr ""
|
1240 |
|
@@ -1252,36 +1268,36 @@ msgstr ""
|
|
1252 |
msgid "ID: %s"
|
1253 |
msgstr ""
|
1254 |
|
1255 |
-
#: admin/views/ad-group.php:
|
1256 |
msgid "Ad Group successfully created"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
-
#: admin/views/ad-group.php:
|
1260 |
msgid "Ad Groups successfully updated"
|
1261 |
msgstr ""
|
1262 |
|
1263 |
-
#: admin/views/ad-group.php:
|
1264 |
msgid "Search results for “%s”"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
-
#: admin/views/ad-group.php:
|
1268 |
msgid "Group title"
|
1269 |
msgstr ""
|
1270 |
|
1271 |
-
#: admin/views/ad-group.php:
|
1272 |
msgid "save"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
-
#: admin/views/ad-group.php:
|
1276 |
msgid "Ad Groups are a very flexible method to bundle ads. You can use them to display random ads in the frontend or run split tests, but also just for informational purposes. Not only can an Ad Groups have multiple ads, but an ad can belong to multiple ad groups."
|
1277 |
msgstr ""
|
1278 |
|
1279 |
#. translators: %s is a URL.
|
1280 |
-
#: admin/views/ad-group.php:
|
1281 |
msgid "Find more information about ad groups in the <a href=\"%s\" target=\"_blank\">manual</a>."
|
1282 |
msgstr ""
|
1283 |
|
1284 |
-
#: admin/views/ad-group.php:
|
1285 |
msgid "Update Groups"
|
1286 |
msgstr ""
|
1287 |
|
@@ -1394,7 +1410,7 @@ msgstr ""
|
|
1394 |
#: admin/views/placements-ad-label-position.php:13
|
1395 |
#: admin/views/placements-ad-label.php:9
|
1396 |
#: admin/views/placements-ad-label.php:11
|
1397 |
-
#: admin/views/placements.php:
|
1398 |
#: modules/gadsense/includes/class-network-adsense.php:321
|
1399 |
msgid "default"
|
1400 |
msgstr ""
|
@@ -1725,16 +1741,35 @@ msgstr ""
|
|
1725 |
msgid "There is an error in your AdSense setup."
|
1726 |
msgstr ""
|
1727 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1728 |
#: admin/views/modal.php:36
|
1729 |
#: admin/views/modal.php:37
|
1730 |
-
#: admin/views/placements.php:
|
1731 |
-
#: admin/views/placements.php:
|
1732 |
msgid "Close"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
#. Translators: 1: "Options", 2: the name of a placement.
|
1736 |
#: admin/views/modal.php:39
|
1737 |
-
#: admin/views/placements.php:
|
1738 |
msgid "Close and save"
|
1739 |
msgstr ""
|
1740 |
|
@@ -2004,136 +2039,126 @@ msgstr ""
|
|
2004 |
msgid "Placements updated"
|
2005 |
msgstr ""
|
2006 |
|
2007 |
-
#: admin/views/placements.php:
|
2008 |
-
#: admin/views/placements.php:466
|
2009 |
-
msgid "Create a new placement"
|
2010 |
-
msgstr ""
|
2011 |
-
|
2012 |
-
#: admin/views/placements.php:26
|
2013 |
-
#: admin/views/placements.php:468
|
2014 |
-
msgid "New Placement"
|
2015 |
-
msgstr ""
|
2016 |
-
|
2017 |
-
#: admin/views/placements.php:31
|
2018 |
msgid "Placements are physically places in your theme and posts. You can use them if you plan to change ads and ad groups on the same place without the need to change your templates."
|
2019 |
msgstr ""
|
2020 |
|
2021 |
#. Translators: %s is a URL.
|
2022 |
-
#: admin/views/placements.php:
|
2023 |
msgid "See also the manual for more information on <a href=\"%s\">placements</a>."
|
2024 |
msgstr ""
|
2025 |
|
2026 |
-
#: admin/views/placements.php:
|
2027 |
msgid "Output"
|
2028 |
msgstr ""
|
2029 |
|
2030 |
-
#: admin/views/placements.php:
|
2031 |
msgid "Delivery"
|
2032 |
msgstr ""
|
2033 |
|
2034 |
-
#: admin/views/placements.php:
|
2035 |
msgid "- show all types -"
|
2036 |
msgstr ""
|
2037 |
|
2038 |
-
#: admin/views/placements.php:
|
2039 |
msgid "filter by name"
|
2040 |
msgstr ""
|
2041 |
|
2042 |
-
#: admin/views/placements.php:
|
2043 |
msgid "show usage"
|
2044 |
msgstr ""
|
2045 |
|
2046 |
-
#: admin/views/placements.php:
|
2047 |
msgid "ad label"
|
2048 |
msgstr ""
|
2049 |
|
2050 |
-
#: admin/views/placements.php:
|
2051 |
msgid "Inline CSS"
|
2052 |
msgstr ""
|
2053 |
|
2054 |
-
#: admin/views/placements.php:
|
2055 |
msgid "Use display conditions for placements."
|
2056 |
msgstr ""
|
2057 |
|
2058 |
-
#: admin/views/placements.php:
|
2059 |
-
#: admin/views/placements.php:
|
2060 |
msgid "The free version provides conditions on the ad edit page."
|
2061 |
msgstr ""
|
2062 |
|
2063 |
-
#: admin/views/placements.php:
|
2064 |
msgid "Use visitor conditions for placements."
|
2065 |
msgstr ""
|
2066 |
|
2067 |
-
#: admin/views/placements.php:
|
2068 |
msgid "Minimum Content Length"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
-
#: admin/views/placements.php:
|
2072 |
msgid "Minimum length of content before automatically injected ads are allowed in them."
|
2073 |
msgstr ""
|
2074 |
|
2075 |
-
#: admin/views/placements.php:
|
2076 |
msgid "Words Between Ads"
|
2077 |
msgstr ""
|
2078 |
|
2079 |
-
#: admin/views/placements.php:
|
2080 |
msgid "A minimum amount of words between automatically injected ads."
|
2081 |
msgstr ""
|
2082 |
|
2083 |
#. Translators: 1: "Options", 2: the name of a placement.
|
2084 |
-
#: admin/views/placements.php:
|
2085 |
#: modules/import-export/views/page.php:26
|
2086 |
msgid "Options"
|
2087 |
msgstr ""
|
2088 |
|
2089 |
#. Translators: %s is the name of a placement.
|
2090 |
-
#: admin/views/placements.php:
|
2091 |
msgid "Placement type \"%s\" is missing and was reset to \"default\".<br/>Please check if the responsible add-on is activated."
|
2092 |
msgstr ""
|
2093 |
|
2094 |
-
#: admin/views/placements.php:
|
2095 |
msgid "template (PHP)"
|
2096 |
msgstr ""
|
2097 |
|
2098 |
-
#: admin/views/placements.php:
|
2099 |
msgid "Group"
|
2100 |
msgstr ""
|
2101 |
|
2102 |
-
#: admin/views/placements.php:
|
2103 |
msgid "after"
|
2104 |
msgstr ""
|
2105 |
|
2106 |
-
#: admin/views/placements.php:
|
2107 |
msgid "before"
|
2108 |
msgstr ""
|
2109 |
|
2110 |
-
#: admin/views/placements.php:
|
2111 |
msgid "position"
|
2112 |
msgstr ""
|
2113 |
|
2114 |
-
#: admin/views/placements.php:
|
2115 |
msgid "Important Notice"
|
2116 |
msgstr ""
|
2117 |
|
2118 |
#. Translators: %s is a URL.
|
2119 |
-
#: admin/views/placements.php:
|
2120 |
msgid "Tutorial: <a href=\"%s\" target=\"_blank\">How to place visible ads in the header of your website</a>."
|
2121 |
msgstr ""
|
2122 |
|
2123 |
-
#: admin/views/placements.php:
|
2124 |
msgid "show all options"
|
2125 |
msgstr ""
|
2126 |
|
2127 |
-
#: admin/views/placements.php:
|
2128 |
msgid "edit conditions"
|
2129 |
msgstr ""
|
2130 |
|
2131 |
-
#: admin/views/placements.php:
|
2132 |
msgctxt "checkbox to remove placement"
|
2133 |
msgid "delete"
|
2134 |
msgstr ""
|
2135 |
|
2136 |
-
#: admin/views/placements.php:
|
2137 |
msgid "Save Placements"
|
2138 |
msgstr ""
|
2139 |
|
@@ -2860,114 +2885,114 @@ msgstr ""
|
|
2860 |
msgid "accelerated mobile pages"
|
2861 |
msgstr ""
|
2862 |
|
2863 |
-
#: classes/display-conditions.php:
|
2864 |
msgctxt "display the terms search field on ad edit page"
|
2865 |
msgid "add more terms"
|
2866 |
msgstr ""
|
2867 |
|
2868 |
-
#: classes/display-conditions.php:
|
2869 |
msgid "term name or id"
|
2870 |
msgstr ""
|
2871 |
|
2872 |
-
#: classes/display-conditions.php:
|
2873 |
msgid "title or id"
|
2874 |
msgstr ""
|
2875 |
|
2876 |
-
#: classes/display-conditions.php:
|
2877 |
#: includes/array_ad_conditions.php:63
|
2878 |
msgid "Home Page"
|
2879 |
msgstr ""
|
2880 |
|
2881 |
-
#: classes/display-conditions.php:
|
2882 |
#: includes/array_ad_conditions.php:64
|
2883 |
msgid "show on Home page"
|
2884 |
msgstr ""
|
2885 |
|
2886 |
-
#: classes/display-conditions.php:
|
2887 |
#: includes/array_ad_conditions.php:68
|
2888 |
msgid "Singular Pages"
|
2889 |
msgstr ""
|
2890 |
|
2891 |
-
#: classes/display-conditions.php:
|
2892 |
#: includes/array_ad_conditions.php:69
|
2893 |
msgid "show on singular pages/posts"
|
2894 |
msgstr ""
|
2895 |
|
2896 |
-
#: classes/display-conditions.php:
|
2897 |
#: includes/array_ad_conditions.php:73
|
2898 |
msgid "Archive Pages"
|
2899 |
msgstr ""
|
2900 |
|
2901 |
-
#: classes/display-conditions.php:
|
2902 |
#: includes/array_ad_conditions.php:74
|
2903 |
msgid "show on any type of archive page (category, tag, author and date)"
|
2904 |
msgstr ""
|
2905 |
|
2906 |
-
#: classes/display-conditions.php:
|
2907 |
#: includes/array_ad_conditions.php:78
|
2908 |
msgid "Search Results"
|
2909 |
msgstr ""
|
2910 |
|
2911 |
-
#: classes/display-conditions.php:
|
2912 |
#: includes/array_ad_conditions.php:79
|
2913 |
msgid "show on search result pages"
|
2914 |
msgstr ""
|
2915 |
|
2916 |
-
#: classes/display-conditions.php:
|
2917 |
#: includes/array_ad_conditions.php:83
|
2918 |
msgid "404 Page"
|
2919 |
msgstr ""
|
2920 |
|
2921 |
-
#: classes/display-conditions.php:
|
2922 |
#: includes/array_ad_conditions.php:84
|
2923 |
msgid "show on 404 error page"
|
2924 |
msgstr ""
|
2925 |
|
2926 |
-
#: classes/display-conditions.php:
|
2927 |
#: includes/array_ad_conditions.php:88
|
2928 |
msgid "Attachment Pages"
|
2929 |
msgstr ""
|
2930 |
|
2931 |
-
#: classes/display-conditions.php:
|
2932 |
#: includes/array_ad_conditions.php:89
|
2933 |
msgid "show on attachment pages"
|
2934 |
msgstr ""
|
2935 |
|
2936 |
-
#: classes/display-conditions.php:
|
2937 |
#: includes/array_ad_conditions.php:93
|
2938 |
msgid "Secondary Queries"
|
2939 |
msgstr ""
|
2940 |
|
2941 |
-
#: classes/display-conditions.php:
|
2942 |
#: includes/array_ad_conditions.php:94
|
2943 |
msgid "allow ads in secondary queries"
|
2944 |
msgstr ""
|
2945 |
|
2946 |
-
#: classes/display-conditions.php:
|
2947 |
msgid "RSS Feed"
|
2948 |
msgstr ""
|
2949 |
|
2950 |
-
#: classes/display-conditions.php:
|
2951 |
msgid "allow ads in RSS Feed"
|
2952 |
msgstr ""
|
2953 |
|
2954 |
-
#: classes/display-conditions.php:
|
2955 |
msgid "REST API"
|
2956 |
msgstr ""
|
2957 |
|
2958 |
-
#: classes/display-conditions.php:
|
2959 |
msgid "allow ads in REST API"
|
2960 |
msgstr ""
|
2961 |
|
2962 |
-
#: classes/display-conditions.php:
|
2963 |
msgid "older than"
|
2964 |
msgstr ""
|
2965 |
|
2966 |
-
#: classes/display-conditions.php:
|
2967 |
msgid "younger than"
|
2968 |
msgstr ""
|
2969 |
|
2970 |
-
#: classes/display-conditions.php:
|
2971 |
msgid "days"
|
2972 |
msgstr ""
|
2973 |
|
@@ -4273,10 +4298,6 @@ msgstr ""
|
|
4273 |
msgid "Update Ad Group"
|
4274 |
msgstr ""
|
4275 |
|
4276 |
-
#: public/class-advanced-ads.php:760
|
4277 |
-
msgid "Add New Ad Group"
|
4278 |
-
msgstr ""
|
4279 |
-
|
4280 |
#: public/class-advanced-ads.php:761
|
4281 |
msgid "New Ad Groups Name"
|
4282 |
msgstr ""
|
2 |
# This file is distributed under the same license as the Advanced Ads plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Advanced Ads 1.33.0\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/advanced-ads/\n"
|
7 |
"Last-Translator: Thomas Maier <post@webzunft.de>\n"
|
8 |
"Language-Team: webgilde <support@wpadvancedads.com>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"POT-Creation-Date: 2022-03-29T10:48:03-04:00\n"
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: advanced-ads\n"
|
94 |
msgid "Permanently delete this placement?"
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: admin/class-advanced-ads-admin.php:393
|
98 |
+
#: admin/includes/class-menu.php:166
|
99 |
+
#: admin/includes/class-menu.php:169
|
100 |
#: admin/views/settings.php:29
|
101 |
msgid "Support"
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: admin/class-advanced-ads-admin.php:398
|
105 |
#: admin/includes/class-overview-widgets.php:72
|
106 |
msgid "Add-Ons"
|
107 |
msgstr ""
|
108 |
|
109 |
+
#: admin/class-advanced-ads-admin.php:400
|
110 |
+
msgid "See Pro Features"
|
111 |
+
msgstr ""
|
112 |
+
|
113 |
#. translators: %s is the URL to add a new review, https://wordpress.org/support/plugin/advanced-ads/reviews/#new-post
|
114 |
#. translators: %s is a URL.
|
115 |
+
#: admin/class-advanced-ads-admin.php:674
|
116 |
#: admin/includes/class-overview-widgets.php:191
|
117 |
msgid "Thank the developer with a ★★★★★ review on <a href=\"%s\" target=\"_blank\">wordpress.org</a>"
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: admin/class-advanced-ads-admin.php:757
|
121 |
+
msgid "Your Ads"
|
122 |
+
msgstr ""
|
123 |
+
|
124 |
+
#: admin/class-advanced-ads-admin.php:760
|
125 |
+
msgid "Your Groups"
|
126 |
+
msgstr ""
|
127 |
+
|
128 |
+
#: admin/class-advanced-ads-admin.php:763
|
129 |
+
msgid "Your Placements"
|
130 |
+
msgstr ""
|
131 |
+
|
132 |
+
#: admin/class-advanced-ads-admin.php:766
|
133 |
+
#: admin/includes/class-menu.php:150
|
134 |
+
msgid "Advanced Ads Settings"
|
135 |
+
msgstr ""
|
136 |
+
|
137 |
#. translators: %1$s is a version number.
|
138 |
#: admin/includes/ad-health-notices.php:32
|
139 |
msgid "Your <strong>PHP version (%1$s) is too low</strong>. Advanced Ads is built for PHP %2$s and higher. It might work, but updating PHP is highly recommended. Please ask your hosting provider for more information."
|
147 |
#. translators: %s is a list of PHP extensions.
|
148 |
#. Translators: %s is a name of a module.
|
149 |
#: admin/includes/ad-health-notices.php:54
|
150 |
+
#: admin/views/placements.php:381
|
151 |
msgid "Missing PHP extensions could cause issues. Please ask your hosting provider to enable them: %s"
|
152 |
msgstr ""
|
153 |
|
333 |
msgstr ""
|
334 |
|
335 |
#: admin/includes/class-ad-groups-list.php:339
|
336 |
+
#: admin/views/placements.php:268
|
337 |
#: modules/import-export/classes/import.php:153
|
338 |
#: modules/import-export/classes/import.php:193
|
339 |
#: modules/import-export/classes/import.php:595
|
342 |
msgstr ""
|
343 |
|
344 |
#: admin/includes/class-ad-groups-list.php:340
|
345 |
+
#: admin/views/placements.php:299
|
346 |
msgid "Usage"
|
347 |
msgstr ""
|
348 |
|
576 |
msgstr ""
|
577 |
|
578 |
#: admin/includes/class-menu.php:66
|
579 |
+
#: admin/includes/class-menu.php:78
|
580 |
+
#: admin/includes/class-menu.php:79
|
581 |
+
#: admin/includes/class-menu.php:99
|
582 |
+
#: admin/includes/class-menu.php:110
|
583 |
+
#: admin/includes/class-menu.php:111
|
584 |
+
#: admin/includes/class-meta-box.php:512
|
585 |
+
msgid "Dashboard"
|
586 |
msgstr ""
|
587 |
|
588 |
+
#: admin/includes/class-menu.php:90
|
589 |
+
#: admin/includes/class-menu.php:91
|
590 |
#: admin/includes/class-shortcode-creator.php:212
|
591 |
#: admin/views/ad-group-list-form-row.php:91
|
592 |
#: admin/views/ad-group-list-header.php:16
|
599 |
msgid "Ads"
|
600 |
msgstr ""
|
601 |
|
602 |
+
#: admin/includes/class-menu.php:122
|
603 |
#: public/class-advanced-ads.php:797
|
604 |
msgid "Add New Ad"
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: admin/includes/class-menu.php:123
|
608 |
#: admin/views/ad-group-list-ads.php:36
|
609 |
+
#: admin/views/header.php:23
|
610 |
#: public/class-advanced-ads.php:796
|
611 |
#: public/class-advanced-ads.php:800
|
612 |
msgid "New Ad"
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: admin/includes/class-menu.php:131
|
616 |
msgid "Ad Groups & Rotations"
|
617 |
msgstr ""
|
618 |
|
619 |
+
#: admin/includes/class-menu.php:132
|
620 |
msgid "Groups & Rotation"
|
621 |
msgstr ""
|
622 |
|
623 |
+
#: admin/includes/class-menu.php:141
|
624 |
msgid "Ad Placements"
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: admin/includes/class-menu.php:142
|
628 |
#: admin/includes/class-shortcode-creator.php:226
|
|
|
629 |
#: classes/widget.php:122
|
630 |
#: modules/gutenberg/includes/class-gutenberg.php:88
|
631 |
#: modules/import-export/views/page.php:25
|
632 |
msgid "Placements"
|
633 |
msgstr ""
|
634 |
|
635 |
+
#: admin/includes/class-menu.php:151
|
|
|
|
|
|
|
|
|
636 |
msgid "Settings"
|
637 |
msgstr ""
|
638 |
|
639 |
+
#: admin/includes/class-menu.php:186
|
640 |
+
#: admin/includes/class-menu.php:190
|
641 |
#: admin/includes/class-settings.php:298
|
642 |
msgid "Licenses"
|
643 |
msgstr ""
|
644 |
|
645 |
+
#: admin/includes/class-menu.php:286
|
646 |
+
#: admin/includes/class-menu.php:311
|
647 |
msgid "Sorry, you are not allowed to access this feature."
|
648 |
msgstr ""
|
649 |
|
650 |
+
#: admin/includes/class-menu.php:298
|
651 |
msgid "You attempted to edit an ad group that doesn’t exist. Perhaps it was deleted?"
|
652 |
msgstr ""
|
653 |
|
670 |
msgstr ""
|
671 |
|
672 |
#: admin/includes/class-meta-box.php:104
|
673 |
+
#: admin/views/placements.php:176
|
674 |
+
#: admin/views/placements.php:422
|
675 |
#: classes/ad-debug.php:152
|
676 |
msgid "Display Conditions"
|
677 |
msgstr ""
|
678 |
|
679 |
#: admin/includes/class-meta-box.php:112
|
680 |
+
#: admin/views/placements.php:185
|
681 |
+
#: admin/views/placements.php:430
|
682 |
#: classes/ad-debug.php:239
|
683 |
msgid "Visitor Conditions"
|
684 |
msgstr ""
|
697 |
#: admin/includes/class-overview-widgets.php:179
|
698 |
#: admin/views/ad-main-metabox.php:29
|
699 |
#: admin/views/ad-output-metabox.php:65
|
700 |
+
#: admin/views/header.php:47
|
701 |
#: admin/views/settings/general/custom-label.php:10
|
702 |
#: classes/ad_type_plain.php:238
|
703 |
#: modules/ads-txt/admin/views/setting-create.php:12
|
718 |
msgid "Ad Settings"
|
719 |
msgstr ""
|
720 |
|
|
|
|
|
|
|
|
|
|
|
721 |
#. translators: %1$d is the number of ads, %2$s and %3$s are URLs.
|
722 |
#: admin/includes/class-meta-box.php:528
|
723 |
msgid "%1$d ads – <a href=\"%2$s\">manage</a> - <a href=\"%3$s\">new</a>"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
#: admin/views/ad-group-list-ads.php:20
|
1198 |
+
#: admin/views/placements.php:340
|
1199 |
#: classes/ad-debug.php:118
|
1200 |
#: classes/ad-debug.php:167
|
1201 |
#: classes/ad-debug.php:169
|
1212 |
msgstr ""
|
1213 |
|
1214 |
#: admin/views/ad-group-list-form-row.php:31
|
1215 |
+
#: admin/views/placements.php:56
|
1216 |
#: modules/gadsense/admin/views/external-ads-list.php:41
|
1217 |
#: modules/gadsense/admin/views/external-ads-list.php:51
|
1218 |
#: modules/privacy/admin/views/setting-general.php:44
|
1220 |
msgstr ""
|
1221 |
|
1222 |
#: admin/views/ad-group-list-form-row.php:56
|
1223 |
+
#: admin/views/placements.php:56
|
1224 |
+
#: admin/views/placements.php:250
|
1225 |
#: modules/gadsense/admin/views/adsense-ad-parameters.php:105
|
1226 |
msgid "Type"
|
1227 |
msgstr ""
|
1250 |
|
1251 |
#: admin/views/ad-group-list-row.php:22
|
1252 |
#: admin/views/ad-info.php:7
|
1253 |
+
#: admin/views/placements.php:303
|
1254 |
msgid "shortcode"
|
1255 |
msgstr ""
|
1256 |
|
1268 |
msgid "ID: %s"
|
1269 |
msgstr ""
|
1270 |
|
1271 |
+
#: admin/views/ad-group.php:27
|
1272 |
msgid "Ad Group successfully created"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
+
#: admin/views/ad-group.php:40
|
1276 |
msgid "Ad Groups successfully updated"
|
1277 |
msgstr ""
|
1278 |
|
1279 |
+
#: admin/views/ad-group.php:66
|
1280 |
msgid "Search results for “%s”"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
+
#: admin/views/ad-group.php:71
|
1284 |
msgid "Group title"
|
1285 |
msgstr ""
|
1286 |
|
1287 |
+
#: admin/views/ad-group.php:72
|
1288 |
msgid "save"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
+
#: admin/views/ad-group.php:74
|
1292 |
msgid "Ad Groups are a very flexible method to bundle ads. You can use them to display random ads in the frontend or run split tests, but also just for informational purposes. Not only can an Ad Groups have multiple ads, but an ad can belong to multiple ad groups."
|
1293 |
msgstr ""
|
1294 |
|
1295 |
#. translators: %s is a URL.
|
1296 |
+
#: admin/views/ad-group.php:80
|
1297 |
msgid "Find more information about ad groups in the <a href=\"%s\" target=\"_blank\">manual</a>."
|
1298 |
msgstr ""
|
1299 |
|
1300 |
+
#: admin/views/ad-group.php:111
|
1301 |
msgid "Update Groups"
|
1302 |
msgstr ""
|
1303 |
|
1410 |
#: admin/views/placements-ad-label-position.php:13
|
1411 |
#: admin/views/placements-ad-label.php:9
|
1412 |
#: admin/views/placements-ad-label.php:11
|
1413 |
+
#: admin/views/placements.php:262
|
1414 |
#: modules/gadsense/includes/class-network-adsense.php:321
|
1415 |
msgid "default"
|
1416 |
msgstr ""
|
1741 |
msgid "There is an error in your AdSense setup."
|
1742 |
msgstr ""
|
1743 |
|
1744 |
+
#: admin/views/header.php:29
|
1745 |
+
#: public/class-advanced-ads.php:760
|
1746 |
+
msgid "New Ad Group"
|
1747 |
+
msgstr ""
|
1748 |
+
|
1749 |
+
#: admin/views/header.php:35
|
1750 |
+
#: admin/views/placements.php:458
|
1751 |
+
msgid "Create a new placement"
|
1752 |
+
msgstr ""
|
1753 |
+
|
1754 |
+
#: admin/views/header.php:35
|
1755 |
+
#: admin/views/placements.php:460
|
1756 |
+
msgid "New Placement"
|
1757 |
+
msgstr ""
|
1758 |
+
|
1759 |
+
#: admin/views/header.php:45
|
1760 |
+
msgid "See all Add-ons"
|
1761 |
+
msgstr ""
|
1762 |
+
|
1763 |
#: admin/views/modal.php:36
|
1764 |
#: admin/views/modal.php:37
|
1765 |
+
#: admin/views/placements.php:313
|
1766 |
+
#: admin/views/placements.php:314
|
1767 |
msgid "Close"
|
1768 |
msgstr ""
|
1769 |
|
1770 |
#. Translators: 1: "Options", 2: the name of a placement.
|
1771 |
#: admin/views/modal.php:39
|
1772 |
+
#: admin/views/placements.php:224
|
1773 |
msgid "Close and save"
|
1774 |
msgstr ""
|
1775 |
|
2039 |
msgid "Placements updated"
|
2040 |
msgstr ""
|
2041 |
|
2042 |
+
#: admin/views/placements.php:24
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2043 |
msgid "Placements are physically places in your theme and posts. You can use them if you plan to change ads and ad groups on the same place without the need to change your templates."
|
2044 |
msgstr ""
|
2045 |
|
2046 |
#. Translators: %s is a URL.
|
2047 |
+
#: admin/views/placements.php:30
|
2048 |
msgid "See also the manual for more information on <a href=\"%s\">placements</a>."
|
2049 |
msgstr ""
|
2050 |
|
2051 |
+
#: admin/views/placements.php:61
|
2052 |
msgid "Output"
|
2053 |
msgstr ""
|
2054 |
|
2055 |
+
#: admin/views/placements.php:65
|
2056 |
msgid "Delivery"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
+
#: admin/views/placements.php:73
|
2060 |
msgid "- show all types -"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
+
#: admin/views/placements.php:80
|
2064 |
msgid "filter by name"
|
2065 |
msgstr ""
|
2066 |
|
2067 |
+
#: admin/views/placements.php:131
|
2068 |
msgid "show usage"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
+
#: admin/views/placements.php:155
|
2072 |
msgid "ad label"
|
2073 |
msgstr ""
|
2074 |
|
2075 |
+
#: admin/views/placements.php:167
|
2076 |
msgid "Inline CSS"
|
2077 |
msgstr ""
|
2078 |
|
2079 |
+
#: admin/views/placements.php:178
|
2080 |
msgid "Use display conditions for placements."
|
2081 |
msgstr ""
|
2082 |
|
2083 |
+
#: admin/views/placements.php:179
|
2084 |
+
#: admin/views/placements.php:188
|
2085 |
msgid "The free version provides conditions on the ad edit page."
|
2086 |
msgstr ""
|
2087 |
|
2088 |
+
#: admin/views/placements.php:187
|
2089 |
msgid "Use visitor conditions for placements."
|
2090 |
msgstr ""
|
2091 |
|
2092 |
+
#: admin/views/placements.php:194
|
2093 |
msgid "Minimum Content Length"
|
2094 |
msgstr ""
|
2095 |
|
2096 |
+
#: admin/views/placements.php:196
|
2097 |
msgid "Minimum length of content before automatically injected ads are allowed in them."
|
2098 |
msgstr ""
|
2099 |
|
2100 |
+
#: admin/views/placements.php:202
|
2101 |
msgid "Words Between Ads"
|
2102 |
msgstr ""
|
2103 |
|
2104 |
+
#: admin/views/placements.php:204
|
2105 |
msgid "A minimum amount of words between automatically injected ads."
|
2106 |
msgstr ""
|
2107 |
|
2108 |
#. Translators: 1: "Options", 2: the name of a placement.
|
2109 |
+
#: admin/views/placements.php:223
|
2110 |
#: modules/import-export/views/page.php:26
|
2111 |
msgid "Options"
|
2112 |
msgstr ""
|
2113 |
|
2114 |
#. Translators: %s is the name of a placement.
|
2115 |
+
#: admin/views/placements.php:235
|
2116 |
msgid "Placement type \"%s\" is missing and was reset to \"default\".<br/>Please check if the responsible add-on is activated."
|
2117 |
msgstr ""
|
2118 |
|
2119 |
+
#: admin/views/placements.php:306
|
2120 |
msgid "template (PHP)"
|
2121 |
msgstr ""
|
2122 |
|
2123 |
+
#: admin/views/placements.php:341
|
2124 |
msgid "Group"
|
2125 |
msgstr ""
|
2126 |
|
2127 |
+
#: admin/views/placements.php:357
|
2128 |
msgid "after"
|
2129 |
msgstr ""
|
2130 |
|
2131 |
+
#: admin/views/placements.php:358
|
2132 |
msgid "before"
|
2133 |
msgstr ""
|
2134 |
|
2135 |
+
#: admin/views/placements.php:371
|
2136 |
msgid "position"
|
2137 |
msgstr ""
|
2138 |
|
2139 |
+
#: admin/views/placements.php:377
|
2140 |
msgid "Important Notice"
|
2141 |
msgstr ""
|
2142 |
|
2143 |
#. Translators: %s is a URL.
|
2144 |
+
#: admin/views/placements.php:400
|
2145 |
msgid "Tutorial: <a href=\"%s\" target=\"_blank\">How to place visible ads in the header of your website</a>."
|
2146 |
msgstr ""
|
2147 |
|
2148 |
+
#: admin/views/placements.php:416
|
2149 |
msgid "show all options"
|
2150 |
msgstr ""
|
2151 |
|
2152 |
+
#: admin/views/placements.php:439
|
2153 |
msgid "edit conditions"
|
2154 |
msgstr ""
|
2155 |
|
2156 |
+
#: admin/views/placements.php:449
|
2157 |
msgctxt "checkbox to remove placement"
|
2158 |
msgid "delete"
|
2159 |
msgstr ""
|
2160 |
|
2161 |
+
#: admin/views/placements.php:456
|
2162 |
msgid "Save Placements"
|
2163 |
msgstr ""
|
2164 |
|
2885 |
msgid "accelerated mobile pages"
|
2886 |
msgstr ""
|
2887 |
|
2888 |
+
#: classes/display-conditions.php:626
|
2889 |
msgctxt "display the terms search field on ad edit page"
|
2890 |
msgid "add more terms"
|
2891 |
msgstr ""
|
2892 |
|
2893 |
+
#: classes/display-conditions.php:630
|
2894 |
msgid "term name or id"
|
2895 |
msgstr ""
|
2896 |
|
2897 |
+
#: classes/display-conditions.php:700
|
2898 |
msgid "title or id"
|
2899 |
msgstr ""
|
2900 |
|
2901 |
+
#: classes/display-conditions.php:755
|
2902 |
#: includes/array_ad_conditions.php:63
|
2903 |
msgid "Home Page"
|
2904 |
msgstr ""
|
2905 |
|
2906 |
+
#: classes/display-conditions.php:756
|
2907 |
#: includes/array_ad_conditions.php:64
|
2908 |
msgid "show on Home page"
|
2909 |
msgstr ""
|
2910 |
|
2911 |
+
#: classes/display-conditions.php:760
|
2912 |
#: includes/array_ad_conditions.php:68
|
2913 |
msgid "Singular Pages"
|
2914 |
msgstr ""
|
2915 |
|
2916 |
+
#: classes/display-conditions.php:761
|
2917 |
#: includes/array_ad_conditions.php:69
|
2918 |
msgid "show on singular pages/posts"
|
2919 |
msgstr ""
|
2920 |
|
2921 |
+
#: classes/display-conditions.php:765
|
2922 |
#: includes/array_ad_conditions.php:73
|
2923 |
msgid "Archive Pages"
|
2924 |
msgstr ""
|
2925 |
|
2926 |
+
#: classes/display-conditions.php:766
|
2927 |
#: includes/array_ad_conditions.php:74
|
2928 |
msgid "show on any type of archive page (category, tag, author and date)"
|
2929 |
msgstr ""
|
2930 |
|
2931 |
+
#: classes/display-conditions.php:770
|
2932 |
#: includes/array_ad_conditions.php:78
|
2933 |
msgid "Search Results"
|
2934 |
msgstr ""
|
2935 |
|
2936 |
+
#: classes/display-conditions.php:771
|
2937 |
#: includes/array_ad_conditions.php:79
|
2938 |
msgid "show on search result pages"
|
2939 |
msgstr ""
|
2940 |
|
2941 |
+
#: classes/display-conditions.php:775
|
2942 |
#: includes/array_ad_conditions.php:83
|
2943 |
msgid "404 Page"
|
2944 |
msgstr ""
|
2945 |
|
2946 |
+
#: classes/display-conditions.php:776
|
2947 |
#: includes/array_ad_conditions.php:84
|
2948 |
msgid "show on 404 error page"
|
2949 |
msgstr ""
|
2950 |
|
2951 |
+
#: classes/display-conditions.php:780
|
2952 |
#: includes/array_ad_conditions.php:88
|
2953 |
msgid "Attachment Pages"
|
2954 |
msgstr ""
|
2955 |
|
2956 |
+
#: classes/display-conditions.php:781
|
2957 |
#: includes/array_ad_conditions.php:89
|
2958 |
msgid "show on attachment pages"
|
2959 |
msgstr ""
|
2960 |
|
2961 |
+
#: classes/display-conditions.php:785
|
2962 |
#: includes/array_ad_conditions.php:93
|
2963 |
msgid "Secondary Queries"
|
2964 |
msgstr ""
|
2965 |
|
2966 |
+
#: classes/display-conditions.php:786
|
2967 |
#: includes/array_ad_conditions.php:94
|
2968 |
msgid "allow ads in secondary queries"
|
2969 |
msgstr ""
|
2970 |
|
2971 |
+
#: classes/display-conditions.php:790
|
2972 |
msgid "RSS Feed"
|
2973 |
msgstr ""
|
2974 |
|
2975 |
+
#: classes/display-conditions.php:791
|
2976 |
msgid "allow ads in RSS Feed"
|
2977 |
msgstr ""
|
2978 |
|
2979 |
+
#: classes/display-conditions.php:795
|
2980 |
msgid "REST API"
|
2981 |
msgstr ""
|
2982 |
|
2983 |
+
#: classes/display-conditions.php:796
|
2984 |
msgid "allow ads in REST API"
|
2985 |
msgstr ""
|
2986 |
|
2987 |
+
#: classes/display-conditions.php:831
|
2988 |
msgid "older than"
|
2989 |
msgstr ""
|
2990 |
|
2991 |
+
#: classes/display-conditions.php:832
|
2992 |
msgid "younger than"
|
2993 |
msgstr ""
|
2994 |
|
2995 |
+
#: classes/display-conditions.php:834
|
2996 |
msgid "days"
|
2997 |
msgstr ""
|
2998 |
|
4298 |
msgid "Update Ad Group"
|
4299 |
msgstr ""
|
4300 |
|
|
|
|
|
|
|
|
|
4301 |
#: public/class-advanced-ads.php:761
|
4302 |
msgid "New Ad Groups Name"
|
4303 |
msgstr ""
|
lib/composer/ClassLoader.php
CHANGED
@@ -10,12 +10,12 @@
|
|
10 |
* file that was distributed with this source code.
|
11 |
*/
|
12 |
|
13 |
-
namespace AdvancedAds\Autoload;
|
14 |
|
15 |
/**
|
16 |
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
|
17 |
*
|
18 |
-
* $loader = new \AdvancedAds\Autoload\ClassLoader();
|
19 |
*
|
20 |
* // register classes with namespaces
|
21 |
* $loader->add('Symfony\Component', __DIR__.'/component');
|
10 |
* file that was distributed with this source code.
|
11 |
*/
|
12 |
|
13 |
+
namespace AdvancedAds\Composer\Autoload;
|
14 |
|
15 |
/**
|
16 |
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
|
17 |
*
|
18 |
+
* $loader = new \AdvancedAds\Composer\Autoload\ClassLoader();
|
19 |
*
|
20 |
* // register classes with namespaces
|
21 |
* $loader->add('Symfony\Component', __DIR__.'/component');
|
lib/composer/autoload_classmap.php
CHANGED
@@ -54,7 +54,7 @@ return array(
|
|
54 |
'Advanced_Ads_Utils' => $baseDir . '/classes/utils.php',
|
55 |
'Advanced_Ads_Visitor_Conditions' => $baseDir . '/classes/visitor-conditions.php',
|
56 |
'Advanced_Ads_Widget' => $baseDir . '/classes/widget.php',
|
57 |
-
|
58 |
'Yoast_I18n_WordPressOrg_v3' => $vendorDir . '/yoast/i18n-module/src/i18n-wordpressorg-v3.php',
|
59 |
'Yoast_I18n_v3' => $vendorDir . '/yoast/i18n-module/src/i18n-v3.php',
|
60 |
);
|
54 |
'Advanced_Ads_Utils' => $baseDir . '/classes/utils.php',
|
55 |
'Advanced_Ads_Visitor_Conditions' => $baseDir . '/classes/visitor-conditions.php',
|
56 |
'Advanced_Ads_Widget' => $baseDir . '/classes/widget.php',
|
57 |
+
|
58 |
'Yoast_I18n_WordPressOrg_v3' => $vendorDir . '/yoast/i18n-module/src/i18n-wordpressorg-v3.php',
|
59 |
'Yoast_I18n_v3' => $vendorDir . '/yoast/i18n-module/src/i18n-v3.php',
|
60 |
);
|
lib/composer/autoload_real.php
CHANGED
@@ -8,13 +8,13 @@ class ComposerAutoloaderInit_advanced_ads
|
|
8 |
|
9 |
public static function loadClassLoader($class)
|
10 |
{
|
11 |
-
if ('AdvancedAds\Autoload\ClassLoader' === $class) {
|
12 |
require __DIR__ . '/ClassLoader.php';
|
13 |
}
|
14 |
}
|
15 |
|
16 |
/**
|
17 |
-
* @return \AdvancedAds\Autoload\ClassLoader
|
18 |
*/
|
19 |
public static function getLoader()
|
20 |
{
|
@@ -25,14 +25,14 @@ class ComposerAutoloaderInit_advanced_ads
|
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
spl_autoload_register(array('ComposerAutoloaderInit_advanced_ads', 'loadClassLoader'), true, true);
|
28 |
-
self::$loader = $loader = new \AdvancedAds\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
29 |
spl_autoload_unregister(array('ComposerAutoloaderInit_advanced_ads', 'loadClassLoader'));
|
30 |
|
31 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
32 |
if ($useStaticLoader) {
|
33 |
require __DIR__ . '/autoload_static.php';
|
34 |
|
35 |
-
call_user_func(\AdvancedAds\Autoload\ComposerStaticInit_advanced_ads::getInitializer($loader));
|
36 |
} else {
|
37 |
$classMap = require __DIR__ . '/autoload_classmap.php';
|
38 |
if ($classMap) {
|
8 |
|
9 |
public static function loadClassLoader($class)
|
10 |
{
|
11 |
+
if ('AdvancedAds\Composer\Autoload\ClassLoader' === $class) {
|
12 |
require __DIR__ . '/ClassLoader.php';
|
13 |
}
|
14 |
}
|
15 |
|
16 |
/**
|
17 |
+
* @return \AdvancedAds\Composer\Autoload\ClassLoader
|
18 |
*/
|
19 |
public static function getLoader()
|
20 |
{
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
spl_autoload_register(array('ComposerAutoloaderInit_advanced_ads', 'loadClassLoader'), true, true);
|
28 |
+
self::$loader = $loader = new \AdvancedAds\Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
29 |
spl_autoload_unregister(array('ComposerAutoloaderInit_advanced_ads', 'loadClassLoader'));
|
30 |
|
31 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
32 |
if ($useStaticLoader) {
|
33 |
require __DIR__ . '/autoload_static.php';
|
34 |
|
35 |
+
call_user_func(\AdvancedAds\Composer\Autoload\ComposerStaticInit_advanced_ads::getInitializer($loader));
|
36 |
} else {
|
37 |
$classMap = require __DIR__ . '/autoload_classmap.php';
|
38 |
if ($classMap) {
|
lib/composer/autoload_static.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_static.php @generated by Composer
|
4 |
|
5 |
-
namespace AdvancedAds\Autoload;
|
6 |
|
7 |
class ComposerStaticInit_advanced_ads
|
8 |
{
|
@@ -55,7 +55,7 @@ class ComposerStaticInit_advanced_ads
|
|
55 |
'Advanced_Ads_Utils' => __DIR__ . '/../..' . '/classes/utils.php',
|
56 |
'Advanced_Ads_Visitor_Conditions' => __DIR__ . '/../..' . '/classes/visitor-conditions.php',
|
57 |
'Advanced_Ads_Widget' => __DIR__ . '/../..' . '/classes/widget.php',
|
58 |
-
|
59 |
'Yoast_I18n_WordPressOrg_v3' => __DIR__ . '/..' . '/yoast/i18n-module/src/i18n-wordpressorg-v3.php',
|
60 |
'Yoast_I18n_v3' => __DIR__ . '/..' . '/yoast/i18n-module/src/i18n-v3.php',
|
61 |
);
|
2 |
|
3 |
// autoload_static.php @generated by Composer
|
4 |
|
5 |
+
namespace AdvancedAds\Composer\Autoload;
|
6 |
|
7 |
class ComposerStaticInit_advanced_ads
|
8 |
{
|
55 |
'Advanced_Ads_Utils' => __DIR__ . '/../..' . '/classes/utils.php',
|
56 |
'Advanced_Ads_Visitor_Conditions' => __DIR__ . '/../..' . '/classes/visitor-conditions.php',
|
57 |
'Advanced_Ads_Widget' => __DIR__ . '/../..' . '/classes/widget.php',
|
58 |
+
|
59 |
'Yoast_I18n_WordPressOrg_v3' => __DIR__ . '/..' . '/yoast/i18n-module/src/i18n-wordpressorg-v3.php',
|
60 |
'Yoast_I18n_v3' => __DIR__ . '/..' . '/yoast/i18n-module/src/i18n-v3.php',
|
61 |
);
|
public/class-advanced-ads.php
CHANGED
@@ -757,7 +757,7 @@ class Advanced_Ads {
|
|
757 |
'parent_item_colon' => __( 'Parent Ad Groups:', 'advanced-ads' ),
|
758 |
'edit_item' => __( 'Edit Ad Group', 'advanced-ads' ),
|
759 |
'update_item' => __( 'Update Ad Group', 'advanced-ads' ),
|
760 |
-
'add_new_item' => __( '
|
761 |
'new_item_name' => __( 'New Ad Groups Name', 'advanced-ads' ),
|
762 |
'menu_name' => __( 'Groups', 'advanced-ads' ),
|
763 |
'not_found' => __( 'No Ad Group found', 'advanced-ads' ),
|
757 |
'parent_item_colon' => __( 'Parent Ad Groups:', 'advanced-ads' ),
|
758 |
'edit_item' => __( 'Edit Ad Group', 'advanced-ads' ),
|
759 |
'update_item' => __( 'Update Ad Group', 'advanced-ads' ),
|
760 |
+
'add_new_item' => __( 'New Ad Group', 'advanced-ads' ),
|
761 |
'new_item_name' => __( 'New Ad Groups Name', 'advanced-ads' ),
|
762 |
'menu_name' => __( 'Groups', 'advanced-ads' ),
|
763 |
'not_found' => __( 'No Ad Group found', 'advanced-ads' ),
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: ads, adsense, amp, ads.txt, ad rotations, ad blocker, amazon, banner, clic
|
|
4 |
Requires at least: 4.9
|
5 |
Tested up to: 5.9
|
6 |
Requires PHP: 5.6
|
7 |
-
Stable tag: 1.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -33,7 +33,10 @@ Would you like to know if there is a certain feature, what the optimized setup w
|
|
33 |
|
34 |
Advanced Ads allowed us to grow from 0 to 100 MM monthly ad impressions. Benefit from our experience as a publisher and monetize your website today!
|
35 |
|
36 |
-
|
|
|
|
|
|
|
37 |
|
38 |
= ad management =
|
39 |
|
@@ -48,21 +51,21 @@ Advanced Ads allowed us to grow from 0 to 100 MM monthly ad impressions. Benefit
|
|
48 |
choose between different ad types that enable you to:
|
49 |
|
50 |
* insert ads and banners from all ad and affiliate networks (e.g., Google AdSense, Amazon, BuySellAds, Google Ad Manager (formerly Google DoubleClick for Publishers, DFP), Ezoic, media.net, Booking.com, Tradedoubler, Awin, Getyourguide, The Moneytizer, Infolinks...)
|
51 |
-
* dedicated support for all types of Google AdSense ads, including text and display ads, native ads (In-article, In-feed,
|
52 |
* display images and image banners
|
53 |
* create content-rich ads with the WordPress TinyMCE editor
|
54 |
* insert contextual Amazon Native Shopping Ads
|
55 |
* inject HTML, CSS, Javascript or PHP code
|
56 |
* use shortcodes within ads (to also deliver advertisements from another ad plugin like Ad Inserter, AdRotate, Quick AdSense, WP Bannerize, or the Google AdSense Plugin WP QUADS)
|
57 |
|
58 |
-
= display ads for
|
59 |
|
60 |
* auto-inject ads via placements
|
61 |
* use functions to display ads in template files
|
62 |
* use shortcodes to place ads manually in post content
|
63 |
* show ads in the sidebar and in widgets
|
64 |
* disable all ads on specific pages
|
65 |
-
* display multiple ads (ad
|
66 |
* display a customizable ad label, e.g., “Advertisements” above each banner ad
|
67 |
|
68 |
= display conditions =
|
@@ -73,7 +76,7 @@ show ads based on content. [List of all display conditions](https://wpadvancedad
|
|
73 |
* posts by category, tags, taxonomies, author, and age
|
74 |
* archive pages by category, tags, taxonomies
|
75 |
* special page types like 404, attachment and front page
|
76 |
-
* post and pages by contained keywords (keyword targeting) or URL parameters, included in [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro
|
77 |
* hide ads on secondary queries (e.g., posts in sidebars)
|
78 |
* display or hide banners within the post feed
|
79 |
* hide all ads from specific page types, e.g., 404 pages, feed
|
@@ -85,9 +88,10 @@ serve ads by conditions based on the visitor. [List of all visitor conditions](h
|
|
85 |
|
86 |
* display or hide a banner by device: mobile and tablet or desktop
|
87 |
* display or hide a banner by role and for logged-in visitors
|
88 |
-
* advanced visitor conditions: previously visited URL (referrer), user capability, browser language, browser and device included in [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro
|
89 |
-
* display ads by geolocation with the [Geo Targeting add-on](https://wpadvancedads.com/add-ons/geo-targeting
|
90 |
-
|
|
|
91 |
|
92 |
> **Fantastic plugin and outstanding support**
|
93 |
> I tried at least three other ad plugins for WordPress and ‘Advanced Ads’ is by and far the best one. Last but not least in the support. The first port of call are a number of excellent tutorials. And finally the hands on support. I don’t quite know how he does it but the speed and depth of responses are absolutely amazing.
|
@@ -102,15 +106,15 @@ Placements to insert ads in pre-defined positions in your theme and content. [Li
|
|
102 |
* ads before closing `</head>` tag
|
103 |
* ads in the footer
|
104 |
* create [split tests and A/B testing](https://wpadvancedads.com/ab-testing-wordpress/)
|
105 |
-
* many more ad positions with [add-ons](https://wpadvancedads.com/add-ons
|
106 |
* automatic insertion of any kind of footer and header code, not only advertising
|
107 |
|
108 |
= mobile devices =
|
109 |
|
110 |
* display ads on mobile and tablets or desktop only
|
111 |
* display responsive image ads
|
112 |
-
* ads for specific browser sizes only using [Responsive Ads](https://wpadvancedads.com/add-ons/responsive-ads
|
113 |
-
* inserting ads on AMP pages with [Responsive Ads](https://wpadvancedads.com/add-ons/responsive-ads
|
114 |
|
115 |
= Google AdSense =
|
116 |
|
@@ -120,7 +124,7 @@ Amazing features of the most powerful and easy Google AdSense plugin.
|
|
120 |
* pull ad units directly from your Google AdSense account
|
121 |
* show AdSense revenue in WP Admin
|
122 |
* change settings of your Google AdSense ads directly from your WordPress backend
|
123 |
-
* supports all Google AdSense ad types, including Google AdSense display ads, native ads like In-feed ads, In-article ads,
|
124 |
* change type and sizes of AdSense ads without going into your Google AdSense account
|
125 |
* hide Google AdSense advertisements on 404 pages by default (to comply with Google AdSense terms)
|
126 |
* insert Google AdSense code for verification and AdSense Auto Ads
|
@@ -128,8 +132,8 @@ Amazing features of the most powerful and easy Google AdSense plugin.
|
|
128 |
* easy Ad Health integration and Google AdSense violation checks
|
129 |
* option to remove the Google AdSense background color
|
130 |
* place Google AdSense In-feed ads using the also free [In-feed add-on](https://wordpress.org/plugins/advanced-ads-adsense-in-feed/)
|
131 |
-
* assistant for exact sizes of responsive Google AdSense ads with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads
|
132 |
-
* convert Google AdSense ads into AMP ads automatically with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads
|
133 |
* ads.txt generated with the correct AdSense information automatically
|
134 |
* works along with Google Site Kit or can replace it if you want to [control your ad placements](https://wpadvancedads.com/place-adsense-ad-unit-manually/)
|
135 |
|
@@ -146,11 +150,27 @@ Like j4ckson185, there are thousands of happy AdSense users:
|
|
146 |
|
147 |
https://vimeo.com/577170591
|
148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
= ad blocker =
|
150 |
|
151 |
* basic features to prevent ads from being removed by AdBlock and other ad blockers
|
152 |
* prevent ad blockers from breaking sites where plugin scripts are running
|
153 |
-
* ad blocking detection: show alternative content to ad block users with [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro
|
154 |
|
155 |
Learn more on the [plugin homepage](https://wpadvancedads.com).
|
156 |
|
@@ -158,22 +178,7 @@ Thank you for motivating us with your [positive review](https://wordpress.org/su
|
|
158 |
|
159 |
Localizations: Arabic, Chinese, Czech, Danish, Dutch, English, French, German, Hebrew, Hungarian, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Turkish, Vietnamese
|
160 |
|
161 |
-
|
162 |
-
>
|
163 |
-
> * all add-ons include priority email support
|
164 |
-
> * [Advanced Ads Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/) – powerful tools for ad optimizations: cache-busting, more placements, lazy loading, ad blocker module, click fraud protection, and many more
|
165 |
-
> * [Tracking](https://wpadvancedads.com/add-ons/tracking/) – track ad impressions and ad clicks with local methods or Google Analytics
|
166 |
-
> * [Responsive Ads](https://wpadvancedads.com/add-ons/responsive-ads/) – target ads to specific browser sizes and create ads for AMP
|
167 |
-
> * [Google Ad Manager Integration](https://wpadvancedads.com/add-ons/google-ad-manager/) – a quick and error-free way to load ad units from your Google Ad Manager (formerly Google DoubleClick for Publishers, DFP) account without touching any ad codes
|
168 |
-
> * [Geo Targeting](https://wpadvancedads.com/add-ons/geo-targeting/) – display ads based on the geo location of the visitor
|
169 |
-
> * [Sticky Ads](https://wpadvancedads.com/add-ons/sticky-ads/) – increase click rates with fixed, sticky, and anchor ads
|
170 |
-
> * [Fixed Widget for WordPress](https://wordpress.org/plugins/q2w3-fixed-widget/) – turn sidebar widgets into performant fixed sticky ads
|
171 |
-
> * [PopUp and Layer Ads](https://wpadvancedads.com/add-ons/popup-and-layer-ads/) – display ads and other content in layers, popups, and interstitials
|
172 |
-
> * [Selling Ads](https://wpadvancedads.com/add-ons/selling-ads/) - allows you to sell ads on your website fully automated, including payments and advertiser profiles
|
173 |
-
> * [Ad Slider](https://wpadvancedads.com/add-ons/slider/) – create a simple slider from your ads
|
174 |
-
|
175 |
-
If you have problems with Advanced Ads, please reach out to [our support](https://wordpress.org/support/plugin/advanced-ads) or open a [new topic](https://wordpress.org/support/plugin/advanced-ads/#new-topic-0) in our forums on wordpress.org
|
176 |
-
.
|
177 |
|
178 |
= Integrations =
|
179 |
|
@@ -183,6 +188,7 @@ Advanced Ads integrates with plenty of other plugins:
|
|
183 |
- BuddyPress – [How to add ads on BuddyPress pages](https://wpadvancedads.com/ads-on-buddypress-pages/)
|
184 |
- bbPress – [How to show ads on bbPress pages?](https://wpadvancedads.com/ads-in-bbpress/)
|
185 |
- Cookie Consent, Borlabs Cookies, Complianz, GDPR Cookie Consent, and other content manager – [How to show ads based on visitors’ consent](https://wpadvancedads.com/manual/ad-cookie-consent/)
|
|
|
186 |
- GamiPress – [How to target ads on GamiPress websites](https://wpadvancedads.com/manual/gamipress-ads/)
|
187 |
- Genesis – [Genesis Ads add-on](https://wpadvancedads.com/add-ons/genesis-ads/)
|
188 |
- MailPoet - [How to integrate Advanced Ads in MailPoet Newsletters](https://wpadvancedads.com/mailpoet-newsletters/)
|
@@ -290,8 +296,8 @@ Advanced Ads can be used along Google Site Kit or replace it if you need more co
|
|
290 |
|
291 |
= Is the plugin compatible with page builders? =
|
292 |
|
293 |
-
Yes. It works out of the box with all site builders that allow shortcodes or widgets, like Elementor, SiteOrigin, Beaver Builder, WPBakery Page Builder (formerly Visual Composer), [Nimble Page Builder](https://wordpress.org/plugins/nimble-builder/), and others.
|
294 |
-
There is also a [free add-on to support the WPBakery Page Builder
|
295 |
|
296 |
= Will ads show up for ad block users? =
|
297 |
|
@@ -324,15 +330,10 @@ Yes. You can use plenty of [hooks](https://wpadvancedads.com/codex/) to customiz
|
|
324 |
|
325 |
== Changelog ==
|
326 |
|
327 |
-
= 1.
|
328 |
-
|
329 |
-
- Improvement:
|
330 |
-
-
|
331 |
-
-
|
332 |
-
-
|
333 |
-
- Fix:
|
334 |
-
- Fix: prevent creating unneeded group wrapper around Advanced Ads block
|
335 |
-
- Fix: escape the ad title on groups screen to prevent authenticated XSS
|
336 |
-
- Fix: prevent authenticated XSS in plain text ads if `DISALLOW_UNFILTERED_HTML` is set
|
337 |
-
- Fix: prevent authenticated RCE in plain text ads if `DISALLOW_FILE_EDIT` is set
|
338 |
-
- Fix: rename "Responsive (Matched Content)" AdSense ad type to "Multiplex ads"
|
4 |
Requires at least: 4.9
|
5 |
Tested up to: 5.9
|
6 |
Requires PHP: 5.6
|
7 |
+
Stable tag: 1.33.0
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
33 |
|
34 |
Advanced Ads allowed us to grow from 0 to 100 MM monthly ad impressions. Benefit from our experience as a publisher and monetize your website today!
|
35 |
|
36 |
+
> **Advanced Ads All Access**
|
37 |
+
>This plugin is the lite version of the Advanced Ads plugin that comes with all the features you will ever need to optimize your ads and increase your revenues, including advanced ad targeting, split tests, click fraud protection, lazy loading, background, popups and sticky ads, full AMP support, adblocker detection, the most comfortable Google Ad Manager integration, and tons more. [Click here to purchase the best premium WordPress ad management plugin now!](https://wpadvancedads.com/add-ons/all-access/?utm_source=wporg&utm_medium=link&utm_campaign=wp-all-access)
|
38 |
+
|
39 |
+
[Full Feature List](https://wpadvancedads.com/features/?utm_source=wporg&utm_medium=link&utm_campaign=wp-features)
|
40 |
|
41 |
= ad management =
|
42 |
|
51 |
choose between different ad types that enable you to:
|
52 |
|
53 |
* insert ads and banners from all ad and affiliate networks (e.g., Google AdSense, Amazon, BuySellAds, Google Ad Manager (formerly Google DoubleClick for Publishers, DFP), Ezoic, media.net, Booking.com, Tradedoubler, Awin, Getyourguide, The Moneytizer, Infolinks...)
|
54 |
+
* dedicated support for all types of Google AdSense ads, including text and display ads, native ads (In-article, In-feed, Multiplex ads), Auto ads, and Auto ads for AMP
|
55 |
* display images and image banners
|
56 |
* create content-rich ads with the WordPress TinyMCE editor
|
57 |
* insert contextual Amazon Native Shopping Ads
|
58 |
* inject HTML, CSS, Javascript or PHP code
|
59 |
* use shortcodes within ads (to also deliver advertisements from another ad plugin like Ad Inserter, AdRotate, Quick AdSense, WP Bannerize, or the Google AdSense Plugin WP QUADS)
|
60 |
|
61 |
+
= display ads for WordPress =
|
62 |
|
63 |
* auto-inject ads via placements
|
64 |
* use functions to display ads in template files
|
65 |
* use shortcodes to place ads manually in post content
|
66 |
* show ads in the sidebar and in widgets
|
67 |
* disable all ads on specific pages
|
68 |
+
* display multiple ads (ad grids)
|
69 |
* display a customizable ad label, e.g., “Advertisements” above each banner ad
|
70 |
|
71 |
= display conditions =
|
76 |
* posts by category, tags, taxonomies, author, and age
|
77 |
* archive pages by category, tags, taxonomies
|
78 |
* special page types like 404, attachment and front page
|
79 |
+
* post and pages by contained keywords [(keyword targeting)](https://wpadvancedads.com/manual/ads-based-on-keywords/?utm_source=wporg&utm_medium=link&utm_campaign=features) or URL parameters, included in [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/?utm_source=wporg&utm_medium=link&utm_campaign=wp-features-pro-1)
|
80 |
* hide ads on secondary queries (e.g., posts in sidebars)
|
81 |
* display or hide banners within the post feed
|
82 |
* hide all ads from specific page types, e.g., 404 pages, feed
|
88 |
|
89 |
* display or hide a banner by device: mobile and tablet or desktop
|
90 |
* display or hide a banner by role and for logged-in visitors
|
91 |
+
* advanced visitor conditions: previously visited URL (referrer), user capability, browser language, browser and device included in [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/?utm_source=wporg&utm_medium=link&utm_campaign=wp-features-pro-2)
|
92 |
+
* display ads by geolocation with the [Geo Targeting add-on](https://wpadvancedads.com/add-ons/geo-targeting/?utm_source=wporg&utm_medium=link&utm_campaign=features
|
93 |
+
)
|
94 |
+
* display ads by browser width with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/?utm_source=wporg&utm_medium=link&utm_campaign=wp-features-responsive-1)
|
95 |
|
96 |
> **Fantastic plugin and outstanding support**
|
97 |
> I tried at least three other ad plugins for WordPress and ‘Advanced Ads’ is by and far the best one. Last but not least in the support. The first port of call are a number of excellent tutorials. And finally the hands on support. I don’t quite know how he does it but the speed and depth of responses are absolutely amazing.
|
106 |
* ads before closing `</head>` tag
|
107 |
* ads in the footer
|
108 |
* create [split tests and A/B testing](https://wpadvancedads.com/ab-testing-wordpress/)
|
109 |
+
* many more ad positions with [add-ons](https://wpadvancedads.com/add-ons/?utm_source=wporg&utm_medium=link&utm_campaign=wp-features)
|
110 |
* automatic insertion of any kind of footer and header code, not only advertising
|
111 |
|
112 |
= mobile devices =
|
113 |
|
114 |
* display ads on mobile and tablets or desktop only
|
115 |
* display responsive image ads
|
116 |
+
* ads for specific browser sizes only using [Responsive Ads](https://wpadvancedads.com/add-ons/responsive-ads/?utm_source=wporg&utm_medium=link&utm_campaign=wp-features-responsive-2)
|
117 |
+
* inserting ads on AMP pages with [Responsive Ads](https://wpadvancedads.com/add-ons/responsive-ads/?utm_source=wporg&utm_medium=link&utm_campaign=wp-features-responsive-3)
|
118 |
|
119 |
= Google AdSense =
|
120 |
|
124 |
* pull ad units directly from your Google AdSense account
|
125 |
* show AdSense revenue in WP Admin
|
126 |
* change settings of your Google AdSense ads directly from your WordPress backend
|
127 |
+
* supports all Google AdSense ad types, including Google AdSense display ads, native ads like In-feed ads, In-article ads, Matched content ads, Multliplex ads, Google AdSense Auto ads, and Google AdSense Auto ads for AMP
|
128 |
* change type and sizes of AdSense ads without going into your Google AdSense account
|
129 |
* hide Google AdSense advertisements on 404 pages by default (to comply with Google AdSense terms)
|
130 |
* insert Google AdSense code for verification and AdSense Auto Ads
|
132 |
* easy Ad Health integration and Google AdSense violation checks
|
133 |
* option to remove the Google AdSense background color
|
134 |
* place Google AdSense In-feed ads using the also free [In-feed add-on](https://wordpress.org/plugins/advanced-ads-adsense-in-feed/)
|
135 |
+
* assistant for exact sizes of responsive Google AdSense ads with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/?utm_source=wporg&utm_medium=link&utm_campaign=wp-features-responsive-4)
|
136 |
+
* convert Google AdSense ads into AMP ads automatically with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/?utm_source=wporg&utm_medium=link&utm_campaign=wp-features-responsive-5)
|
137 |
* ads.txt generated with the correct AdSense information automatically
|
138 |
* works along with Google Site Kit or can replace it if you want to [control your ad placements](https://wpadvancedads.com/place-adsense-ad-unit-manually/)
|
139 |
|
150 |
|
151 |
https://vimeo.com/577170591
|
152 |
|
153 |
+
> <strong>Add-Ons</strong>
|
154 |
+
>
|
155 |
+
> * all add-ons include priority email support
|
156 |
+
> * [All Access](https://wpadvancedads.com/add-ons/all-access/?utm_source=wporg&utm_medium=link&utm_campaign=wp-add-ons) – includes all available add-ons
|
157 |
+
> * [Advanced Ads Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/?utm_source=wporg&utm_medium=link&utm_campaign=wp-add-ons) – powerful tools for ad optimizations: cache-busting, more placements, [lazy loading](https://wpadvancedads.com/lazy-load-ads/?utm_source=wporg&utm_medium=link&utm_campaign=features), ad blocker module, [click fraud protection](https://wpadvancedads.com/manual/click-fraud-protection/?utm_source=wporg&utm_medium=link&utm_campaign=features), and many more
|
158 |
+
> * [Tracking](https://wpadvancedads.com/add-ons/tracking/?utm_source=wporg&utm_medium=link&utm_campaign=wp-add-ons) – track ad impressions and ad clicks with local methods or Google Analytics
|
159 |
+
> * [Responsive Ads](https://wpadvancedads.com/add-ons/responsive-ads/?utm_source=wporg&utm_medium=link&utm_campaign=wp-add-ons) – target ads to specific browser sizes and create ads for AMP
|
160 |
+
> * [Google Ad Manager Integration](https://wpadvancedads.com/add-ons/google-ad-manager/?utm_source=wporg&utm_medium=link&utm_campaign=wp-add-ons) – a quick and error-free way to load ad units from your Google Ad Manager (formerly Google DoubleClick for Publishers, DFP) account without touching any ad codes
|
161 |
+
> * [Geo Targeting](https://wpadvancedads.com/add-ons/geo-targeting/?utm_source=wporg&utm_medium=link&utm_campaign=wp-add-ons) – display ads based on the geo location of the visitor
|
162 |
+
> * [Sticky Ads](https://wpadvancedads.com/add-ons/sticky-ads/?utm_source=wporg&utm_medium=link&utm_campaign=wp-add-ons) – increase click rates with fixed, sticky, and anchor ads
|
163 |
+
> * [Fixed Widget for WordPress](https://wordpress.org/plugins/q2w3-fixed-widget/) – turn sidebar widgets into performant fixed sticky ads
|
164 |
+
> * [PopUp and Layer Ads](https://wpadvancedads.com/add-ons/popup-and-layer-ads/?utm_source=wporg&utm_medium=link&utm_campaign=wp-add-ons) – display ads and other content in layers, popups, and interstitials
|
165 |
+
> * [Selling Ads](https://wpadvancedads.com/add-ons/selling-ads/?utm_source=wporg&utm_medium=link&utm_campaign=wp-add-ons) - allows you to sell ads on your website fully automated, including payments and advertiser profiles
|
166 |
+
> * [Ad Slider](https://wpadvancedads.com/add-ons/slider/?utm_source=wporg&utm_medium=link&utm_campaign=wp-add-ons) – create a simple slider from your ads
|
167 |
+
> * [Full Feature List](https://wpadvancedads.com/features/?utm_source=wporg&utm_medium=link&utm_campaign=wp-add-ons)
|
168 |
+
|
169 |
= ad blocker =
|
170 |
|
171 |
* basic features to prevent ads from being removed by AdBlock and other ad blockers
|
172 |
* prevent ad blockers from breaking sites where plugin scripts are running
|
173 |
+
* ad blocking detection: show alternative content to ad block users with [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/?utm_source=wporg&utm_medium=link&utm_campaign=wp-features-pro-3) and improve the monetization of your website
|
174 |
|
175 |
Learn more on the [plugin homepage](https://wpadvancedads.com).
|
176 |
|
178 |
|
179 |
Localizations: Arabic, Chinese, Czech, Danish, Dutch, English, French, German, Hebrew, Hungarian, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Turkish, Vietnamese
|
180 |
|
181 |
+
If you have problems with Advanced Ads, please open a [new topic](https://wordpress.org/support/plugin/advanced-ads/#new-topic-0) in our forums on wordpress.org, or reach out to our [premium support](https://wpadvancedads.com/support/), if you have an active license.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
|
183 |
= Integrations =
|
184 |
|
188 |
- BuddyPress – [How to add ads on BuddyPress pages](https://wpadvancedads.com/ads-on-buddypress-pages/)
|
189 |
- bbPress – [How to show ads on bbPress pages?](https://wpadvancedads.com/ads-in-bbpress/)
|
190 |
- Cookie Consent, Borlabs Cookies, Complianz, GDPR Cookie Consent, and other content manager – [How to show ads based on visitors’ consent](https://wpadvancedads.com/manual/ad-cookie-consent/)
|
191 |
+
- Elementor - [How to create and implement ads in Elementor](https://wpadvancedads.com/elementor-ads/)
|
192 |
- GamiPress – [How to target ads on GamiPress websites](https://wpadvancedads.com/manual/gamipress-ads/)
|
193 |
- Genesis – [Genesis Ads add-on](https://wpadvancedads.com/add-ons/genesis-ads/)
|
194 |
- MailPoet - [How to integrate Advanced Ads in MailPoet Newsletters](https://wpadvancedads.com/mailpoet-newsletters/)
|
296 |
|
297 |
= Is the plugin compatible with page builders? =
|
298 |
|
299 |
+
Yes. It works out of the box with all site builders that allow shortcodes or widgets, like [Elementor](https://wpadvancedads.com/elementor-ads/), SiteOrigin, [Beaver Builder](https://wpadvancedads.com/beaver-builder-ads/), WPBakery Page Builder (formerly Visual Composer), [Nimble Page Builder](https://wordpress.org/plugins/nimble-builder/), and others.
|
300 |
+
There is also a [free add-on to support the WPBakery Page Builder](https://wordpress.org/plugins/ads-for-visual-composer/) (formerly Visual Composer).
|
301 |
|
302 |
= Will ads show up for ad block users? =
|
303 |
|
330 |
|
331 |
== Changelog ==
|
332 |
|
333 |
+
= 1.33.0 (March 29, 2022) =
|
334 |
+
|
335 |
+
- Improvement: introduce new header on plugin-related pages in WP Admin
|
336 |
+
- Improvement: better highlight selected condition options
|
337 |
+
- Improvement: prevent admin notices from jumping on Advanced Ads pages
|
338 |
+
- Improvement: consistently call the overview page "Dashboard" in the page title and menu
|
339 |
+
- Fix: remove default "Visibility" setting from ad edit page to avoid confusion
|
|
|
|
|
|
|
|
|
|