Version Description
FREE = * [change] Better W3 Total Cache support * [fix] Post injection not always showing with multiple groups * [fix] Removed obsolete useragent column from database
Download this release
Release Info
Developer | adegans |
Plugin | AdRotate Banner Manager |
Version | 3.14.2 |
Comparing to | |
See all releases |
Code changes from version 3.14.1 to 3.14.2
- adrotate-functions.php +22 -13
- adrotate-manage-publisher.php +23 -23
- adrotate-output.php +52 -68
- adrotate-setup.php +6 -1
- adrotate-widget.php +23 -19
- adrotate.php +3 -3
- dashboard/adrotatepro.php +14 -21
- dashboard/info.php +40 -48
- dashboard/settings/maintenance.php +6 -0
- images/{adrotate-logo-60x60.png → logo-60x60.png} +0 -0
- readme.txt +25 -15
adrotate-functions.php
CHANGED
@@ -28,19 +28,28 @@ function adrotate_shortcode($atts, $content = null) {
|
|
28 |
if(!empty($atts['site'])) $site = 0; // Not supported in free version
|
29 |
|
30 |
$output = '';
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
|
42 |
-
if($adrotate_config['w3caching'] == "Y") $output .= '<!-- /mfunc -->';
|
43 |
-
|
44 |
return $output;
|
45 |
}
|
46 |
|
@@ -168,7 +177,7 @@ function adrotate_count_impression($ad, $group = 0, $blog_id = 0, $impression_ti
|
|
168 |
$wpdb->insert($wpdb->prefix.'adrotate_stats', array('ad' => $ad, 'group' => $group, 'thetime' => $today, 'clicks' => 0, 'impressions' => 1));
|
169 |
}
|
170 |
|
171 |
-
$wpdb->insert($wpdb->prefix."adrotate_tracker", array('ipaddress' => $remote_ip, 'timer' => $now, 'bannerid' => $ad, 'stat' => 'i', '
|
172 |
}
|
173 |
}
|
174 |
}
|
@@ -248,7 +257,7 @@ function adrotate_click_callback() {
|
|
248 |
$wpdb->insert($wpdb->prefix.'adrotate_stats', array('ad' => $ad, 'group' => $group, 'thetime' => $today, 'clicks' => 1, 'impressions' => 1));
|
249 |
}
|
250 |
|
251 |
-
$wpdb->insert($wpdb->prefix.'adrotate_tracker', array('ipaddress' => $remote_ip, 'timer' => $now, 'bannerid' => $ad, 'stat' => 'c', '
|
252 |
}
|
253 |
}
|
254 |
}
|
28 |
if(!empty($atts['site'])) $site = 0; // Not supported in free version
|
29 |
|
30 |
$output = '';
|
31 |
+
if($adrotate_config['w3caching'] == "Y") {
|
32 |
+
$output .= '<!-- mfunc '.W3TC_DYNAMIC_SECURITY.' -->';
|
33 |
+
|
34 |
+
if($banner_id > 0 AND ($group_ids == 0 OR $group_ids > 0)) { // Show one Ad
|
35 |
+
$output .= 'echo adrotate_ad('.$banner_id.', true, 0, 0);';
|
36 |
+
}
|
37 |
+
|
38 |
+
if($banner_id == 0 AND $group_ids > 0) { // Show group
|
39 |
+
$output .= 'echo adrotate_group('.$group_ids.', 0, 0, 0);';
|
40 |
+
}
|
41 |
+
|
42 |
+
$output .= '<!-- /mfunc '.W3TC_DYNAMIC_SECURITY.' -->';
|
43 |
+
} else {
|
44 |
+
if($banner_id > 0 AND ($group_ids == 0 OR $group_ids > 0)) { // Show one Ad
|
45 |
+
$output .= adrotate_ad($banner_id, true, 0, 0);
|
46 |
+
}
|
47 |
+
|
48 |
+
if($banner_id == 0 AND $group_ids > 0) { // Show group
|
49 |
+
$output .= adrotate_group($group_ids, 0, 0, 0);
|
50 |
+
}
|
51 |
}
|
52 |
|
|
|
|
|
53 |
return $output;
|
54 |
}
|
55 |
|
177 |
$wpdb->insert($wpdb->prefix.'adrotate_stats', array('ad' => $ad, 'group' => $group, 'thetime' => $today, 'clicks' => 0, 'impressions' => 1));
|
178 |
}
|
179 |
|
180 |
+
$wpdb->insert($wpdb->prefix."adrotate_tracker", array('ipaddress' => $remote_ip, 'timer' => $now, 'bannerid' => $ad, 'stat' => 'i', 'country' => '', 'city' => ''));
|
181 |
}
|
182 |
}
|
183 |
}
|
257 |
$wpdb->insert($wpdb->prefix.'adrotate_stats', array('ad' => $ad, 'group' => $group, 'thetime' => $today, 'clicks' => 1, 'impressions' => 1));
|
258 |
}
|
259 |
|
260 |
+
$wpdb->insert($wpdb->prefix.'adrotate_tracker', array('ipaddress' => $remote_ip, 'timer' => $now, 'bannerid' => $ad, 'stat' => 'c', 'country' => '', 'city' => ''));
|
261 |
}
|
262 |
}
|
263 |
}
|
adrotate-manage-publisher.php
CHANGED
@@ -138,7 +138,7 @@ function adrotate_insert_input() {
|
|
138 |
|
139 |
// Save schedule for new ads or update the existing one
|
140 |
if($type != 'empty') {
|
141 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
142 |
}
|
143 |
$wpdb->update($wpdb->prefix.'adrotate_schedule', array('starttime' => $startdate, 'stoptime' => $enddate, 'maxclicks' => $maxclicks, 'maximpressions' => $maxshown), array('id' => $schedule_id));
|
144 |
|
@@ -146,11 +146,11 @@ function adrotate_insert_input() {
|
|
146 |
$wpdb->update($wpdb->prefix.'adrotate', array('title' => $title, 'bannercode' => $bannercode, 'updated' => $thetime, 'author' => $author, 'imagetype' => $imagetype, 'image' => $image, 'tracker' => $tracker, 'responsive' => $responsive, 'type' => $active, 'sortorder' => $sortorder), array('id' => $id));
|
147 |
|
148 |
// Determine Responsive requirement
|
149 |
-
$responsive_count = $wpdb->get_var("SELECT COUNT(*) as `total` FROM `
|
150 |
update_option('adrotate_responsive_required', $responsive_count);
|
151 |
|
152 |
// Fetch group records for the ad
|
153 |
-
$groupmeta = $wpdb->get_results($wpdb->prepare("SELECT `group` FROM `
|
154 |
foreach($groupmeta as $meta) {
|
155 |
$group_array[] = $meta->group;
|
156 |
}
|
@@ -168,7 +168,7 @@ function adrotate_insert_input() {
|
|
168 |
// Remove groups from this ad
|
169 |
$delete = array_diff($group_array, $groups);
|
170 |
foreach($delete as &$value) {
|
171 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
172 |
}
|
173 |
unset($value);
|
174 |
|
@@ -279,7 +279,7 @@ function adrotate_insert_group() {
|
|
279 |
if($page_loc != 4) $page_par = 0;
|
280 |
|
281 |
// Fetch records for the group
|
282 |
-
$linkmeta = $wpdb->get_results($wpdb->prepare("SELECT `ad` FROM `
|
283 |
foreach($linkmeta as $meta) {
|
284 |
$meta_array[] = $meta->ad;
|
285 |
}
|
@@ -297,7 +297,7 @@ function adrotate_insert_group() {
|
|
297 |
// Remove ads from this group
|
298 |
$delete = array_diff($meta_array,$ads);
|
299 |
foreach($delete as &$value) {
|
300 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
301 |
}
|
302 |
unset($value);
|
303 |
|
@@ -305,7 +305,7 @@ function adrotate_insert_group() {
|
|
305 |
$wpdb->update($wpdb->prefix.'adrotate_groups', array('name' => $name, 'modus' => $modus, 'fallback' => 0, 'sortorder' => $sortorder, 'cat' => $category, 'cat_loc' => $category_loc, 'cat_par' => $category_par, 'page' => $page, 'page_loc' => $page_loc, 'page_par' => $page_par, 'wrapper_before' => $wrapper_before, 'wrapper_after' => $wrapper_after, 'align' => $align, 'gridrows' => $rows, 'gridcolumns' => $columns, 'admargin' => $admargin, 'adwidth' => $adwidth, 'adheight' => $adheight, 'adspeed' => $adspeed), array('id' => $id));
|
306 |
|
307 |
// Determine Dynamic Library requirement
|
308 |
-
$dynamic_count = $wpdb->get_var("SELECT COUNT(*) as `total` FROM `
|
309 |
update_option('adrotate_dynamic_required', $dynamic_count);
|
310 |
|
311 |
adrotate_return('adrotate-groups', 201);
|
@@ -463,24 +463,24 @@ function adrotate_delete($id, $what) {
|
|
463 |
|
464 |
if($id > 0) {
|
465 |
if($what == 'banner') {
|
466 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
467 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
468 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
469 |
adrotate_prepare_evaluate_ads(false);
|
470 |
} else if ($what == 'group') {
|
471 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
472 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
473 |
adrotate_prepare_evaluate_ads(false);
|
474 |
} else if ($what == 'bannergroup') {
|
475 |
-
$linkmeta = $wpdb->get_results($wpdb->prepare("SELECT `ad` FROM `
|
476 |
foreach($linkmeta as $meta) {
|
477 |
-
$wpdb->query("DELETE FROM `
|
478 |
-
$wpdb->query("DELETE FROM `
|
479 |
-
$wpdb->query("DELETE FROM `
|
480 |
}
|
481 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
482 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
483 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
484 |
adrotate_prepare_evaluate_ads(false);
|
485 |
}
|
486 |
}
|
@@ -523,8 +523,8 @@ function adrotate_reset($id) {
|
|
523 |
global $wpdb;
|
524 |
|
525 |
if($id > 0) {
|
526 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
527 |
-
$wpdb->query($wpdb->prepare("DELETE FROM `
|
528 |
}
|
529 |
}
|
530 |
|
@@ -540,9 +540,9 @@ function adrotate_renew($id, $howlong = 2592000) {
|
|
540 |
global $wpdb;
|
541 |
|
542 |
if($id > 0) {
|
543 |
-
$schedule_id = $wpdb->get_var($wpdb->prepare("SELECT `schedule` FROM `
|
544 |
if($schedule_id > 0) {
|
545 |
-
$wpdb->query("UPDATE `
|
546 |
} else {
|
547 |
$now = adrotate_now();
|
548 |
$stoptime = $now + $howlong;
|
138 |
|
139 |
// Save schedule for new ads or update the existing one
|
140 |
if($type != 'empty') {
|
141 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_schedule` WHERE `id` IN (SELECT `schedule` FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `schedule` != %d AND `schedule` > 0 AND `ad` = %d AND `group` = 0 AND `user` = 0);", $schedule_id, $id));
|
142 |
}
|
143 |
$wpdb->update($wpdb->prefix.'adrotate_schedule', array('starttime' => $startdate, 'stoptime' => $enddate, 'maxclicks' => $maxclicks, 'maximpressions' => $maxshown), array('id' => $schedule_id));
|
144 |
|
146 |
$wpdb->update($wpdb->prefix.'adrotate', array('title' => $title, 'bannercode' => $bannercode, 'updated' => $thetime, 'author' => $author, 'imagetype' => $imagetype, 'image' => $image, 'tracker' => $tracker, 'responsive' => $responsive, 'type' => $active, 'sortorder' => $sortorder), array('id' => $id));
|
147 |
|
148 |
// Determine Responsive requirement
|
149 |
+
$responsive_count = $wpdb->get_var("SELECT COUNT(*) as `total` FROM `{$wpdb->prefix}adrotate` WHERE `responsive` = 'Y';");
|
150 |
update_option('adrotate_responsive_required', $responsive_count);
|
151 |
|
152 |
// Fetch group records for the ad
|
153 |
+
$groupmeta = $wpdb->get_results($wpdb->prepare("SELECT `group` FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `ad` = %d AND `user` = 0 AND `schedule` = 0;", $id));
|
154 |
foreach($groupmeta as $meta) {
|
155 |
$group_array[] = $meta->group;
|
156 |
}
|
168 |
// Remove groups from this ad
|
169 |
$delete = array_diff($group_array, $groups);
|
170 |
foreach($delete as &$value) {
|
171 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `ad` = %d AND `group` = %d AND `user` = 0 AND `schedule` = 0;", $id, $value));
|
172 |
}
|
173 |
unset($value);
|
174 |
|
279 |
if($page_loc != 4) $page_par = 0;
|
280 |
|
281 |
// Fetch records for the group
|
282 |
+
$linkmeta = $wpdb->get_results($wpdb->prepare("SELECT `ad` FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `group` = %d AND `user` = 0;", $id));
|
283 |
foreach($linkmeta as $meta) {
|
284 |
$meta_array[] = $meta->ad;
|
285 |
}
|
297 |
// Remove ads from this group
|
298 |
$delete = array_diff($meta_array,$ads);
|
299 |
foreach($delete as &$value) {
|
300 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `ad` = %d AND `group` = %d AND `user` = 0;", $value, $id));
|
301 |
}
|
302 |
unset($value);
|
303 |
|
305 |
$wpdb->update($wpdb->prefix.'adrotate_groups', array('name' => $name, 'modus' => $modus, 'fallback' => 0, 'sortorder' => $sortorder, 'cat' => $category, 'cat_loc' => $category_loc, 'cat_par' => $category_par, 'page' => $page, 'page_loc' => $page_loc, 'page_par' => $page_par, 'wrapper_before' => $wrapper_before, 'wrapper_after' => $wrapper_after, 'align' => $align, 'gridrows' => $rows, 'gridcolumns' => $columns, 'admargin' => $admargin, 'adwidth' => $adwidth, 'adheight' => $adheight, 'adspeed' => $adspeed), array('id' => $id));
|
306 |
|
307 |
// Determine Dynamic Library requirement
|
308 |
+
$dynamic_count = $wpdb->get_var("SELECT COUNT(*) as `total` FROM `{$wpdb->prefix}adrotate_groups` WHERE `name` != '' AND `modus` = 1;");
|
309 |
update_option('adrotate_dynamic_required', $dynamic_count);
|
310 |
|
311 |
adrotate_return('adrotate-groups', 201);
|
463 |
|
464 |
if($id > 0) {
|
465 |
if($what == 'banner') {
|
466 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate` WHERE `id` = %d;", $id));
|
467 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `ad` = %d;", $id));
|
468 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_stats` WHERE `ad` = %d;", $id));
|
469 |
adrotate_prepare_evaluate_ads(false);
|
470 |
} else if ($what == 'group') {
|
471 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_groups` WHERE `id` = %d;", $id));
|
472 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `group` = %d;", $id));
|
473 |
adrotate_prepare_evaluate_ads(false);
|
474 |
} else if ($what == 'bannergroup') {
|
475 |
+
$linkmeta = $wpdb->get_results($wpdb->prepare("SELECT `ad` FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `group` = %d;", $id));
|
476 |
foreach($linkmeta as $meta) {
|
477 |
+
$wpdb->query("DELETE FROM `{$wpdb->prefix}adrotate` WHERE `id` = ".$meta->ad.";");
|
478 |
+
$wpdb->query("DELETE FROM `{$wpdb->prefix}adrotate_stats` WHERE `ad` = ".$meta->ad.";");
|
479 |
+
$wpdb->query("DELETE FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `ad` = ".$meta->ad.";");
|
480 |
}
|
481 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_groups` WHERE `id` = %d;", $id));
|
482 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `group` = %d;", $id));
|
483 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_stats` WHERE `group` = %d;", $id)); // Perhaps unnessesary
|
484 |
adrotate_prepare_evaluate_ads(false);
|
485 |
}
|
486 |
}
|
523 |
global $wpdb;
|
524 |
|
525 |
if($id > 0) {
|
526 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_stats` WHERE `ad` = %d", $id));
|
527 |
+
$wpdb->query($wpdb->prepare("DELETE FROM `{$wpdb->prefix}adrotate_tracker` WHERE `bannerid` = %d", $id));
|
528 |
}
|
529 |
}
|
530 |
|
540 |
global $wpdb;
|
541 |
|
542 |
if($id > 0) {
|
543 |
+
$schedule_id = $wpdb->get_var($wpdb->prepare("SELECT `schedule` FROM `{$wpdb->prefix}adrotate_linkmeta` WHERE `ad` = %d AND `group` = 0 AND `user` = 0 ORDER BY `id` DESC LIMIT 1;", $id));
|
544 |
if($schedule_id > 0) {
|
545 |
+
$wpdb->query("UPDATE `{$wpdb->prefix}adrotate_schedule` SET `stoptime` = `stoptime` + $howlong WHERE `id` = $schedule_id;");
|
546 |
} else {
|
547 |
$now = adrotate_now();
|
548 |
$stoptime = $now + $howlong;
|
adrotate-output.php
CHANGED
@@ -232,27 +232,26 @@ function adrotate_group($group_ids, $fallback = 0, $weight = 0, $site = 0) {
|
|
232 |
-------------------------------------------------------------*/
|
233 |
function adrotate_inject_posts($post_content) {
|
234 |
global $wpdb, $post, $adrotate_debug;
|
235 |
-
|
236 |
$group_array = array();
|
237 |
-
|
238 |
if(is_page()) {
|
239 |
// Inject ads into page
|
240 |
-
$ids = $wpdb->get_results("SELECT `id`, `page`, `page_loc`, `page_par` FROM `{$wpdb->prefix}adrotate_groups` WHERE `page_loc` > 0;");
|
241 |
|
242 |
foreach($ids as $id) {
|
243 |
$pages = explode(",", $id->page);
|
244 |
if(!is_array($pages)) $pages = array();
|
245 |
|
246 |
if(in_array($post->ID, $pages)) {
|
247 |
-
$group_array[$id->id] = array('location' => $id->page_loc, 'paragraph' => $id->page_par, '
|
248 |
}
|
249 |
}
|
250 |
unset($ids, $pages);
|
251 |
}
|
252 |
-
|
253 |
if(is_single()) {
|
254 |
// Inject ads into posts in specified category
|
255 |
-
$ids = $wpdb->get_results("SELECT `id`, `cat`, `cat_loc`, `cat_par` FROM `{$wpdb->prefix}adrotate_groups` WHERE `cat_loc` > 0;");
|
256 |
$wp_categories = get_terms('category', array('fields' => 'ids'));
|
257 |
|
258 |
foreach($ids as $id) {
|
@@ -261,88 +260,66 @@ function adrotate_inject_posts($post_content) {
|
|
261 |
|
262 |
foreach($wp_categories as &$value) {
|
263 |
if(in_array($value, $categories)) {
|
264 |
-
$group_array[$id->id] = array('location' => $id->cat_loc, 'paragraph' => $id->cat_par, '
|
265 |
}
|
266 |
}
|
267 |
}
|
268 |
unset($ids, $wp_categories, $categories);
|
269 |
}
|
270 |
|
|
|
|
|
|
|
271 |
if($adrotate_debug['general'] == true) {
|
272 |
echo "<p><strong>[DEBUG][adrotate_inject_posts()] group_array</strong><pre>";
|
|
|
273 |
print_r($group_array);
|
274 |
echo "</pre></p>";
|
275 |
}
|
276 |
|
277 |
-
$group_count = count($group_array);
|
278 |
if($group_count > 0) {
|
279 |
-
if($group_count > 1) {
|
280 |
-
// Try to prevent the same ad from showing when there are multiple ads to show
|
281 |
-
$paragraph_count = substr_count($post_content, '<p>');
|
282 |
-
if($paragraph_count == 0 OR $group_count < $paragraph_count) {
|
283 |
-
$paragraph_count = $group_count;
|
284 |
-
}
|
285 |
-
$group_choice = array_rand($group_array, $paragraph_count);
|
286 |
-
if(!is_array($group_choice)) $group_choice = array($group_choice);
|
287 |
-
|
288 |
-
shuffle($group_choice);
|
289 |
-
} else {
|
290 |
-
$group_choice = array_rand($group_array, 1);
|
291 |
-
$group_choice = array($group_choice,$group_choice);
|
292 |
-
}
|
293 |
-
|
294 |
-
if($adrotate_debug['general'] == true) {
|
295 |
-
echo "<p><strong>[DEBUG][adrotate_inject_posts()] group_choice</strong><pre>";
|
296 |
-
print_r($group_choice);
|
297 |
-
echo "</pre></p>";
|
298 |
-
}
|
299 |
-
|
300 |
$before = $after = $inside = 0;
|
301 |
-
foreach($
|
302 |
-
if(is_page($
|
303 |
// Advert in front of content
|
304 |
-
if(($
|
305 |
$post_content = adrotate_group($group_id).$post_content;
|
|
|
306 |
$before = 1;
|
307 |
}
|
308 |
-
|
309 |
-
// Advert behind content
|
310 |
-
if(($
|
311 |
-
|
312 |
-
|
|
|
313 |
}
|
314 |
|
315 |
// Adverts inside the content
|
316 |
-
if($
|
317 |
-
|
318 |
$paragraph_count = count($paragraphs);
|
319 |
-
$
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
$post_content .= $paragraph."</p>";
|
336 |
-
$par++;
|
337 |
-
|
338 |
-
unset($paragraph);
|
339 |
-
}
|
340 |
}
|
341 |
}
|
342 |
}
|
343 |
-
unset($
|
344 |
}
|
345 |
-
|
346 |
return $post_content;
|
347 |
}
|
348 |
|
@@ -741,7 +718,7 @@ function adrotate_notifications_dashboard() {
|
|
741 |
echo ' <div class="button_div"><a class="button" target="_blank" href="https://ajdg.solutions/products/adrotate-for-wordpress/?add-to-cart=1126?pk_campaign=adrotatefree-upgradebanner">'.__('Buy now', 'adrotate').'</a></div>';
|
742 |
echo ' <div class="text">'.__("You've been using <strong>AdRotate</strong> for a while now. Why not upgrade to the <strong>PRO</strong> version", 'adrotate').'?<br /><span>'.__('Use discount code <b>getadrotatepro</b> for 10% off on any AdRotate license!', 'adrotate' ).' '.__('Thank you for your purchase!', 'adrotate' ).'</span></div>';
|
743 |
echo ' <a class="close_banner" href="admin.php?page=adrotate-pro&hide=1"><img title="Close" src="'.plugins_url('images/icon-close.png', __FILE__).'" alt=""/></a>';
|
744 |
-
echo ' <div class="icon"><img title="" src="'.plugins_url('images/
|
745 |
echo ' </div>';
|
746 |
echo '</div>';
|
747 |
}
|
@@ -753,7 +730,7 @@ function adrotate_notifications_dashboard() {
|
|
753 |
echo ' <div class="button_div"><a class="button" target="_blank" href="https://wordpress.org/support/view/plugin-reviews/adrotate?rate=5#postform">Rate AdRotate</a></div>';
|
754 |
echo ' <div class="text">If you like <strong>AdRotate</strong> please let the world know that you do. Thanks for your support!<br /><span>If you have questions, suggestions or something else that doesn\'t belong in a review, please <a href="https://ajdg.solutions/forums/forum/adrotate-for-wordpress/?pk_campaign=adrotatefree-reviewbanner" target="_blank">get in touch</a>!</span></div>';
|
755 |
echo ' <a class="close_banner" href="admin.php?page=adrotate&hide=2"><img title="Close" src="'.plugins_url('images/icon-close.png', __FILE__).'" alt=""/></a>';
|
756 |
-
echo ' <div class="icon"><img title="" src="'.plugins_url('images/
|
757 |
echo ' </div>';
|
758 |
echo '</div>';
|
759 |
}
|
@@ -767,7 +744,7 @@ function adrotate_notifications_dashboard() {
|
|
767 |
echo ' <div class="adrotate_banner">';
|
768 |
echo ' <div class="button_div"><a class="button" href="admin.php?page=adrotate&upgrade=1">Update Now</a></div>';
|
769 |
echo ' <div class="text">You have almost finished upgrading <strong>AdRotate</strong> to version <strong>'.ADROTATE_DISPLAY.'</strong>!<br /><span>To complete the update click the button on the left. This may take a few seconds to complete!</span></div>';
|
770 |
-
echo ' <div class="icon"><img title="" src="'.plugins_url('images/
|
771 |
echo ' </div>';
|
772 |
echo '</div>';
|
773 |
}
|
@@ -849,16 +826,23 @@ function adrotate_credits() {
|
|
849 |
echo '<thead>';
|
850 |
echo '<tr valign="top">';
|
851 |
echo ' <th colspan="2">'.__('Help AdRotate Grow', 'adrotate').'</th>';
|
852 |
-
echo ' <th
|
853 |
echo '</tr>';
|
854 |
echo '</thead>';
|
855 |
|
856 |
echo '<tbody>';
|
857 |
echo '<tr>';
|
858 |
-
echo '<td><center><a href="https://ajdg.solutions/products/adrotate-for-wordpress/?pk_campaign=adrotatefree-credits&pk_kwd=adrotate_logo" title="AdRotate plugin for WordPress"><img src="'.plugins_url('/images/
|
859 |
echo '<td>'.__("A lot of users only think to review AdRotate when something goes wrong while thousands of people use AdRotate satisfactory. Don't let this go unnoticed.", 'adrotate').' <strong>'. __("If you find AdRotate useful please leave your honest", 'adrotate').' <a href="https://wordpress.org/support/view/plugin-reviews/adrotate?rate=5#postform" target="_blank">'.__('rating','adrotate').'</a> '.__('and','adrotate').' <a href="https://wordpress.org/support/view/plugin-reviews/adrotate" target="_blank">'.__('review','adrotate').'</a> '.__('on WordPress.org to help AdRotate grow in a positive way', 'adrotate').'!</strong></td>';
|
860 |
|
861 |
-
echo '<td
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
862 |
echo '</tr>';
|
863 |
echo '</tbody>';
|
864 |
|
232 |
-------------------------------------------------------------*/
|
233 |
function adrotate_inject_posts($post_content) {
|
234 |
global $wpdb, $post, $adrotate_debug;
|
235 |
+
|
236 |
$group_array = array();
|
|
|
237 |
if(is_page()) {
|
238 |
// Inject ads into page
|
239 |
+
$ids = $wpdb->get_results("SELECT `id`, `page`, `page_loc`, `page_par` FROM `{$wpdb->prefix}adrotate_groups` WHERE `page_loc` > 0 AND `page_loc` < 5;");
|
240 |
|
241 |
foreach($ids as $id) {
|
242 |
$pages = explode(",", $id->page);
|
243 |
if(!is_array($pages)) $pages = array();
|
244 |
|
245 |
if(in_array($post->ID, $pages)) {
|
246 |
+
$group_array[$id->id] = array('location' => $id->page_loc, 'paragraph' => $id->page_par, 'ids' => $pages);
|
247 |
}
|
248 |
}
|
249 |
unset($ids, $pages);
|
250 |
}
|
251 |
+
|
252 |
if(is_single()) {
|
253 |
// Inject ads into posts in specified category
|
254 |
+
$ids = $wpdb->get_results("SELECT `id`, `cat`, `cat_loc`, `cat_par` FROM `{$wpdb->prefix}adrotate_groups` WHERE `cat_loc` > 0 AND `cat_loc` < 5;");
|
255 |
$wp_categories = get_terms('category', array('fields' => 'ids'));
|
256 |
|
257 |
foreach($ids as $id) {
|
260 |
|
261 |
foreach($wp_categories as &$value) {
|
262 |
if(in_array($value, $categories)) {
|
263 |
+
$group_array[$id->id] = array('location' => $id->cat_loc, 'paragraph' => $id->cat_par, 'ids' => $categories);
|
264 |
}
|
265 |
}
|
266 |
}
|
267 |
unset($ids, $wp_categories, $categories);
|
268 |
}
|
269 |
|
270 |
+
$group_array = adrotate_shuffle($group_array);
|
271 |
+
$group_count = count($group_array);
|
272 |
+
|
273 |
if($adrotate_debug['general'] == true) {
|
274 |
echo "<p><strong>[DEBUG][adrotate_inject_posts()] group_array</strong><pre>";
|
275 |
+
echo "Group count: ".$group_count."</br>";
|
276 |
print_r($group_array);
|
277 |
echo "</pre></p>";
|
278 |
}
|
279 |
|
|
|
280 |
if($group_count > 0) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
281 |
$before = $after = $inside = 0;
|
282 |
+
foreach($group_array as $group_id => $group) {
|
283 |
+
if(is_page($group['ids']) OR is_category($group['ids']) OR in_category($group['ids'])) {
|
284 |
// Advert in front of content
|
285 |
+
if(($group['location'] == 1 OR $group['location'] == 3) AND $before == 0) {
|
286 |
$post_content = adrotate_group($group_id).$post_content;
|
287 |
+
unset($group_array[$group_id]);
|
288 |
$before = 1;
|
289 |
}
|
290 |
+
|
291 |
+
// Advert behind the content
|
292 |
+
if(($group['location'] == 2 OR $group['location'] == 3) AND $after == 0) {
|
293 |
+
$post_content = $post_content.adrotate_group($group_id);
|
294 |
+
unset($group_array[$group_id]);
|
295 |
+
$after = 1;
|
296 |
}
|
297 |
|
298 |
// Adverts inside the content
|
299 |
+
if($group['location'] == 4) {
|
300 |
+
$paragraphs = explode('</p>', $post_content);
|
301 |
$paragraph_count = count($paragraphs);
|
302 |
+
$count_p = ($group['paragraph'] == 99) ? ceil($paragraph_count / 2) : $group['paragraph'];
|
303 |
+
|
304 |
+
foreach($paragraphs as $index => $paragraph) {
|
305 |
+
if(trim($paragraph)) {
|
306 |
+
$paragraphs[$index] .= '</p>';
|
307 |
+
}
|
308 |
+
|
309 |
+
if($count_p == $index + 1 AND $inside == 0) {
|
310 |
+
$paragraphs[$index] .= adrotate_group($group_id);
|
311 |
+
unset($group_array[$group_id]);
|
312 |
+
$inside = 1;
|
313 |
+
}
|
314 |
+
}
|
315 |
+
$inside = 0; // Reset for the next paragraph
|
316 |
+
$post_content = implode('', $paragraphs);
|
317 |
+
unset($paragraphs, $paragraph_count);
|
|
|
|
|
|
|
|
|
|
|
318 |
}
|
319 |
}
|
320 |
}
|
321 |
+
unset($group_array, $before, $after, $inside);
|
322 |
}
|
|
|
323 |
return $post_content;
|
324 |
}
|
325 |
|
718 |
echo ' <div class="button_div"><a class="button" target="_blank" href="https://ajdg.solutions/products/adrotate-for-wordpress/?add-to-cart=1126?pk_campaign=adrotatefree-upgradebanner">'.__('Buy now', 'adrotate').'</a></div>';
|
719 |
echo ' <div class="text">'.__("You've been using <strong>AdRotate</strong> for a while now. Why not upgrade to the <strong>PRO</strong> version", 'adrotate').'?<br /><span>'.__('Use discount code <b>getadrotatepro</b> for 10% off on any AdRotate license!', 'adrotate' ).' '.__('Thank you for your purchase!', 'adrotate' ).'</span></div>';
|
720 |
echo ' <a class="close_banner" href="admin.php?page=adrotate-pro&hide=1"><img title="Close" src="'.plugins_url('images/icon-close.png', __FILE__).'" alt=""/></a>';
|
721 |
+
echo ' <div class="icon"><img title="" src="'.plugins_url('images/logo-60x60.png', __FILE__).'" alt=""/></div>';
|
722 |
echo ' </div>';
|
723 |
echo '</div>';
|
724 |
}
|
730 |
echo ' <div class="button_div"><a class="button" target="_blank" href="https://wordpress.org/support/view/plugin-reviews/adrotate?rate=5#postform">Rate AdRotate</a></div>';
|
731 |
echo ' <div class="text">If you like <strong>AdRotate</strong> please let the world know that you do. Thanks for your support!<br /><span>If you have questions, suggestions or something else that doesn\'t belong in a review, please <a href="https://ajdg.solutions/forums/forum/adrotate-for-wordpress/?pk_campaign=adrotatefree-reviewbanner" target="_blank">get in touch</a>!</span></div>';
|
732 |
echo ' <a class="close_banner" href="admin.php?page=adrotate&hide=2"><img title="Close" src="'.plugins_url('images/icon-close.png', __FILE__).'" alt=""/></a>';
|
733 |
+
echo ' <div class="icon"><img title="" src="'.plugins_url('images/logo-60x60.png', __FILE__).'" alt=""/></div>';
|
734 |
echo ' </div>';
|
735 |
echo '</div>';
|
736 |
}
|
744 |
echo ' <div class="adrotate_banner">';
|
745 |
echo ' <div class="button_div"><a class="button" href="admin.php?page=adrotate&upgrade=1">Update Now</a></div>';
|
746 |
echo ' <div class="text">You have almost finished upgrading <strong>AdRotate</strong> to version <strong>'.ADROTATE_DISPLAY.'</strong>!<br /><span>To complete the update click the button on the left. This may take a few seconds to complete!</span></div>';
|
747 |
+
echo ' <div class="icon"><img title="" src="'.plugins_url('images/logo-60x60.png', __FILE__).'" alt=""/></div>';
|
748 |
echo ' </div>';
|
749 |
echo '</div>';
|
750 |
}
|
826 |
echo '<thead>';
|
827 |
echo '<tr valign="top">';
|
828 |
echo ' <th colspan="2">'.__('Help AdRotate Grow', 'adrotate').'</th>';
|
829 |
+
echo ' <th style="text-align:center;">'.__('Follow Arnan on Facebook', 'wpevents').'</th>';
|
830 |
echo '</tr>';
|
831 |
echo '</thead>';
|
832 |
|
833 |
echo '<tbody>';
|
834 |
echo '<tr>';
|
835 |
+
echo '<td><center><a href="https://ajdg.solutions/products/adrotate-for-wordpress/?pk_campaign=adrotatefree-credits&pk_kwd=adrotate_logo" title="AdRotate plugin for WordPress"><img src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt="AdRotate logo" width="60" height="60" /></a></center></td>';
|
836 |
echo '<td>'.__("A lot of users only think to review AdRotate when something goes wrong while thousands of people use AdRotate satisfactory. Don't let this go unnoticed.", 'adrotate').' <strong>'. __("If you find AdRotate useful please leave your honest", 'adrotate').' <a href="https://wordpress.org/support/view/plugin-reviews/adrotate?rate=5#postform" target="_blank">'.__('rating','adrotate').'</a> '.__('and','adrotate').' <a href="https://wordpress.org/support/view/plugin-reviews/adrotate" target="_blank">'.__('review','adrotate').'</a> '.__('on WordPress.org to help AdRotate grow in a positive way', 'adrotate').'!</strong></td>';
|
837 |
|
838 |
+
echo '<td width="25%"><script>(function(d, s, id) {';
|
839 |
+
echo 'var js, fjs = d.getElementsByTagName(s)[0];';
|
840 |
+
echo 'if (d.getElementById(id)) return;';
|
841 |
+
echo 'js = d.createElement(s); js.id = id;';
|
842 |
+
echo 'js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5";';
|
843 |
+
echo 'fjs.parentNode.insertBefore(js, fjs);';
|
844 |
+
echo '}(document, \'script\', \'facebook-jssdk\'));</script>';
|
845 |
+
echo '<center><div class="fb-page" data-href="https://www.facebook.com/Arnandegans" data-width="315" data-adapt-container-width="true" data-small-header="true" data-hide-cover="false" data-show-facepile="false"></div></center></td>';
|
846 |
echo '</tr>';
|
847 |
echo '</tbody>';
|
848 |
|
adrotate-setup.php
CHANGED
@@ -507,7 +507,6 @@ function adrotate_database_install() {
|
|
507 |
`timer` int(15) unsigned NOT NULL default '0',
|
508 |
`bannerid` int(15) unsigned NOT NULL default '0',
|
509 |
`stat` char(1) NOT NULL default 'c',
|
510 |
-
`useragent` mediumtext NOT NULL,
|
511 |
`country` text NOT NULL,
|
512 |
`city` text NOT NULL,
|
513 |
PRIMARY KEY (`id`),
|
@@ -806,6 +805,12 @@ function adrotate_database_upgrade() {
|
|
806 |
adrotate_del_column("{$wpdb->prefix}adrotate", 'link');
|
807 |
}
|
808 |
|
|
|
|
|
|
|
|
|
|
|
|
|
809 |
update_option("adrotate_db_version", array('current' => ADROTATE_DB_VERSION, 'previous' => $adrotate_db_version['current']));
|
810 |
}
|
811 |
|
507 |
`timer` int(15) unsigned NOT NULL default '0',
|
508 |
`bannerid` int(15) unsigned NOT NULL default '0',
|
509 |
`stat` char(1) NOT NULL default 'c',
|
|
|
510 |
`country` text NOT NULL,
|
511 |
`city` text NOT NULL,
|
512 |
PRIMARY KEY (`id`),
|
805 |
adrotate_del_column("{$wpdb->prefix}adrotate", 'link');
|
806 |
}
|
807 |
|
808 |
+
// Database: 56
|
809 |
+
// AdRotate: 3.14.2
|
810 |
+
if($adrotate_db_version['current'] < 56) {
|
811 |
+
adrotate_del_column("{$wpdb->prefix}adrotate_tracker", 'useragent');
|
812 |
+
}
|
813 |
+
|
814 |
update_option("adrotate_db_version", array('current' => ADROTATE_DB_VERSION, 'previous' => $adrotate_db_version['current']));
|
815 |
}
|
816 |
|
adrotate-widget.php
CHANGED
@@ -24,7 +24,7 @@ class adrotate_widgets extends WP_Widget {
|
|
24 |
-------------------------------------------------------------*/
|
25 |
function adrotate_widgets() {
|
26 |
|
27 |
-
parent::__construct(false, 'AdRotate', array('description' => "Show
|
28 |
|
29 |
}
|
30 |
|
@@ -47,17 +47,27 @@ class adrotate_widgets extends WP_Widget {
|
|
47 |
}
|
48 |
|
49 |
if($adrotate_config['widgetalign'] == 'Y') echo '<ul><li>';
|
50 |
-
if($adrotate_config['w3caching'] == 'Y') echo '<!-- mfunc '.W3TC_DYNAMIC_SECURITY.' -->';
|
51 |
-
|
52 |
-
if($instance['type'] == "single") {
|
53 |
-
echo adrotate_ad($instance['adid'], true, 0, 0, 0);
|
54 |
-
}
|
55 |
|
56 |
-
if($
|
57 |
-
echo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
59 |
-
|
60 |
-
if($adrotate_config['w3caching'] == 'Y') echo '<!-- /mfunc -->';
|
61 |
if($adrotate_config['widgetalign'] == 'Y') echo '</li></ul>';
|
62 |
|
63 |
echo $after_widget;
|
@@ -100,13 +110,7 @@ class adrotate_widgets extends WP_Widget {
|
|
100 |
$title = esc_attr( $title );
|
101 |
$description = esc_attr( $description );
|
102 |
$type = esc_attr( $type );
|
103 |
-
|
104 |
-
//Try and preserve pre-fix widget IDs
|
105 |
-
if(isset($id) and $adid < 1) {
|
106 |
-
$adid = esc_attr( $id );
|
107 |
-
} else {
|
108 |
-
$adid = esc_attr( $adid );
|
109 |
-
}
|
110 |
?>
|
111 |
<p>
|
112 |
<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e( 'Title (optional):', 'adrotate' ); ?></label>
|
@@ -123,8 +127,8 @@ class adrotate_widgets extends WP_Widget {
|
|
123 |
<p>
|
124 |
<label for="<?php echo $this->get_field_id('type'); ?>"><?php _e( 'Type:', 'adrotate' ); ?></label>
|
125 |
<select class="widefat" id="<?php echo $this->get_field_id('type'); ?>" name="<?php echo $this->get_field_name('type'); ?>" class="postform">
|
126 |
-
<option value="single" <?php if($type == "single") { echo 'selected'; } ?>><?php _e( '
|
127 |
-
<option value="group" <?php if($type == "group") { echo 'selected'; } ?>><?php _e( 'Group
|
128 |
</select>
|
129 |
<br />
|
130 |
<small><?php _e( 'Choose what you want to use this widget for', 'adrotate' ); ?></small>
|
24 |
-------------------------------------------------------------*/
|
25 |
function adrotate_widgets() {
|
26 |
|
27 |
+
parent::__construct(false, 'AdRotate', array('description' => "Show a group of adverts or a single advert in any widget area."));
|
28 |
|
29 |
}
|
30 |
|
47 |
}
|
48 |
|
49 |
if($adrotate_config['widgetalign'] == 'Y') echo '<ul><li>';
|
|
|
|
|
|
|
|
|
|
|
50 |
|
51 |
+
if($adrotate_config['w3caching'] == 'Y') {
|
52 |
+
echo '<!-- mfunc '.W3TC_DYNAMIC_SECURITY.' -->';
|
53 |
+
if($instance['type'] == "single") {
|
54 |
+
echo 'echo adrotate_ad('.$instance['adid'].', true, 0, 0, 0);';
|
55 |
+
}
|
56 |
+
|
57 |
+
if($instance['type'] == "group") {
|
58 |
+
echo 'echo adrotate_group('.$instance['adid'].', 0, 0, 0);';
|
59 |
+
}
|
60 |
+
echo '<!-- /mfunc '.W3TC_DYNAMIC_SECURITY.' -->';
|
61 |
+
} else {
|
62 |
+
if($instance['type'] == "single") {
|
63 |
+
echo adrotate_ad($instance['adid'], true, 0, 0, 0);
|
64 |
+
}
|
65 |
+
|
66 |
+
if($instance['type'] == "group") {
|
67 |
+
echo adrotate_group($instance['adid'], 0, 0, 0);
|
68 |
+
}
|
69 |
}
|
70 |
+
|
|
|
71 |
if($adrotate_config['widgetalign'] == 'Y') echo '</li></ul>';
|
72 |
|
73 |
echo $after_widget;
|
110 |
$title = esc_attr( $title );
|
111 |
$description = esc_attr( $description );
|
112 |
$type = esc_attr( $type );
|
113 |
+
$adid = esc_attr( $adid );
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
?>
|
115 |
<p>
|
116 |
<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e( 'Title (optional):', 'adrotate' ); ?></label>
|
127 |
<p>
|
128 |
<label for="<?php echo $this->get_field_id('type'); ?>"><?php _e( 'Type:', 'adrotate' ); ?></label>
|
129 |
<select class="widefat" id="<?php echo $this->get_field_id('type'); ?>" name="<?php echo $this->get_field_name('type'); ?>" class="postform">
|
130 |
+
<option value="single" <?php if($type == "single") { echo 'selected'; } ?>><?php _e( 'Advert - Use Advert ID', 'adrotate' ); ?></option>
|
131 |
+
<option value="group" <?php if($type == "group") { echo 'selected'; } ?>><?php _e( 'Group - Use group ID', 'adrotate' ); ?></option>
|
132 |
</select>
|
133 |
<br />
|
134 |
<small><?php _e( 'Choose what you want to use this widget for', 'adrotate' ); ?></small>
|
adrotate.php
CHANGED
@@ -7,7 +7,7 @@ Author URI: http://ajdg.solutions/?pk_campaign=adrotatefree-pluginpage
|
|
7 |
Description: The popular choice for monetizing your website with adverts while keeping things simple. Start making money today!
|
8 |
Text Domain: adrotate
|
9 |
Domain Path: /languages/
|
10 |
-
Version: 3.14.
|
11 |
License: GPLv3
|
12 |
*/
|
13 |
|
@@ -22,9 +22,9 @@ License: GPLv3
|
|
22 |
------------------------------------------------------------------------------------ */
|
23 |
|
24 |
/*--- AdRotate values ---------------------------------------*/
|
25 |
-
define("ADROTATE_DISPLAY", '3.14.
|
26 |
define("ADROTATE_VERSION", 380);
|
27 |
-
define("ADROTATE_DB_VERSION",
|
28 |
/*-----------------------------------------------------------*/
|
29 |
|
30 |
/*--- Load Files --------------------------------------------*/
|
7 |
Description: The popular choice for monetizing your website with adverts while keeping things simple. Start making money today!
|
8 |
Text Domain: adrotate
|
9 |
Domain Path: /languages/
|
10 |
+
Version: 3.14.2
|
11 |
License: GPLv3
|
12 |
*/
|
13 |
|
22 |
------------------------------------------------------------------------------------ */
|
23 |
|
24 |
/*--- AdRotate values ---------------------------------------*/
|
25 |
+
define("ADROTATE_DISPLAY", '3.14.2');
|
26 |
define("ADROTATE_VERSION", 380);
|
27 |
+
define("ADROTATE_DB_VERSION", 56);
|
28 |
/*-----------------------------------------------------------*/
|
29 |
|
30 |
/*--- Load Files --------------------------------------------*/
|
dashboard/adrotatepro.php
CHANGED
@@ -48,27 +48,20 @@
|
|
48 |
<h3><?php _e('AdRotate is brought to you by', 'adrotate'); ?></h3>
|
49 |
<div class="postbox-adrotate">
|
50 |
<div class="inside">
|
51 |
-
<
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
<td class="b">
|
67 |
-
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script><center><a href="https://twitter.com/arnandegans" class="twitter-follow-button" data-show-count="false" data-size="large" data-dnt="true"></a></center>
|
68 |
-
</td>
|
69 |
-
</tr>
|
70 |
-
</tbody>
|
71 |
-
</table>
|
72 |
</div>
|
73 |
</div>
|
74 |
|
48 |
<h3><?php _e('AdRotate is brought to you by', 'adrotate'); ?></h3>
|
49 |
<div class="postbox-adrotate">
|
50 |
<div class="inside">
|
51 |
+
<script>(function(d, s, id) {
|
52 |
+
var js, fjs = d.getElementsByTagName(s)[0];
|
53 |
+
if (d.getElementById(id)) return;
|
54 |
+
js = d.createElement(s); js.id = id;
|
55 |
+
js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5";
|
56 |
+
fjs.parentNode.insertBefore(js, fjs);
|
57 |
+
}(document, 'script', 'facebook-jssdk'));</script>
|
58 |
+
<p><center><div class="fb-page"
|
59 |
+
data-href="https://www.facebook.com/Arnandegans"
|
60 |
+
data-width="490"
|
61 |
+
data-adapt-container-width="true"
|
62 |
+
data-hide-cover="false"
|
63 |
+
data-show-facepile="false">
|
64 |
+
</div></center></p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
</div>
|
66 |
</div>
|
67 |
|
dashboard/info.php
CHANGED
@@ -52,25 +52,22 @@ $data = get_option("adrotate_advert_status");
|
|
52 |
<tbody>
|
53 |
<tr class="first">
|
54 |
<td colspan="2">
|
55 |
-
<center><?php _e('
|
56 |
<center><a class="button-primary" href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=paypal%40ajdg%2enet&item_name=AdRotate%20Donation&no_shipping=0&no_note=0&tax=0¤cy_code=EUR&bn=PP%2dDonationsBF&charset=UTF%2d8&amount=10" target="_blank">Donate € 10 via Paypal</a> <a class="button" target="_blank" href="https://wordpress.org/support/view/plugin-reviews/adrotate?rate=5#postform">Write review on WordPress.org</a></center><br />
|
57 |
-
</td>
|
58 |
-
</tr>
|
59 |
-
|
60 |
-
<tr class="first">
|
61 |
-
<td class="first b">
|
62 |
-
<div id="fb-root"></div>
|
63 |
<script>(function(d, s, id) {
|
64 |
var js, fjs = d.getElementsByTagName(s)[0];
|
65 |
if (d.getElementById(id)) return;
|
66 |
js = d.createElement(s); js.id = id;
|
67 |
-
js.src = "
|
68 |
fjs.parentNode.insertBefore(js, fjs);
|
69 |
-
}(document, 'script', 'facebook-jssdk'));</script
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
|
|
|
|
|
|
74 |
</td>
|
75 |
</tr>
|
76 |
</tbody>
|
@@ -78,35 +75,6 @@ $data = get_option("adrotate_advert_status");
|
|
78 |
</div>
|
79 |
</div>
|
80 |
|
81 |
-
<h3><?php _e('AdRotate News and Developer Blog', 'adrotate'); ?></h3>
|
82 |
-
<div class="postbox-adrotate">
|
83 |
-
<div class="inside">
|
84 |
-
<?php
|
85 |
-
wp_widget_rss_output(array(
|
86 |
-
'url' => array('http://meandmymac.net/feed/', 'http://ajdg.solutions/feed/'),
|
87 |
-
'title' => 'News',
|
88 |
-
'items' => 4,
|
89 |
-
'show_summary' => 1,
|
90 |
-
'show_author' => 0,
|
91 |
-
'show_date' => 1)
|
92 |
-
);
|
93 |
-
?>
|
94 |
-
</div>
|
95 |
-
</div>
|
96 |
-
|
97 |
-
</div>
|
98 |
-
</div>
|
99 |
-
|
100 |
-
<div id="postbox-container-3" class="postbox-container" style="width:50%;">
|
101 |
-
<div id="side-sortables" class="meta-box-sortables ui-sortable">
|
102 |
-
|
103 |
-
<h3><?php _e('Get more features with AdRotate Pro', 'adrotate'); ?></h3>
|
104 |
-
<div class="postbox-adrotate">
|
105 |
-
<div class="inside">
|
106 |
-
<p><img src="<?php echo WP_CONTENT_URL; ?>/plugins/adrotate/images/adrotate-logo-60x60.png" alt="adrotate-logo-60x60" width="60" height="60" align="left" style="padding: 0 10px 10px 0;" /><?php _e('Benefit from extra features to reinforce your income with advertising campaigns. Make the most of your website with the powerful tools AdRotate Pro offers on top of the trusted features included in the free version.', 'adrotate'); ?> <?php _e('Want to know more about', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro">AdRotate Pro</a>? <?php _e('Visit the', 'adrotate'); ?> <a href="https://ajdg.solutions/products/adrotate-for-wordpress/?pk_campaign=adrotatefree-infopage" target="_blank">AdRotate <?php _e('website', 'adrotate'); ?></a>.</p>
|
107 |
-
</div>
|
108 |
-
</div>
|
109 |
-
|
110 |
<h3><?php _e('Buy AdRotate Professional', 'adrotate'); ?></h3>
|
111 |
<div class="postbox-adrotate">
|
112 |
<div class="inside">
|
@@ -116,12 +84,7 @@ $data = get_option("adrotate_advert_status");
|
|
116 |
<p><h4><?php _e('Multi License', 'adrotate'); ?> (€ 99.00)</h4><?php _e(' For up to five WordPress installations.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1128&pk_campaign=adrotatefree-infopage&pk_kwd=buy_multi" target="_blank"><?php _e('Buy now', 'adrotate'); ?> »</a></p>
|
117 |
<p><h4><?php _e('Developer License', 'adrotate'); ?> (€ 299.00)</h4><?php _e('Unlimited WordPress installations and/or networks.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1130&pk_campaign=adrotatefree-infopage&pk_kwd=buy_developer" target="_blank"><?php _e('Buy now', 'adrotate'); ?> »</a></p>
|
118 |
<p><h4><?php _e('Compare licenses', 'adrotate'); ?></h4> <?php _e("Not sure which license is for you? Compare them...", 'adrotate'); ?> <a href="https://ajdg.solutions/products/adrotate-for-wordpress/?pk_campaign=adrotatefree-infopage&pk_kwd=compare_license" target="_blank"><?php _e('All Licenses', 'adrotate'); ?> »</a></p>
|
119 |
-
</div>
|
120 |
-
</div>
|
121 |
<!--
|
122 |
-
<h3><?php _e('Buy AdRotate Professional', 'adrotate'); ?></h3>
|
123 |
-
<div class="postbox-adrotate">
|
124 |
-
<div class="inside">
|
125 |
<img src="<?php echo WP_CONTENT_URL; ?>/plugins/adrotate/images/adrotate-product.png" alt="adrotate-product" width="150" height="150" align="right" style="padding: 0 0 10px 10px;" />
|
126 |
<p><h4><?php _e('Lifetime License', 'adrotate'); ?> (€ 59.00)</h4><?php _e('Single installation.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1124&pk_campaign=adrotatefree-infopage&pk_kwd=buy_single" target="_blank"><?php _e('Buy now', 'adrotate'); ?> »</a></p>
|
127 |
<p><h4><?php _e('Duo License', 'adrotate'); ?> (€ 29.00 p/year)</h4><?php _e('Up to 2 installations.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1126&pk_campaign=adrotatefree-infopage&pk_kwd=buy_duo" target="_blank"><?php _e('Buy now', 'adrotate'); ?> »</a></p>
|
@@ -129,9 +92,9 @@ $data = get_option("adrotate_advert_status");
|
|
129 |
<p><h4><?php _e('Developer License', 'adrotate'); ?> (€ 199.00 p/year)</h4><?php _e('Up to 25 installations or multisite networks.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1130&pk_campaign=adrotatefree-infopage&pk_kwd=buy_developer" target="_blank"><?php _e('Buy now', 'adrotate'); ?> »</a></p>
|
130 |
<p><em><?php _e('Subscriptions get 1 year access to updates, email support & AdRotate Geo.', 'adrotate'); ?></em></p>
|
131 |
<p><h4><?php _e('Compare licenses', 'adrotate'); ?></h4> <?php _e("Not sure which license is for you?", 'adrotate'); ?> <a href="https://ajdg.solutions/products/adrotate-for-wordpress/?pk_campaign=adrotatefree-infopage&pk_kwd=compare_license" target="_blank"><?php _e('Compare Licenses', 'adrotate'); ?> »</a></p>
|
|
|
132 |
</div>
|
133 |
</div>
|
134 |
-
-->
|
135 |
|
136 |
<h3><?php _e('AdRotate is brought to you by', 'adrotate'); ?></h3>
|
137 |
<div class="postbox-adrotate">
|
@@ -141,6 +104,35 @@ $data = get_option("adrotate_advert_status");
|
|
141 |
</div>
|
142 |
</div>
|
143 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
</div>
|
145 |
</div>
|
146 |
|
52 |
<tbody>
|
53 |
<tr class="first">
|
54 |
<td colspan="2">
|
55 |
+
<center><?php _e('Consider writing a review if you like AdRotate. Also follow my Facebook page for updates about me and my plugins. Thank you!', 'adrotate-pro'); ?><br /><br />
|
56 |
<center><a class="button-primary" href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=paypal%40ajdg%2enet&item_name=AdRotate%20Donation&no_shipping=0&no_note=0&tax=0¤cy_code=EUR&bn=PP%2dDonationsBF&charset=UTF%2d8&amount=10" target="_blank">Donate € 10 via Paypal</a> <a class="button" target="_blank" href="https://wordpress.org/support/view/plugin-reviews/adrotate?rate=5#postform">Write review on WordPress.org</a></center><br />
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
<script>(function(d, s, id) {
|
58 |
var js, fjs = d.getElementsByTagName(s)[0];
|
59 |
if (d.getElementById(id)) return;
|
60 |
js = d.createElement(s); js.id = id;
|
61 |
+
js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5";
|
62 |
fjs.parentNode.insertBefore(js, fjs);
|
63 |
+
}(document, 'script', 'facebook-jssdk'));</script>
|
64 |
+
<p><center><div class="fb-page"
|
65 |
+
data-href="https://www.facebook.com/Arnandegans"
|
66 |
+
data-width="490"
|
67 |
+
data-adapt-container-width="true"
|
68 |
+
data-hide-cover="false"
|
69 |
+
data-show-facepile="false">
|
70 |
+
</div></center></p>
|
71 |
</td>
|
72 |
</tr>
|
73 |
</tbody>
|
75 |
</div>
|
76 |
</div>
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
<h3><?php _e('Buy AdRotate Professional', 'adrotate'); ?></h3>
|
79 |
<div class="postbox-adrotate">
|
80 |
<div class="inside">
|
84 |
<p><h4><?php _e('Multi License', 'adrotate'); ?> (€ 99.00)</h4><?php _e(' For up to five WordPress installations.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1128&pk_campaign=adrotatefree-infopage&pk_kwd=buy_multi" target="_blank"><?php _e('Buy now', 'adrotate'); ?> »</a></p>
|
85 |
<p><h4><?php _e('Developer License', 'adrotate'); ?> (€ 299.00)</h4><?php _e('Unlimited WordPress installations and/or networks.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1130&pk_campaign=adrotatefree-infopage&pk_kwd=buy_developer" target="_blank"><?php _e('Buy now', 'adrotate'); ?> »</a></p>
|
86 |
<p><h4><?php _e('Compare licenses', 'adrotate'); ?></h4> <?php _e("Not sure which license is for you? Compare them...", 'adrotate'); ?> <a href="https://ajdg.solutions/products/adrotate-for-wordpress/?pk_campaign=adrotatefree-infopage&pk_kwd=compare_license" target="_blank"><?php _e('All Licenses', 'adrotate'); ?> »</a></p>
|
|
|
|
|
87 |
<!--
|
|
|
|
|
|
|
88 |
<img src="<?php echo WP_CONTENT_URL; ?>/plugins/adrotate/images/adrotate-product.png" alt="adrotate-product" width="150" height="150" align="right" style="padding: 0 0 10px 10px;" />
|
89 |
<p><h4><?php _e('Lifetime License', 'adrotate'); ?> (€ 59.00)</h4><?php _e('Single installation.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1124&pk_campaign=adrotatefree-infopage&pk_kwd=buy_single" target="_blank"><?php _e('Buy now', 'adrotate'); ?> »</a></p>
|
90 |
<p><h4><?php _e('Duo License', 'adrotate'); ?> (€ 29.00 p/year)</h4><?php _e('Up to 2 installations.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1126&pk_campaign=adrotatefree-infopage&pk_kwd=buy_duo" target="_blank"><?php _e('Buy now', 'adrotate'); ?> »</a></p>
|
92 |
<p><h4><?php _e('Developer License', 'adrotate'); ?> (€ 199.00 p/year)</h4><?php _e('Up to 25 installations or multisite networks.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1130&pk_campaign=adrotatefree-infopage&pk_kwd=buy_developer" target="_blank"><?php _e('Buy now', 'adrotate'); ?> »</a></p>
|
93 |
<p><em><?php _e('Subscriptions get 1 year access to updates, email support & AdRotate Geo.', 'adrotate'); ?></em></p>
|
94 |
<p><h4><?php _e('Compare licenses', 'adrotate'); ?></h4> <?php _e("Not sure which license is for you?", 'adrotate'); ?> <a href="https://ajdg.solutions/products/adrotate-for-wordpress/?pk_campaign=adrotatefree-infopage&pk_kwd=compare_license" target="_blank"><?php _e('Compare Licenses', 'adrotate'); ?> »</a></p>
|
95 |
+
-->
|
96 |
</div>
|
97 |
</div>
|
|
|
98 |
|
99 |
<h3><?php _e('AdRotate is brought to you by', 'adrotate'); ?></h3>
|
100 |
<div class="postbox-adrotate">
|
104 |
</div>
|
105 |
</div>
|
106 |
|
107 |
+
</div>
|
108 |
+
</div>
|
109 |
+
|
110 |
+
<div id="postbox-container-3" class="postbox-container" style="width:50%;">
|
111 |
+
<div id="side-sortables" class="meta-box-sortables ui-sortable">
|
112 |
+
|
113 |
+
<h3><?php _e('Get more features with AdRotate Pro', 'adrotate'); ?></h3>
|
114 |
+
<div class="postbox-adrotate">
|
115 |
+
<div class="inside">
|
116 |
+
<p><img src="<?php echo WP_CONTENT_URL; ?>/plugins/adrotate/images/logo-60x60.png" alt="AdRotate logo" width="60" height="60" align="left" style="padding: 0 10px 10px 0;" /><?php _e('Benefit from extra features to reinforce your income with advertising campaigns. Make the most of your website with the powerful tools AdRotate Pro offers on top of the trusted features included in the free version.', 'adrotate'); ?> <?php _e('Want to know more about', 'adrotate'); ?> <a href="admin.php?page=adrotate-pro">AdRotate Pro</a>? <?php _e('Visit the', 'adrotate'); ?> <a href="https://ajdg.solutions/products/adrotate-for-wordpress/?pk_campaign=adrotatefree-infopage" target="_blank">AdRotate <?php _e('website', 'adrotate'); ?></a>.</p>
|
117 |
+
</div>
|
118 |
+
</div>
|
119 |
+
|
120 |
+
<h3><?php _e('AdRotate News and Developer Blog', 'adrotate'); ?></h3>
|
121 |
+
<div class="postbox-adrotate">
|
122 |
+
<div class="inside">
|
123 |
+
<?php
|
124 |
+
wp_widget_rss_output(array(
|
125 |
+
'url' => array('http://meandmymac.net/feed/', 'http://ajdg.solutions/feed/'),
|
126 |
+
'title' => 'News',
|
127 |
+
'items' => 6,
|
128 |
+
'show_summary' => 1,
|
129 |
+
'show_author' => 0,
|
130 |
+
'show_date' => 1)
|
131 |
+
);
|
132 |
+
?>
|
133 |
+
</div>
|
134 |
+
</div>
|
135 |
+
|
136 |
</div>
|
137 |
</div>
|
138 |
|
dashboard/settings/maintenance.php
CHANGED
@@ -66,6 +66,12 @@
|
|
66 |
<td valign="top"><?php _e('Current status of adverts', 'adrotate'); ?></td>
|
67 |
<td><?php _e('Normal', 'adrotate'); ?>: <?php echo $adrotate_advert_status['normal']; ?>, <?php _e('Error', 'adrotate'); ?>: <?php echo $adrotate_advert_status['error']; ?>, <?php _e('Expired', 'adrotate'); ?>: <?php echo $adrotate_advert_status['expired']; ?>, <?php _e('Expires Soon', 'adrotate'); ?>: <?php echo $adrotate_advert_status['expiressoon']; ?>, <?php _e('Unknown', 'adrotate'); ?>: <?php echo $adrotate_advert_status['unknown']; ?>.</td>
|
68 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
<tr>
|
70 |
<td><?php _e('Ad evaluation next run:', 'adrotate'); ?></td>
|
71 |
<td><?php if(!$adevaluate) _e('Not scheduled!', 'adrotate'); else echo date_i18n(get_option('date_format')." H:i", $adevaluate); ?></td>
|
66 |
<td valign="top"><?php _e('Current status of adverts', 'adrotate'); ?></td>
|
67 |
<td><?php _e('Normal', 'adrotate'); ?>: <?php echo $adrotate_advert_status['normal']; ?>, <?php _e('Error', 'adrotate'); ?>: <?php echo $adrotate_advert_status['error']; ?>, <?php _e('Expired', 'adrotate'); ?>: <?php echo $adrotate_advert_status['expired']; ?>, <?php _e('Expires Soon', 'adrotate'); ?>: <?php echo $adrotate_advert_status['expiressoon']; ?>, <?php _e('Unknown', 'adrotate'); ?>: <?php echo $adrotate_advert_status['unknown']; ?>.</td>
|
68 |
</tr>
|
69 |
+
<tr>
|
70 |
+
<td><?php _e('Banners/assets Folder', 'adrotate-pro'); ?></td>
|
71 |
+
<td>
|
72 |
+
<?php echo (is_writable(ABSPATH.'wp-content/banners/')) ? '<span style="color:#009900;">'.__('Exists and appears writable', 'adrotate-pro').'</span>' : '<span style="color:#CC2900;">'.__('Not writable or does not exist', 'adrotate-pro').'</span>'; ?>
|
73 |
+
</td>
|
74 |
+
</tr>
|
75 |
<tr>
|
76 |
<td><?php _e('Ad evaluation next run:', 'adrotate'); ?></td>
|
77 |
<td><?php if(!$adevaluate) _e('Not scheduled!', 'adrotate'); else echo date_i18n(get_option('date_format')." H:i", $adevaluate); ?></td>
|
images/{adrotate-logo-60x60.png → logo-60x60.png}
RENAMED
File without changes
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: adegans
|
|
3 |
Donate link: http://meandmymac.net/donate/?pk_campaign=adrotatefree-readme
|
4 |
Tags: ads, banner, commercial, admin, advertise, adrotator, plugin, random, rotator, ad, advertising, advertisement, block, blocks, advertiser, publisher, adsense, geo, geolocation, geotarget, chitika, clickbank, broadstreet, banner manager,advert manager, campaign manager, export, import, telize, maxmind, referrer, email, menu, statistics, stats, report, advert, adverts, popular, best, great, 2014, geoselect, geobytes, schedules, schedule, monetize, header, widget, javascript, jquery, tracking, clicks, impressions, rotate, zone, zones, sidebar, footer, content, posts, pages, 2015
|
5 |
Requires at least: 3.8
|
6 |
-
Tested up to: 4.4
|
7 |
-
Stable tag: 3.14.
|
8 |
License: GPLv3
|
9 |
|
10 |
The popular choice for monetizing your website with adverts while keeping things simple. Start making money today!
|
@@ -91,16 +91,26 @@ You can also post your questions on the [forum](https://ajdg.solutions/forums/?p
|
|
91 |
|
92 |
Be a Pro and go Pro. With [AdRotate Pro](https://ajdg.solutions/products/adrotate-for-wordpress/?pk_campaign=adrotatefree-readme)!
|
93 |
|
94 |
-
= 3.14.
|
95 |
-
* [change]
|
96 |
-
* [
|
97 |
-
* [
|
98 |
-
|
99 |
-
= 3.
|
100 |
-
* [
|
|
|
|
|
|
|
|
|
101 |
* [change] Dashboard tweaks
|
102 |
-
* [
|
103 |
-
* [
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
|
105 |
All recent changes are available on the [AdRotate website](https://ajdg.solutions/products/adrotate-for-wordpress/development/?pk_campaign=adrotatefree-readme).
|
106 |
|
@@ -108,10 +118,10 @@ NOTE: Unsolicited offers, parnterships, job offers, promotional emails or produc
|
|
108 |
|
109 |
== Upgrade Notice ==
|
110 |
|
111 |
-
= 3.14.
|
112 |
-
* [change]
|
113 |
-
* [
|
114 |
-
* [
|
115 |
|
116 |
All recent changes are available on the [AdRotate website](https://ajdg.solutions/products/adrotate-for-wordpress/development/?pk_campaign=adrotatefree-readme).
|
117 |
|
3 |
Donate link: http://meandmymac.net/donate/?pk_campaign=adrotatefree-readme
|
4 |
Tags: ads, banner, commercial, admin, advertise, adrotator, plugin, random, rotator, ad, advertising, advertisement, block, blocks, advertiser, publisher, adsense, geo, geolocation, geotarget, chitika, clickbank, broadstreet, banner manager,advert manager, campaign manager, export, import, telize, maxmind, referrer, email, menu, statistics, stats, report, advert, adverts, popular, best, great, 2014, geoselect, geobytes, schedules, schedule, monetize, header, widget, javascript, jquery, tracking, clicks, impressions, rotate, zone, zones, sidebar, footer, content, posts, pages, 2015
|
5 |
Requires at least: 3.8
|
6 |
+
Tested up to: 4.4.1
|
7 |
+
Stable tag: 3.14.2
|
8 |
License: GPLv3
|
9 |
|
10 |
The popular choice for monetizing your website with adverts while keeping things simple. Start making money today!
|
91 |
|
92 |
Be a Pro and go Pro. With [AdRotate Pro](https://ajdg.solutions/products/adrotate-for-wordpress/?pk_campaign=adrotatefree-readme)!
|
93 |
|
94 |
+
= 3.14.2 FREE =
|
95 |
+
* [change] Better W3 Total Cache support
|
96 |
+
* [fix] Post injection not always showing with multiple groups
|
97 |
+
* [fix] Removed obsolete useragent column from database
|
98 |
+
|
99 |
+
= 3.19 PRO =
|
100 |
+
* [new] Post Injection extends to widgets
|
101 |
+
* [new] Page Injection extends to widgets
|
102 |
+
* [new] All new widgets for easier control and setup
|
103 |
+
* [new] AdRotate Geo API v3
|
104 |
+
* [new] AdRotate Update API v4
|
105 |
* [change] Dashboard tweaks
|
106 |
+
* [change] Better W3 Total Cache support
|
107 |
+
* [fix] Post injection not always showing with multiple groups
|
108 |
+
* [fix] Better day recognition for schedules
|
109 |
+
* [fix] Correct schedule creation for renewing adverts
|
110 |
+
* [fix] Correct device icons for adverts in groups and schedules
|
111 |
+
* [fix] Removed obsolete useragent column from database
|
112 |
+
* [fix] Better use of WP_Error for Geo Targeting
|
113 |
+
* [fix] Better error reporting for Geo Targeting
|
114 |
|
115 |
All recent changes are available on the [AdRotate website](https://ajdg.solutions/products/adrotate-for-wordpress/development/?pk_campaign=adrotatefree-readme).
|
116 |
|
118 |
|
119 |
== Upgrade Notice ==
|
120 |
|
121 |
+
= 3.14.2 FREE =
|
122 |
+
* [change] Better W3 Total Cache support
|
123 |
+
* [fix] Post injection not always showing with multiple groups
|
124 |
+
* [fix] Removed obsolete useragent column from database
|
125 |
|
126 |
All recent changes are available on the [AdRotate website](https://ajdg.solutions/products/adrotate-for-wordpress/development/?pk_campaign=adrotatefree-readme).
|
127 |
|