Version Description
- Note: Graphs may show cluttered for previously collected stats.
- [change] Stats now stored in daily increments again
- [fix] Stats graphs now show more accurate dates/numbers for days
- [fix] Close link for 'upgrade to AdRotate Pro' banner
- [fix] Tracker data cleanup should now work
All recent changes are available on the AdRotate website.
=
Download this release
Release Info
Developer | adegans |
Plugin | AdRotate Banner Manager |
Version | 4.1 |
Comparing to | |
See all releases |
Code changes from version 4.0 to 4.1
- adrotate-output.php +1 -1
- adrotate-setup.php +17 -1
- adrotate-statistics.php +24 -9
- adrotate.php +5 -4
- dashboard/info.php +1 -1
- dashboard/publisher/adverts-edit.php +5 -5
- readme.txt +28 -20
adrotate-output.php
CHANGED
@@ -687,7 +687,7 @@ function adrotate_notifications_dashboard() {
|
|
687 |
echo ' <div class="ajdg_notification">';
|
688 |
echo ' <div class="button_div"><a class="button" target="_blank" href="https://ajdg.solutions/products/adrotate-for-wordpress/?add-to-cart=1126&utm_campaign=adrotate-page&utm_medium=upgrade-banner-button&utm_source=adrotate-free">'.__('Buy now', 'adrotate').'</a></div>';
|
689 |
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>';
|
690 |
-
echo ' <a class="close_notification" href="admin.php?page=adrotate
|
691 |
echo ' <div class="icon"><img title="" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
|
692 |
echo ' </div>';
|
693 |
echo '</div>';
|
687 |
echo ' <div class="ajdg_notification">';
|
688 |
echo ' <div class="button_div"><a class="button" target="_blank" href="https://ajdg.solutions/products/adrotate-for-wordpress/?add-to-cart=1126&utm_campaign=adrotate-page&utm_medium=upgrade-banner-button&utm_source=adrotate-free">'.__('Buy now', 'adrotate').'</a></div>';
|
689 |
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>';
|
690 |
+
echo ' <a class="close_notification" href="admin.php?page=adrotate&hide=1"><img title="Close" src="'.plugins_url('/images/icon-close.png', __FILE__).'" alt=""/></a>';
|
691 |
echo ' <div class="icon"><img title="" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
|
692 |
echo ' </div>';
|
693 |
echo '</div>';
|
adrotate-setup.php
CHANGED
@@ -418,6 +418,7 @@ function adrotate_database_install() {
|
|
418 |
`responsive` char(1) NOT NULL default 'N',
|
419 |
`type` varchar(10) NOT NULL default '0',
|
420 |
`weight` int(3) NOT NULL default '6',
|
|
|
421 |
`budget` double NOT NULL default '0',
|
422 |
`crate` double NOT NULL default '0',
|
423 |
`irate` double NOT NULL default '0',
|
@@ -486,6 +487,7 @@ function adrotate_database_install() {
|
|
486 |
`day_fri` char(1) NOT NULL default 'Y',
|
487 |
`day_sat` char(1) NOT NULL default 'Y',
|
488 |
`day_sun` char(1) NOT NULL default 'Y',
|
|
|
489 |
PRIMARY KEY (`id`),
|
490 |
KEY `starttime` (`starttime`)
|
491 |
) ".$charset_collate.$engine.";");
|
@@ -945,6 +947,13 @@ function adrotate_database_upgrade() {
|
|
945 |
$wpdb->query("DELETE FROM `{$wpdb->prefix}options` WHERE `option_name` LIKE '\_transient\_timeout\_adrotate\_%'");
|
946 |
}
|
947 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
948 |
update_option("adrotate_db_version", array('current' => ADROTATE_DB_VERSION, 'previous' => $adrotate_db_version['current']));
|
949 |
}
|
950 |
|
@@ -1129,6 +1138,11 @@ function adrotate_core_upgrade() {
|
|
1129 |
if(!wp_next_scheduled('adrotate_empty_trackerdata')) wp_schedule_event($firstrun, 'hourly', 'adrotate_empty_trackerdata');
|
1130 |
}
|
1131 |
|
|
|
|
|
|
|
|
|
|
|
1132 |
update_option("adrotate_version", array('current' => ADROTATE_VERSION, 'previous' => $adrotate_version['current']));
|
1133 |
}
|
1134 |
|
@@ -1223,7 +1237,9 @@ function adrotate_empty_trackerdata() {
|
|
1223 |
$clicks = $now - 86400;
|
1224 |
$impressions = $now - 3600;
|
1225 |
|
1226 |
-
$wpdb->query("DELETE FROM `{$wpdb->prefix}adrotate_tracker` WHERE
|
|
|
|
|
1227 |
}
|
1228 |
|
1229 |
/*-------------------------------------------------------------
|
418 |
`responsive` char(1) NOT NULL default 'N',
|
419 |
`type` varchar(10) NOT NULL default '0',
|
420 |
`weight` int(3) NOT NULL default '6',
|
421 |
+
`autodelete` char(1) NOT NULL default 'N',
|
422 |
`budget` double NOT NULL default '0',
|
423 |
`crate` double NOT NULL default '0',
|
424 |
`irate` double NOT NULL default '0',
|
487 |
`day_fri` char(1) NOT NULL default 'Y',
|
488 |
`day_sat` char(1) NOT NULL default 'Y',
|
489 |
`day_sun` char(1) NOT NULL default 'Y',
|
490 |
+
`autodelete` char(1) NOT NULL default 'N',
|
491 |
PRIMARY KEY (`id`),
|
492 |
KEY `starttime` (`starttime`)
|
493 |
) ".$charset_collate.$engine.";");
|
947 |
$wpdb->query("DELETE FROM `{$wpdb->prefix}options` WHERE `option_name` LIKE '\_transient\_timeout\_adrotate\_%'");
|
948 |
}
|
949 |
|
950 |
+
// Database: 63
|
951 |
+
// AdRotate: 4.1
|
952 |
+
if($adrotate_db_version['current'] < 63) {
|
953 |
+
adrotate_add_column("{$wpdb->prefix}adrotate", 'autodelete', 'char(1) NOT NULL default \'N\' AFTER `weight`');
|
954 |
+
adrotate_add_column("{$wpdb->prefix}adrotate_schedule", 'autodelete', 'char(1) NOT NULL default \'N\' AFTER `day_sun`');
|
955 |
+
}
|
956 |
+
|
957 |
update_option("adrotate_db_version", array('current' => ADROTATE_DB_VERSION, 'previous' => $adrotate_db_version['current']));
|
958 |
}
|
959 |
|
1138 |
if(!wp_next_scheduled('adrotate_empty_trackerdata')) wp_schedule_event($firstrun, 'hourly', 'adrotate_empty_trackerdata');
|
1139 |
}
|
1140 |
|
1141 |
+
// 4.1
|
1142 |
+
if($adrotate_version['current'] < 389) {
|
1143 |
+
adrotate_check_schedules();
|
1144 |
+
}
|
1145 |
+
|
1146 |
update_option("adrotate_version", array('current' => ADROTATE_VERSION, 'previous' => $adrotate_version['current']));
|
1147 |
}
|
1148 |
|
1237 |
$clicks = $now - 86400;
|
1238 |
$impressions = $now - 3600;
|
1239 |
|
1240 |
+
$wpdb->query("DELETE FROM `{$wpdb->prefix}adrotate_tracker` WHERE `timer` < {$impressions} AND `stat` = 'i';");
|
1241 |
+
$wpdb->query("DELETE FROM `{$wpdb->prefix}adrotate_tracker` WHERE `timer` < {$clicks} AND `stat` = 'c';");
|
1242 |
+
$wpdb->query("DELETE FROM `{$wpdb->prefix}adrotate_tracker` WHERE `ipaddress` = 'unknown' OR `ipaddress` = '';");
|
1243 |
}
|
1244 |
|
1245 |
/*-------------------------------------------------------------
|
adrotate-statistics.php
CHANGED
@@ -173,6 +173,20 @@ function adrotate_stats_graph($type, $id, $chartid, $start, $end) {
|
|
173 |
}
|
174 |
|
175 |
if($stats) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 |
$dates = $clicks = $impressions = ''; // To store the final graph data
|
177 |
$day_start = $start; // Midnight of the day (start)
|
178 |
$day_end = $day_start + 86399; // 1 second before midnight of the next day
|
@@ -186,17 +200,17 @@ function adrotate_stats_graph($type, $id, $chartid, $start, $end) {
|
|
186 |
if(empty($graph[$i]['clicks'])) $graph[$i]['clicks'] = '0';
|
187 |
if(empty($graph[$i]['impressions'])) $graph[$i]['impressions'] = '0';
|
188 |
|
189 |
-
$
|
190 |
-
$
|
191 |
} else {
|
192 |
-
$day_start
|
193 |
-
$day_end
|
194 |
-
$
|
195 |
-
$
|
196 |
$i++;
|
197 |
}
|
198 |
-
$graph[$i] = array('thetime' => $day_start, 'clicks' => $
|
199 |
-
unset($
|
200 |
}
|
201 |
|
202 |
foreach($graph as $result) {
|
@@ -204,6 +218,7 @@ function adrotate_stats_graph($type, $id, $chartid, $start, $end) {
|
|
204 |
$clicks .= ','.$result['clicks'];
|
205 |
$impressions .= ','.$result['impressions'];
|
206 |
}
|
|
|
207 |
|
208 |
$dates = trim($dates, ",");
|
209 |
$clicks = trim($clicks, ",");
|
@@ -212,7 +227,7 @@ function adrotate_stats_graph($type, $id, $chartid, $start, $end) {
|
|
212 |
$output = '';
|
213 |
$output .= '<div id="chart-1" style="height:300px; width:100%;"></div>';
|
214 |
$output .= adrotate_draw_graph($chartid, $dates, $clicks, $impressions);
|
215 |
-
unset($stats, $dates, $clicks, $impressions);
|
216 |
} else {
|
217 |
$output = __('No data to show!', 'adrotate');
|
218 |
}
|
173 |
}
|
174 |
|
175 |
if($stats) {
|
176 |
+
/* -- Add in 4.7 or so -- //
|
177 |
+
$dates = $clicks = $impressions = '';
|
178 |
+
|
179 |
+
foreach($stats as $result) {
|
180 |
+
if(empty($result['clicks'])) $result['clicks'] = '0';
|
181 |
+
if(empty($result['impressions'])) $result['impressions'] = '0';
|
182 |
+
|
183 |
+
$dates .= ',"'.date_i18n("d M", $result['thetime']).'"';
|
184 |
+
$clicks .= ','.$result['clicks'];
|
185 |
+
$impressions .= ','.$result['impressions'];
|
186 |
+
}
|
187 |
+
// -- End Add -- */
|
188 |
+
|
189 |
+
// -- Remove in 4.7 or so -- //
|
190 |
$dates = $clicks = $impressions = ''; // To store the final graph data
|
191 |
$day_start = $start; // Midnight of the day (start)
|
192 |
$day_end = $day_start + 86399; // 1 second before midnight of the next day
|
200 |
if(empty($graph[$i]['clicks'])) $graph[$i]['clicks'] = '0';
|
201 |
if(empty($graph[$i]['impressions'])) $graph[$i]['impressions'] = '0';
|
202 |
|
203 |
+
$sum_clicks = $graph[$i]['clicks'] + $result['clicks'];
|
204 |
+
$sum_impressions = $graph[$i]['impressions'] + $result['impressions'];
|
205 |
} else {
|
206 |
+
$day_start = $result['thetime'];
|
207 |
+
$day_end = $day_start + 86399;
|
208 |
+
$sum_clicks = $result['clicks'];
|
209 |
+
$sum_impressions = $result['impressions'];
|
210 |
$i++;
|
211 |
}
|
212 |
+
$graph[$i] = array('thetime' => $day_start, 'clicks' => $sum_clicks, 'impressions' => $sum_impressions);
|
213 |
+
unset($sum_clicks, $sum_impressions);
|
214 |
}
|
215 |
|
216 |
foreach($graph as $result) {
|
218 |
$clicks .= ','.$result['clicks'];
|
219 |
$impressions .= ','.$result['impressions'];
|
220 |
}
|
221 |
+
// -- End Remove -- //
|
222 |
|
223 |
$dates = trim($dates, ",");
|
224 |
$clicks = trim($clicks, ",");
|
227 |
$output = '';
|
228 |
$output .= '<div id="chart-1" style="height:300px; width:100%;"></div>';
|
229 |
$output .= adrotate_draw_graph($chartid, $dates, $clicks, $impressions);
|
230 |
+
unset($stats, $graph, $dates, $clicks, $impressions);
|
231 |
} else {
|
232 |
$output = __('No data to show!', 'adrotate');
|
233 |
}
|
adrotate.php
CHANGED
@@ -7,7 +7,7 @@ Author URI: http://ajdg.solutions/?utm_campaign=homepage&utm_medium=plugin-info&
|
|
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: 4.
|
11 |
License: GPLv3
|
12 |
*/
|
13 |
|
@@ -22,9 +22,9 @@ License: GPLv3
|
|
22 |
------------------------------------------------------------------------------------ */
|
23 |
|
24 |
/*--- AdRotate values ---------------------------------------*/
|
25 |
-
define("ADROTATE_DISPLAY", '4.
|
26 |
-
define("ADROTATE_VERSION",
|
27 |
-
define("ADROTATE_DB_VERSION",
|
28 |
/*-----------------------------------------------------------*/
|
29 |
|
30 |
/*--- Load Files --------------------------------------------*/
|
@@ -51,6 +51,7 @@ register_activation_hook(__FILE__, 'adrotate_activate');
|
|
51 |
register_deactivation_hook(__FILE__, 'adrotate_deactivate');
|
52 |
register_uninstall_hook(__FILE__, 'adrotate_uninstall');
|
53 |
add_action('adrotate_evaluate_ads', 'adrotate_evaluate_ads');
|
|
|
54 |
add_action('widgets_init', create_function('', 'return register_widget("adrotate_widgets");'));
|
55 |
/*-----------------------------------------------------------*/
|
56 |
|
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: 4.1
|
11 |
License: GPLv3
|
12 |
*/
|
13 |
|
22 |
------------------------------------------------------------------------------------ */
|
23 |
|
24 |
/*--- AdRotate values ---------------------------------------*/
|
25 |
+
define("ADROTATE_DISPLAY", '4.1');
|
26 |
+
define("ADROTATE_VERSION", 389);
|
27 |
+
define("ADROTATE_DB_VERSION", 63);
|
28 |
/*-----------------------------------------------------------*/
|
29 |
|
30 |
/*--- Load Files --------------------------------------------*/
|
51 |
register_deactivation_hook(__FILE__, 'adrotate_deactivate');
|
52 |
register_uninstall_hook(__FILE__, 'adrotate_uninstall');
|
53 |
add_action('adrotate_evaluate_ads', 'adrotate_evaluate_ads');
|
54 |
+
add_action('adrotate_empty_trackerdata', 'adrotate_empty_trackerdata');
|
55 |
add_action('widgets_init', create_function('', 'return register_widget("adrotate_widgets");'));
|
56 |
/*-----------------------------------------------------------*/
|
57 |
|
dashboard/info.php
CHANGED
@@ -49,7 +49,7 @@ $data = get_option("adrotate_advert_status");
|
|
49 |
<a href="http://www.arnan.me/?pk_campaign=adrotate-free&pk_kwd=infopage" title="arnan.me - Nomadic in the Philippines"><img src="<?php echo plugins_url('/images/arnan-credits.jpg', dirname(__FILE__)); ?>" alt="Arnan de Gans" align="center" class="ajdg-photo" width="100%" /></a></p>
|
50 |
|
51 |
<p><strong><?php _e('Get paid as a publisher', 'adrotate'); ?></strong></p>
|
52 |
-
<p><a href='http://
|
53 |
</td>
|
54 |
</tr>
|
55 |
</tbody>
|
49 |
<a href="http://www.arnan.me/?pk_campaign=adrotate-free&pk_kwd=infopage" title="arnan.me - Nomadic in the Philippines"><img src="<?php echo plugins_url('/images/arnan-credits.jpg', dirname(__FILE__)); ?>" alt="Arnan de Gans" align="center" class="ajdg-photo" width="100%" /></a></p>
|
50 |
|
51 |
<p><strong><?php _e('Get paid as a publisher', 'adrotate'); ?></strong></p>
|
52 |
+
<p><a href='http://ajdg.link/medianet'><img alt="Media.net" height="125" src="<?php echo plugins_url('/images/medianet.jpg', dirname(__FILE__)); ?>" /></a> <a href="http://ajdg.link/clicksor" target="_blank"><img alt="Clicksor" height="125"src="<?php echo plugins_url('/images/clicksor.png', dirname(__FILE__)); ?>"></a> <a href="http://ajdg.link/viglink"><img alt="VigLink" height="125" src="<?php echo plugins_url('/images/viglink.png', dirname(__FILE__)); ?>" /></a></p>
|
53 |
</td>
|
54 |
</tr>
|
55 |
</tbody>
|
dashboard/publisher/adverts-edit.php
CHANGED
@@ -12,10 +12,10 @@
|
|
12 |
if(!$ad_edit_id) {
|
13 |
$edit_id = $wpdb->get_var("SELECT `id` FROM `{$wpdb->prefix}adrotate` WHERE `type` = 'empty' ORDER BY `id` DESC LIMIT 1;");
|
14 |
if($edit_id == 0) {
|
15 |
-
$wpdb->insert($wpdb->prefix."adrotate", array('title' => '', 'bannercode' => '', 'thetime' => $now, 'updated' => $now, 'author' => $userdata->user_login, 'imagetype' => 'dropdown', 'image' => '', 'paid' => 'U', 'tracker' => 'N', 'desktop' => 'Y', 'mobile' => 'Y', 'tablet' => 'Y', 'os_ios' => 'Y', 'os_android' => 'Y', 'os_other' => 'Y', 'responsive' => 'N', 'type' => 'empty', 'weight' => 6, 'budget' => 0, 'crate' => 0, 'irate' => 0, 'cities' => serialize(array()), 'countries' => serialize(array())));
|
16 |
$edit_id = $wpdb->insert_id;
|
17 |
|
18 |
-
$wpdb->insert($wpdb->prefix.'adrotate_schedule', array('name' => 'Schedule for ad '.$edit_id, 'starttime' => $now, 'stoptime' => $in84days, 'maxclicks' => 0, 'maximpressions' => 0, 'spread' => 'N', 'daystarttime' => '0000', 'daystoptime' => '0000', 'day_mon' => 'Y', 'day_tue' => 'Y', 'day_wed' => 'Y', 'day_thu' => 'Y', 'day_fri' => 'Y', 'day_sat' => 'Y', 'day_sun' => 'Y'));
|
19 |
$schedule_id = $wpdb->insert_id;
|
20 |
$wpdb->insert($wpdb->prefix.'adrotate_linkmeta', array('ad' => $edit_id, 'group' => 0, 'user' => 0, 'schedule' => $schedule_id));
|
21 |
}
|
@@ -41,17 +41,17 @@ foreach($linkmeta as $meta) {
|
|
41 |
// Affiliate Partners
|
42 |
$partners = array(
|
43 |
"medianet" => array(
|
44 |
-
"url" => "http://
|
45 |
"alt" => "Media.net",
|
46 |
"image" => "medianet.jpg"
|
47 |
),
|
48 |
"clicksor" => array(
|
49 |
-
"url" => "http://
|
50 |
"alt" => "Clicksor",
|
51 |
"image" => "clicksor.png"
|
52 |
),
|
53 |
"viglink" => array(
|
54 |
-
"url" => "
|
55 |
"alt" => "VigLink",
|
56 |
"image" => "viglink.png"
|
57 |
),
|
12 |
if(!$ad_edit_id) {
|
13 |
$edit_id = $wpdb->get_var("SELECT `id` FROM `{$wpdb->prefix}adrotate` WHERE `type` = 'empty' ORDER BY `id` DESC LIMIT 1;");
|
14 |
if($edit_id == 0) {
|
15 |
+
$wpdb->insert($wpdb->prefix."adrotate", array('title' => '', 'bannercode' => '', 'thetime' => $now, 'updated' => $now, 'author' => $userdata->user_login, 'imagetype' => 'dropdown', 'image' => '', 'paid' => 'U', 'tracker' => 'N', 'desktop' => 'Y', 'mobile' => 'Y', 'tablet' => 'Y', 'os_ios' => 'Y', 'os_android' => 'Y', 'os_other' => 'Y', 'responsive' => 'N', 'type' => 'empty', 'weight' => 6, 'autodelete' => 'N', 'budget' => 0, 'crate' => 0, 'irate' => 0, 'cities' => serialize(array()), 'countries' => serialize(array())));
|
16 |
$edit_id = $wpdb->insert_id;
|
17 |
|
18 |
+
$wpdb->insert($wpdb->prefix.'adrotate_schedule', array('name' => 'Schedule for ad '.$edit_id, 'starttime' => $now, 'stoptime' => $in84days, 'maxclicks' => 0, 'maximpressions' => 0, 'spread' => 'N', 'daystarttime' => '0000', 'daystoptime' => '0000', 'day_mon' => 'Y', 'day_tue' => 'Y', 'day_wed' => 'Y', 'day_thu' => 'Y', 'day_fri' => 'Y', 'day_sat' => 'Y', 'day_sun' => 'Y', 'autodelete' => 'N'));
|
19 |
$schedule_id = $wpdb->insert_id;
|
20 |
$wpdb->insert($wpdb->prefix.'adrotate_linkmeta', array('ad' => $edit_id, 'group' => 0, 'user' => 0, 'schedule' => $schedule_id));
|
21 |
}
|
41 |
// Affiliate Partners
|
42 |
$partners = array(
|
43 |
"medianet" => array(
|
44 |
+
"url" => "http://ajdg.link/medianet",
|
45 |
"alt" => "Media.net",
|
46 |
"image" => "medianet.jpg"
|
47 |
),
|
48 |
"clicksor" => array(
|
49 |
+
"url" => "http://ajdg.link/clicksor",
|
50 |
"alt" => "Clicksor",
|
51 |
"image" => "clicksor.png"
|
52 |
),
|
53 |
"viglink" => array(
|
54 |
+
"url" => "http://ajdg.link/viglink",
|
55 |
"alt" => "VigLink",
|
56 |
"image" => "viglink.png"
|
57 |
),
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== AdRotate ===
|
2 |
Contributors: adegans
|
3 |
Donate link: http://www.arnan.me/donate/?utm_campaign=donations&utm_medium=readme&utm_source=adrotate-free
|
4 |
-
Tags: ads, advert, banner, advertise, adrotator,
|
5 |
Requires at least: 3.8
|
6 |
Tested up to: 4.7.3
|
7 |
-
Stable tag: 4.
|
8 |
License: GPLv3
|
9 |
|
10 |
The popular choice for monetizing your website with adverts while keeping things simple. Start making money today!
|
@@ -97,19 +97,26 @@ You can also post your questions on the [forum](https://ajdg.solutions/forums/?u
|
|
97 |
|
98 |
Be a Pro and go Pro. With [AdRotate Pro](https://ajdg.solutions/products/adrotate-for-wordpress/?utm_campaign=adrotate-page&utm_medium=readme&utm_source=adrotate-free)!
|
99 |
|
100 |
-
= 4.
|
101 |
-
*
|
102 |
-
* [change]
|
103 |
-
* [
|
104 |
-
* [
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
*
|
109 |
-
*
|
110 |
-
* [
|
111 |
-
* [
|
112 |
-
* [change]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
|
114 |
All recent changes are available on the [AdRotate website](https://ajdg.solutions/products/adrotate-for-wordpress/development/?utm_campaign=development&utm_medium=readme&utm_source=adrotate-free).
|
115 |
|
@@ -117,11 +124,12 @@ NOTE: Unsolicited offers, parnterships, job offers, promotional emails or produc
|
|
117 |
|
118 |
== Upgrade Notice ==
|
119 |
|
120 |
-
= 4.
|
121 |
-
*
|
122 |
-
* [change]
|
123 |
-
* [
|
124 |
-
* [
|
|
|
125 |
|
126 |
All recent changes are available on the [AdRotate website](https://ajdg.solutions/products/adrotate-for-wordpress/development/?utm_campaign=development&utm_medium=readme&utm_source=adrotate-free).
|
127 |
|
1 |
=== AdRotate ===
|
2 |
Contributors: adegans
|
3 |
Donate link: http://www.arnan.me/donate/?utm_campaign=donations&utm_medium=readme&utm_source=adrotate-free
|
4 |
+
Tags: ads, advert, banner, advertise, adrotator, advertising, adsense, geotargeting, banner manager, advert manager, statistics, html5
|
5 |
Requires at least: 3.8
|
6 |
Tested up to: 4.7.3
|
7 |
+
Stable tag: 4.1
|
8 |
License: GPLv3
|
9 |
|
10 |
The popular choice for monetizing your website with adverts while keeping things simple. Start making money today!
|
97 |
|
98 |
Be a Pro and go Pro. With [AdRotate Pro](https://ajdg.solutions/products/adrotate-for-wordpress/?utm_campaign=adrotate-page&utm_medium=readme&utm_source=adrotate-free)!
|
99 |
|
100 |
+
= 4.1 FREE =
|
101 |
+
* Note: Graphs may show cluttered for previously collected stats.
|
102 |
+
* [change] Stats now stored in daily increments again
|
103 |
+
* [fix] Stats graphs now show more accurate dates/numbers for days
|
104 |
+
* [fix] Close link for 'upgrade to AdRotate Pro' banner
|
105 |
+
* [fix] Tracker data cleanup should now work
|
106 |
+
|
107 |
+
= 4.5 PRO =
|
108 |
+
* Note: Graphs may show cluttered for previously collected stats.
|
109 |
+
* Note: Exports may be hard to read for previously collected stats.
|
110 |
+
* [new] Option to automatically delete expired adverts
|
111 |
+
* [new] Option to automatically delete expired schedules
|
112 |
+
* [change] Stats now stored in daily increments again
|
113 |
+
* [fix] Stats graphs now show more accurate dates/numbers for days
|
114 |
+
* [fix] Improved PHP7 compatibility
|
115 |
+
* [fix] Close link for 'rate AdRotate Pro' banner
|
116 |
+
* [fix] Impression spread indicator when selecting schedules
|
117 |
+
* [fix] Tracker data cleanup should now work
|
118 |
+
* [fix] Network widget showing correct settings after saving
|
119 |
+
* [fix] Network widget showing correct advert for single adverts
|
120 |
|
121 |
All recent changes are available on the [AdRotate website](https://ajdg.solutions/products/adrotate-for-wordpress/development/?utm_campaign=development&utm_medium=readme&utm_source=adrotate-free).
|
122 |
|
124 |
|
125 |
== Upgrade Notice ==
|
126 |
|
127 |
+
= 4.1 =
|
128 |
+
* Note: Graphs may show cluttered for previously collected stats.
|
129 |
+
* [change] Stats now stored in daily increments again
|
130 |
+
* [fix] Stats graphs now show more accurate dates/numbers for days
|
131 |
+
* [fix] Close link for 'upgrade to AdRotate Pro' banner
|
132 |
+
* [fix] Tracker data cleanup should now work
|
133 |
|
134 |
All recent changes are available on the [AdRotate website](https://ajdg.solutions/products/adrotate-for-wordpress/development/?utm_campaign=development&utm_medium=readme&utm_source=adrotate-free).
|
135 |
|