AdRotate Banner Manager - Version 3.15.6

Version Description

FREE = * [new] Manually run internal updater from maintenance * [change] Dashboard tweaks * [change] More distinct style for update banner and button

Download this release

Release Info

Developer adegans
Plugin Icon 128x128 AdRotate Banner Manager
Version 3.15.6
Comparing to
See all releases

Code changes from version 3.15.5.2 to 3.15.6

adrotate-output.php CHANGED
@@ -698,7 +698,7 @@ function adrotate_notifications_dashboard() {
698
  $adrotate_has_error = adrotate_dashboard_error();
699
  if($adrotate_has_error) {
700
  echo '<div class="error" style="padding: 0; margin: 0;">';
701
- echo ' <div class="adrotate_banner">';
702
  echo ' <div class="text">AdRotate has detected '._n('one issue that requires', 'several issues that require', count($adrotate_has_error), 'adrotate-pro').' your attention:<br /><span>';
703
  foreach($adrotate_has_error as $error => $message) {
704
  echo '&raquo; '.$message.'<br />';
@@ -719,10 +719,10 @@ function adrotate_notifications_dashboard() {
719
  $pro_banner = get_option('adrotate_hide_banner');
720
  if($pro_banner != 1 AND $pro_banner < (adrotate_now() - 604800)) {
721
  echo '<div class="updated" style="padding: 0; margin: 0;">';
722
- echo ' <div class="adrotate_banner">';
723
  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>';
724
  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>';
725
- 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>';
726
  echo ' <div class="icon"><img title="" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
727
  echo ' </div>';
728
  echo '</div>';
@@ -731,10 +731,10 @@ function adrotate_notifications_dashboard() {
731
  $review_banner = get_option('adrotate_hide_review');
732
  if($review_banner != 1 AND $review_banner < (adrotate_now() - 2419200)) {
733
  echo '<div class="updated" style="padding: 0; margin: 0;">';
734
- echo ' <div class="adrotate_banner">';
735
  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>';
736
  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/?utm_campaign=adrotate-forum&utm_medium=review-banner&utm_source=adrotate-free" target="_blank">get in touch</a>!</span></div>';
737
- 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>';
738
  echo ' <div class="icon"><img title="" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
739
  echo ' </div>';
740
  echo '</div>';
@@ -745,14 +745,14 @@ function adrotate_notifications_dashboard() {
745
  $adrotate_has_competition = adrotate_check_competition();
746
  if($adrotate_has_competition) {
747
  echo '<div class="updated" style="padding: 0; margin: 0;">';
748
- echo ' <div class="adrotate_banner">';
749
  echo ' <div class="button_div"><a class="button button_large" data-slug="adrotate-switch" href="'.admin_url('plugin-install.php?tab=search&s=adrotate+switch').'" aria-label="Install AdRotate Switch now" data-name="AdRotate Switch">Install AdRotate Switch</a></div>';
750
  echo ' <div class="text">AdRotate found '._n('one plugin', 'several plugins', count($adrotate_has_competition), 'adrotate-pro').' that can be imported:<br /><span>';
751
  foreach($adrotate_has_competition as $plugin) {
752
  echo '&raquo; '.$plugin.'<br />';
753
  }
754
  echo ' </span>Configured plugins can be imported into AdRotate! What is <a target="_blank" href="https://ajdg.solutions/products/adrotate-switch/?utm_campaign=adrotateswitch-page&utm_medium=competition-banner&utm_source=adrotate-free">AdRotate Switch</a>?</div>';
755
- echo ' <a class="close_banner" href="admin.php?page=adrotate&hide=3"><img title="Close" src="'.plugins_url('/images/icon-close.png', __FILE__).'" alt=""/></a>';
756
  echo ' <div class="icon"><img title="AdRotate Logo" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
757
  echo ' </div>';
758
  echo '</div>';
@@ -765,10 +765,10 @@ function adrotate_notifications_dashboard() {
765
  $adrotate_db_version = get_option("adrotate_db_version");
766
  $adrotate_version = get_option("adrotate_version");
767
  if($adrotate_db_version['current'] < ADROTATE_DB_VERSION OR $adrotate_version['current'] < ADROTATE_VERSION) {
768
- echo '<div class="updated" style="padding: 0; margin: 0;">';
769
- echo ' <div class="adrotate_banner">';
770
- echo ' <div class="button_div"><a class="button" href="admin.php?page=adrotate&upgrade=1">Update Now</a></div>';
771
- 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>';
772
  echo ' <div class="icon"><img title="" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
773
  echo ' </div>';
774
  echo '</div>';
@@ -782,8 +782,11 @@ function adrotate_notifications_dashboard() {
782
  -------------------------------------------------------------*/
783
  function adrotate_welcome_pointer() {
784
  $pointer_content = '<h3>AdRotate '.ADROTATE_DISPLAY.'</h3>';
785
- $pointer_content .= '<p>'.__('Welcome, and thanks for using AdRotate. Everything related to AdRotate is in this menu. Check out the', 'adrotate').' <a href="http:\/\/ajdg.solutions\/manuals\/adrotate-manuals\/" target="_blank">'.__('manuals', 'adrotate').'</a> '.__('and', 'adrotate').' <a href="https:\/\/ajdg.solutions\/forums\/forum\/adrotate-for-wordpress\/" target="_blank">'.__('forums', 'adrotate').'</a>.</p>';
786
- $pointer_content .= '<p><strong>AdRotate Professional</strong><br />Did you know there is also a premium version of AdRotate? benefit from many <a href="admin.php?page=adrotate-pro">extra features</a>.</p>';
 
 
 
787
  ?>
788
  <script type="text/javascript">
789
  jQuery(document).ready(function($) {
698
  $adrotate_has_error = adrotate_dashboard_error();
699
  if($adrotate_has_error) {
700
  echo '<div class="error" style="padding: 0; margin: 0;">';
701
+ echo ' <div class="ajdg_notification">';
702
  echo ' <div class="text">AdRotate has detected '._n('one issue that requires', 'several issues that require', count($adrotate_has_error), 'adrotate-pro').' your attention:<br /><span>';
703
  foreach($adrotate_has_error as $error => $message) {
704
  echo '&raquo; '.$message.'<br />';
719
  $pro_banner = get_option('adrotate_hide_banner');
720
  if($pro_banner != 1 AND $pro_banner < (adrotate_now() - 604800)) {
721
  echo '<div class="updated" style="padding: 0; margin: 0;">';
722
+ echo ' <div class="ajdg_notification">';
723
  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>';
724
  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>';
725
+ echo ' <a class="close_notification" href="admin.php?page=adrotate-pro&hide=1"><img title="Close" src="'.plugins_url('/images/icon-close.png', __FILE__).'" alt=""/></a>';
726
  echo ' <div class="icon"><img title="" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
727
  echo ' </div>';
728
  echo '</div>';
731
  $review_banner = get_option('adrotate_hide_review');
732
  if($review_banner != 1 AND $review_banner < (adrotate_now() - 2419200)) {
733
  echo '<div class="updated" style="padding: 0; margin: 0;">';
734
+ echo ' <div class="ajdg_notification">';
735
  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>';
736
  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/?utm_campaign=adrotate-forum&utm_medium=review-banner&utm_source=adrotate-free" target="_blank">get in touch</a>!</span></div>';
737
+ echo ' <a class="close_notification" href="admin.php?page=adrotate&hide=2"><img title="Close" src="'.plugins_url('/images/icon-close.png', __FILE__).'" alt=""/></a>';
738
  echo ' <div class="icon"><img title="" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
739
  echo ' </div>';
740
  echo '</div>';
745
  $adrotate_has_competition = adrotate_check_competition();
746
  if($adrotate_has_competition) {
747
  echo '<div class="updated" style="padding: 0; margin: 0;">';
748
+ echo ' <div class="ajdg_notification">';
749
  echo ' <div class="button_div"><a class="button button_large" data-slug="adrotate-switch" href="'.admin_url('plugin-install.php?tab=search&s=adrotate+switch').'" aria-label="Install AdRotate Switch now" data-name="AdRotate Switch">Install AdRotate Switch</a></div>';
750
  echo ' <div class="text">AdRotate found '._n('one plugin', 'several plugins', count($adrotate_has_competition), 'adrotate-pro').' that can be imported:<br /><span>';
751
  foreach($adrotate_has_competition as $plugin) {
752
  echo '&raquo; '.$plugin.'<br />';
753
  }
754
  echo ' </span>Configured plugins can be imported into AdRotate! What is <a target="_blank" href="https://ajdg.solutions/products/adrotate-switch/?utm_campaign=adrotateswitch-page&utm_medium=competition-banner&utm_source=adrotate-free">AdRotate Switch</a>?</div>';
755
+ echo ' <a class="close_notification" href="admin.php?page=adrotate&hide=3"><img title="Close" src="'.plugins_url('/images/icon-close.png', __FILE__).'" alt=""/></a>';
756
  echo ' <div class="icon"><img title="AdRotate Logo" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
757
  echo ' </div>';
758
  echo '</div>';
765
  $adrotate_db_version = get_option("adrotate_db_version");
766
  $adrotate_version = get_option("adrotate_version");
767
  if($adrotate_db_version['current'] < ADROTATE_DB_VERSION OR $adrotate_version['current'] < ADROTATE_VERSION) {
768
+ echo '<div class="updated" style="padding: 0; margin: 0; border: 0;">';
769
+ echo ' <div class="adrotate_banner" style="background: url('.plugins_url('/images/update_bg.png', __FILE__).');">';
770
+ echo ' <div class="button_div"><a class="button" href="admin.php?page=adrotate&upgrade=1">Finish Update</a></div>';
771
+ echo ' <div class="text text_update">You have almost completed updating <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>';
772
  echo ' <div class="icon"><img title="" src="'.plugins_url('/images/logo-60x60.png', __FILE__).'" alt=""/></div>';
773
  echo ' </div>';
774
  echo '</div>';
782
  -------------------------------------------------------------*/
783
  function adrotate_welcome_pointer() {
784
  $pointer_content = '<h3>AdRotate '.ADROTATE_DISPLAY.'</h3>';
785
+ $pointer_content .= '<p>'.__('Thank you for choosing AdRotate. Everything related to AdRotate is in this menu. If you need help getting started take a look at the', 'adrotate').' <a href="http:\/\/ajdg.solutions\/manuals\/adrotate-manuals\/" target="_blank">'.__('manuals', 'adrotate').'</a> '.__('and', 'adrotate').' <a href="https:\/\/ajdg.solutions\/forums\/forum\/adrotate-for-wordpress\/" target="_blank">'.__('forums', 'adrotate').'</a>. These links are also available in the help tab in the top right.</p>';
786
+
787
+ $pointer_content .= '<p><strong>AdRotate Professional - <a href="admin.php?page=adrotate-pro">Learn more &raquo;</a></strong><br />If you like AdRotate, consider upgrading to AdRotate Pro and benefit from many <a href="admin.php?page=adrotate-pro">extra features</a> to make your campaigns more profitable!</p>';
788
+
789
+ $pointer_content .= '<p><strong>Ad blockers</strong><br />Disable your ad blocker in your browser so your adverts and dashboard show up correctly. AdRotate Pro has a <a href="admin.php?page=adrotate-pro">disguise feature</a> for adverts to help you avoid ad blockers.</p>';
790
  ?>
791
  <script type="text/javascript">
792
  jQuery(document).ready(function($) {
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: 3.15.5.2
11
  License: GPLv3
12
  */
13
 
@@ -22,8 +22,8 @@ License: GPLv3
22
  ------------------------------------------------------------------------------------ */
23
 
24
  /*--- AdRotate values ---------------------------------------*/
25
- define("ADROTATE_DISPLAY", '3.15.5.2');
26
- define("ADROTATE_VERSION", 381);
27
  define("ADROTATE_DB_VERSION", 58);
28
  /*-----------------------------------------------------------*/
29
 
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.15.6
11
  License: GPLv3
12
  */
13
 
22
  ------------------------------------------------------------------------------------ */
23
 
24
  /*--- AdRotate values ---------------------------------------*/
25
+ define("ADROTATE_DISPLAY", '3.15.6');
26
+ define("ADROTATE_VERSION", 383);
27
  define("ADROTATE_DB_VERSION", 58);
28
  /*-----------------------------------------------------------*/
29
 
dashboard/adrotatepro.php CHANGED
@@ -98,8 +98,8 @@
98
  <a href="https://ajdg.solutions/products/adrotate-for-wordpress/?utm_campaign=compare-licenses&utm_medium=pro-page&utm_source=adrotate-free"><img src="<?php echo plugins_url('/images/adrotate-product.png', dirname(__FILE__)); ?>" alt="adrotate-product" width="150" height="150" align="right" style="padding: 0 0 10px 10px;" /></a>
99
  <p><h4><?php _e('Single License', 'adrotate'); ?> (&euro; 29.00)</h4><?php _e('For one WordPress installation.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1124&utm_campaign=buy-single&utm_medium=pro-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
100
  <p><h4><?php _e('Duo License', 'adrotate'); ?> (&euro; 39.00)</h4><?php _e('For two WordPress installations.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1126&utm_campaign=buy-duo&utm_medium=pro-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
101
- <p><h4><?php _e('Multi License', 'adrotate'); ?> (&euro; 99.00)</h4><?php _e(' For up to five WordPress installations.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1128&utm_campaign=buy-multi&utm_medium=pro-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
102
- <p><h4><?php _e('Developer License', 'adrotate'); ?> (&euro; 249.00)</h4><?php _e('Unlimited WordPress installations and/or networks.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1130&utm_campaign=buy-developer&utm_medium=pro-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
103
  <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/?utm_campaign=compare-licenses&utm_medium=pro-page&utm_source=adrotate-free" target="_blank"><?php _e('All Licenses', 'adrotate'); ?> &raquo;</a></p>
104
  </div>
105
  </div>
98
  <a href="https://ajdg.solutions/products/adrotate-for-wordpress/?utm_campaign=compare-licenses&utm_medium=pro-page&utm_source=adrotate-free"><img src="<?php echo plugins_url('/images/adrotate-product.png', dirname(__FILE__)); ?>" alt="adrotate-product" width="150" height="150" align="right" style="padding: 0 0 10px 10px;" /></a>
99
  <p><h4><?php _e('Single License', 'adrotate'); ?> (&euro; 29.00)</h4><?php _e('For one WordPress installation.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1124&utm_campaign=buy-single&utm_medium=pro-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
100
  <p><h4><?php _e('Duo License', 'adrotate'); ?> (&euro; 39.00)</h4><?php _e('For two WordPress installations.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1126&utm_campaign=buy-duo&utm_medium=pro-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
101
+ <p><h4><?php _e('Multi License', 'adrotate'); ?> (&euro; 89.00)</h4><?php _e(' For up to five WordPress installations.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1128&utm_campaign=buy-multi&utm_medium=pro-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
102
+ <p><h4><?php _e('Developer License', 'adrotate'); ?> (&euro; 199.00)</h4><?php _e('Unlimited WordPress installations and/or networks.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1130&utm_campaign=buy-developer&utm_medium=pro-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
103
  <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/?utm_campaign=compare-licenses&utm_medium=pro-page&utm_source=adrotate-free" target="_blank"><?php _e('All Licenses', 'adrotate'); ?> &raquo;</a></p>
104
  </div>
105
  </div>
dashboard/info.php CHANGED
@@ -22,7 +22,7 @@ $data = get_option("adrotate_advert_status");
22
  <div id="normal-sortables" class="meta-box-sortables ui-sortable">
23
 
24
  <h3><?php _e('Currently', 'adrotate'); ?></h3>
25
- <div class="postbox-adrotate">
26
  <div class="inside">
27
  <table width="100%">
28
  <thead>
@@ -53,7 +53,7 @@ $data = get_option("adrotate_advert_status");
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'); ?><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&currency_code=EUR&bn=PP%2dDonationsBF&charset=UTF%2d8&amount=10" target="_blank">Donate &euro; 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;
@@ -76,13 +76,13 @@ $data = get_option("adrotate_advert_status");
76
  </div>
77
 
78
  <h3><?php _e('Buy AdRotate Professional', 'adrotate'); ?></h3>
79
- <div class="postbox-adrotate">
80
  <div class="inside">
81
  <a href="https://ajdg.solutions/products/adrotate-for-wordpress/?utm_campaign=compare-licenses&utm_medium=info-page&utm_source=adrotate-free"><img src="<?php echo plugins_url('/images/adrotate-product.png', dirname(__FILE__)); ?>" alt="adrotate-product" width="150" height="150" align="right" style="padding: 0 0 10px 10px;" /></a>
82
  <p><h4><?php _e('Single License', 'adrotate'); ?> (&euro; 29.00)</h4><?php _e('For one WordPress installation.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1124&utm_campaign=buy-single&utm_medium=info-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
83
  <p><h4><?php _e('Duo License', 'adrotate'); ?> (&euro; 39.00)</h4><?php _e('For two WordPress installations.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1126&utm_campaign=buy-duo&utm_medium=info-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
84
- <p><h4><?php _e('Multi License', 'adrotate'); ?> (&euro; 99.00)</h4><?php _e(' For up to five WordPress installations.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1128&utm_campaign=buy-multi&utm_medium=info-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
85
- <p><h4><?php _e('Developer License', 'adrotate'); ?> (&euro; 249.00)</h4><?php _e('Unlimited WordPress installations and/or networks.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1130&utm_campaign=buy-developer&utm_medium=info-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</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/?utm_campaign=compare-license&utm_medium=info-page&utm_source=adrotate-free" target="_blank"><?php _e('All Licenses', 'adrotate'); ?> &raquo;</a></p>
87
  <!--
88
  <img src="<?php echo plugins_url('/images/adrotate-product.png', dirname(__FILE__)); ?>" alt="adrotate-product" width="150" height="150" align="right" style="padding: 0 0 10px 10px;" />
@@ -103,7 +103,7 @@ $data = get_option("adrotate_advert_status");
103
  <div id="side-sortables" class="meta-box-sortables ui-sortable">
104
 
105
  <h3><?php _e('AdRotate News', 'adrotate'); ?></h3>
106
- <div class="postbox-adrotate">
107
  <div class="inside">
108
  <?php
109
  wp_widget_rss_output('http://ajdg.solutions/feed/', array(
@@ -117,9 +117,9 @@ $data = get_option("adrotate_advert_status");
117
  </div>
118
 
119
  <h3><?php _e('AdRotate is brought to you by', 'adrotate'); ?></h3>
120
- <div class="postbox-adrotate">
121
  <div class="inside">
122
- <p><img src="<?php echo plugins_url('/images/arnan-jungle.jpg', dirname(__FILE__)); ?>" alt="Arnan de Gans" width="55" height="55" align="left" class="adrotate-photo" style="margin: 0 10px 0 0;" />
123
  <a href="http://meandmymac.net/?utm_campaign=homepage&utm_medium=info-page&utm_source=adrotate-free" title="Arnan de Gans">Arnan de Gans</a> (<a href="https://ajdg.solutions/?utm_campaign=homepage&utm_medium=info-page&utm_source=adrotate-free" title="Arnan de Gans">AJdG Solutions</a>) - <?php _e('I am a digital nomad in the Philippines. Click on my name to find out more about me and what I am doing. Thanks for your support and for using my plugins!', 'adrotate'); ?></p>
124
  <?php
125
  wp_widget_rss_output('http://meandmymac.net/feed/', array(
22
  <div id="normal-sortables" class="meta-box-sortables ui-sortable">
23
 
24
  <h3><?php _e('Currently', 'adrotate'); ?></h3>
25
+ <div class="postbox-ajdg">
26
  <div class="inside">
27
  <table width="100%">
28
  <thead>
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'); ?><br /><br />
56
+ <center><a class="button-primary" href="https://paypal.me/arnandegans/10usd" 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;
76
  </div>
77
 
78
  <h3><?php _e('Buy AdRotate Professional', 'adrotate'); ?></h3>
79
+ <div class="postbox-ajdg">
80
  <div class="inside">
81
  <a href="https://ajdg.solutions/products/adrotate-for-wordpress/?utm_campaign=compare-licenses&utm_medium=info-page&utm_source=adrotate-free"><img src="<?php echo plugins_url('/images/adrotate-product.png', dirname(__FILE__)); ?>" alt="adrotate-product" width="150" height="150" align="right" style="padding: 0 0 10px 10px;" /></a>
82
  <p><h4><?php _e('Single License', 'adrotate'); ?> (&euro; 29.00)</h4><?php _e('For one WordPress installation.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1124&utm_campaign=buy-single&utm_medium=info-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
83
  <p><h4><?php _e('Duo License', 'adrotate'); ?> (&euro; 39.00)</h4><?php _e('For two WordPress installations.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1126&utm_campaign=buy-duo&utm_medium=info-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
84
+ <p><h4><?php _e('Multi License', 'adrotate'); ?> (&euro; 89.00)</h4><?php _e(' For up to five WordPress installations.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1128&utm_campaign=buy-multi&utm_medium=info-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</a></p>
85
+ <p><h4><?php _e('Developer License', 'adrotate'); ?> (&euro; 199.00)</h4><?php _e('Unlimited WordPress installations and/or networks.', 'adrotate'); ?> <a href="https://ajdg.solutions/cart/?add-to-cart=1130&utm_campaign=buy-developer&utm_medium=info-page&utm_source=adrotate-free" target="_blank"><?php _e('Buy now', 'adrotate'); ?> &raquo;</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/?utm_campaign=compare-license&utm_medium=info-page&utm_source=adrotate-free" target="_blank"><?php _e('All Licenses', 'adrotate'); ?> &raquo;</a></p>
87
  <!--
88
  <img src="<?php echo plugins_url('/images/adrotate-product.png', dirname(__FILE__)); ?>" alt="adrotate-product" width="150" height="150" align="right" style="padding: 0 0 10px 10px;" />
103
  <div id="side-sortables" class="meta-box-sortables ui-sortable">
104
 
105
  <h3><?php _e('AdRotate News', 'adrotate'); ?></h3>
106
+ <div class="postbox-ajdg">
107
  <div class="inside">
108
  <?php
109
  wp_widget_rss_output('http://ajdg.solutions/feed/', array(
117
  </div>
118
 
119
  <h3><?php _e('AdRotate is brought to you by', 'adrotate'); ?></h3>
120
+ <div class="postbox-ajdg">
121
  <div class="inside">
122
+ <p><img src="<?php echo plugins_url('/images/arnan-jungle.jpg', dirname(__FILE__)); ?>" alt="Arnan de Gans" width="55" height="55" align="left" class="ajdg-photo" style="margin: 0 10px 0 0;" />
123
  <a href="http://meandmymac.net/?utm_campaign=homepage&utm_medium=info-page&utm_source=adrotate-free" title="Arnan de Gans">Arnan de Gans</a> (<a href="https://ajdg.solutions/?utm_campaign=homepage&utm_medium=info-page&utm_source=adrotate-free" title="Arnan de Gans">AJdG Solutions</a>) - <?php _e('I am a digital nomad in the Philippines. Click on my name to find out more about me and what I am doing. Thanks for your support and for using my plugins!', 'adrotate'); ?></p>
124
  <?php
125
  wp_widget_rss_output('http://meandmymac.net/feed/', array(
dashboard/publisher/adverts-edit.php CHANGED
@@ -13,14 +13,13 @@ 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' => '', 'tracker' => 'N', 'desktop' => 'Y', 'mobile' => 'Y', 'tablet' => 'Y', 'responsive' => 'N', 'type' => 'empty', 'weight' => 6, 'sortorder' => 0, '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', 'hourimpressions' => 0, '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
 
20
  $schedule_id = $wpdb->insert_id;
21
- $wpdb->insert($wpdb->prefix.'adrotate_linkmeta', array('ad' => $edit_id, 'group' => 0, 'user' => 0, 'schedule' => $schedule_id));
22
  }
23
- $ad_edit_id = $edit_id;
24
  }
25
 
26
  $edit_banner = $wpdb->get_row("SELECT * FROM `{$wpdb->prefix}adrotate` WHERE `id` = {$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' => '', 'tracker' => 'N', 'desktop' => 'Y', 'mobile' => 'Y', 'tablet' => 'Y', 'responsive' => 'N', 'type' => 'empty', 'weight' => 6, 'sortorder' => 0, 'budget' => 0, 'crate' => 0, 'irate' => 0, 'cities' => serialize(array()), 'countries' => serialize(array())));
16
+ $ad_edit_id = $wpdb->insert_id;
17
 
18
+ $wpdb->insert($wpdb->prefix.'adrotate_schedule', array('name' => 'Schedule for ad '.$ad_edit_id, 'starttime' => $now, 'stoptime' => $in84days, 'maxclicks' => 0, 'maximpressions' => 0, 'spread' => 'N', 'hourimpressions' => 0, '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
 
20
  $schedule_id = $wpdb->insert_id;
21
+ $wpdb->insert($wpdb->prefix.'adrotate_linkmeta', array('ad' => $ad_edit_id, 'group' => 0, 'user' => 0, 'schedule' => $schedule_id));
22
  }
 
23
  }
24
 
25
  $edit_banner = $wpdb->get_row("SELECT * FROM `{$wpdb->prefix}adrotate` WHERE `id` = {$ad_edit_id};");
dashboard/settings/maintenance.php CHANGED
@@ -87,7 +87,14 @@
87
  <th width="15%" valign="top"><?php _e('AdRotate version', 'adrotate'); ?></th>
88
  <td><?php _e('Current:', 'adrotate'); ?> <?php echo '<span style="color:#009900;">'.$adrotate_version['current'].'</span>'; ?> <?php if($adrotate_version['current'] != ADROTATE_VERSION) { echo '<span style="color:#CC2900;">'; _e('Should be:', 'adrotate'); echo ' '.ADROTATE_VERSION; echo '</span>'; } ?><br /><?php _e('Previous:', 'adrotate'); ?> <?php echo $adrotate_version['previous']; ?></td>
89
  <th width="15%" valign="top"><?php _e('Database version', 'adrotate'); ?></th>
90
- <td><?php _e('Current:', 'adrotate'); ?> <?php echo '<span style="color:#009900;">'.$adrotate_db_version['current'].'</span>'; ?> <?php if($adrotate_version['current'] != ADROTATE_VERSION) { echo '<span style="color:#CC2900;">'; _e('Should be:', 'adrotate'); echo ' '.ADROTATE_DB_VERSION; echo '</span>'; } ?><br /><?php _e('Previous:', 'adrotate'); ?> <?php echo $adrotate_db_version['previous']; ?></td>
 
 
 
 
 
 
 
91
  </tr>
92
  </table>
93
 
87
  <th width="15%" valign="top"><?php _e('AdRotate version', 'adrotate'); ?></th>
88
  <td><?php _e('Current:', 'adrotate'); ?> <?php echo '<span style="color:#009900;">'.$adrotate_version['current'].'</span>'; ?> <?php if($adrotate_version['current'] != ADROTATE_VERSION) { echo '<span style="color:#CC2900;">'; _e('Should be:', 'adrotate'); echo ' '.ADROTATE_VERSION; echo '</span>'; } ?><br /><?php _e('Previous:', 'adrotate'); ?> <?php echo $adrotate_version['previous']; ?></td>
89
  <th width="15%" valign="top"><?php _e('Database version', 'adrotate'); ?></th>
90
+ <td><?php _e('Current:', 'adrotate'); ?> <?php echo '<span style="color:#009900;">'.$adrotate_db_version['current'].'</span>'; ?> <?php if($adrotate_db_version['current'] != ADROTATE_DB_VERSION) { echo '<span style="color:#CC2900;">'; _e('Should be:', 'adrotate'); echo ' '.ADROTATE_DB_VERSION; echo '</span>'; } ?><br /><?php _e('Previous:', 'adrotate'); ?> <?php echo $adrotate_db_version['previous']; ?></td>
91
+ </tr>
92
+ <tr>
93
+ <th valign="top">Manual upgrade</th>
94
+ <td colspan="3">
95
+ <a class="button" href="admin.php?page=adrotate&upgrade=1" onclick="return confirm('<?php _e('YOU ARE ABOUT TO DO A MANUAL UPDATE FOR ADROTATE.', 'adrotate'); ?>\n<?php _e('Make sure you have a database backup!', 'adrotate'); ?>\n\n<?php _e('This might take a while and may slow down your site during this action!', 'adrotate'); ?>\n\n<?php _e('OK to continue, CANCEL to stop.', 'adrotate'); ?>')">Run Updater</a><br />
96
+ <span class="description"><?php _e('Attempt to update the database and migrate settings where required or relevant. Normally you should not need or use this option.', 'adrotate'); ?></span>
97
+ </td>
98
  </tr>
99
  </table>
100
 
images/update_bg.png ADDED
Binary file
library/dashboard.css CHANGED
@@ -14,22 +14,23 @@
14
  .adrotate-select { padding:3px; border:1px solid #ccc; max-width:500px; max-height:200px; overflow-y:scroll; background-color:#fff; }
15
 
16
  /* Banner styles */
17
- .adrotate_banner { margin:12px 0; position:relative; overflow:hidden; }
18
- .adrotate_banner .text { color:#000; font-size:15px; line-height:26px; margin:18px 18px 14px; float:left; width:auto; max-width:80%; }
19
- .adrotate_banner .text span { font-size:12px; opacity: 0.7; }
20
- .adrotate_banner .button { float:left; border:none; font-size:14px; margin:18px 0 18px 16px; padding:12px 0; color:#FFF; text-shadow:none; font-weight:bold; background:#86c351; -moz-border-radius:3px; border-radius:3px; -webkit-border-radius:3px; text-decoration:none; height:50px; text-align:center; text-transform:uppercase; width:147px; box-shadow:none; line-height:26px; }
21
- .adrotate_banner .button:hover, .adrotate_pro_banner .button:focus { background:#0074A2; color:#FFF; }
22
- .adrotate_banner .button_large { width:200px; }
23
- .adrotate_banner .icon { float:right; margin:12px 8px 8px 8px; }
24
- .adrotate_banner .close_banner { float:right; margin:8px; cursor:pointer; }
 
25
 
26
  /* Dashboard styles */
27
- .postbox-adrotate { margin-bottom:20px; padding:0; min-width:255px; border:#dfdfdf 1px solid; background-color:#fff; -moz-box-shadow:inset 0 1px 0 #fff; -webkit-box-shadow:inset 0 1px 0 #fff; box-shadow:inset 0 1px 0 #fff; }
28
- .postbox-adrotate h3 { margin:0; padding:7px 10px 7px 10px; box-shadow:#ddd 0px 1px 0px 0px; -moz-box-shadow:inset 0 1px 0 #ddd; -webkit-box-shadow:#ddd 0px 1px 0px 0px; line-height:15px; }
29
- .postbox-adrotate .inside { margin:10px 0px 0px 10px; padding:0px 10px 10px 0px; min-height:40px; position:relative; }
30
  .inside { padding:6px 10px 12px; clear:both; }
31
  .pro-image { padding:0px 3px 0px 0px; }
32
- .adrotate-photo { border-radius: 5px; }
33
 
34
  /* Tablesorter */
35
  table.tablesorter thead tr .header { text-decoration: underline; cursor: pointer; }
14
  .adrotate-select { padding:3px; border:1px solid #ccc; max-width:500px; max-height:200px; overflow-y:scroll; background-color:#fff; }
15
 
16
  /* Banner styles */
17
+ .ajdg_notification { margin:12px 0; position:relative; overflow:hidden; }
18
+ .ajdg_notification .text { color:#000; font-size:15px; line-height:26px; margin:18px 18px 14px; float:left; width:auto; max-width:80%; }
19
+ .ajdg_notification .text span { font-size:12px; }
20
+ .ajdg_notification .button { float:left; border:1px solid #e2f4d2; font-size:14px; margin:18px 0 18px 16px; padding:12px 0; color:#FFF; text-shadow:none; font-weight:bold; background:#86c351; -moz-border-radius:3px; border-radius:3px; -webkit-border-radius:3px; text-decoration:none; height:50px; text-align:center; text-transform:uppercase; width:147px; box-shadow:none; line-height:26px; }
21
+ .ajdg_notification .button:hover { background:#5f9d28; color:#fff; border:1px solid #e2f4d2;}
22
+ .ajdg_notification .text_update { color:#fff; }
23
+ .ajdg_notification .button_large { width:200px; }
24
+ .ajdg_notification .icon { float:right; margin:12px 8px 8px 8px; }
25
+ .ajdg_notification .close_notification { float:right; margin:8px; cursor:pointer; }
26
 
27
  /* Dashboard styles */
28
+ .postbox-ajdg { margin-bottom:20px; padding:0; min-width:255px; border:#dfdfdf 1px solid; background-color:#fff; -moz-box-shadow:inset 0 1px 0 #fff; -webkit-box-shadow:inset 0 1px 0 #fff; box-shadow:inset 0 1px 0 #fff; }
29
+ .postbox-ajdg h3 { margin:0; padding:7px 10px 7px 10px; box-shadow:#ddd 0px 1px 0px 0px; -moz-box-shadow:inset 0 1px 0 #ddd; -webkit-box-shadow:#ddd 0px 1px 0px 0px; line-height:15px; }
30
+ .postbox-ajdg .inside { margin:10px 0px 0px 10px; padding:0px 10px 10px 0px; min-height:40px; position:relative; }
31
  .inside { padding:6px 10px 12px; clear:both; }
32
  .pro-image { padding:0px 3px 0px 0px; }
33
+ .ajdg-photo { border-radius: 5px; }
34
 
35
  /* Tablesorter */
36
  table.tablesorter thead tr .header { text-decoration: underline; cursor: pointer; }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://meandmymac.net/donate/?utm_campaign=donations&utm_medium=rea
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.6
7
- Stable tag: 3.15.5.2
8
  License: GPLv3
9
 
10
  The popular choice for monetizing your website with adverts while keeping things simple. Start making money today!
@@ -93,33 +93,18 @@ You can also post your questions on the [forum](https://ajdg.solutions/forums/?u
93
 
94
  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)!
95
 
 
 
 
 
 
96
  = 3.15.5.2 FREE =
97
  * [change] WordPress 4.6 compatibility
98
 
99
- = 3.15.5.1 FREE =
100
- * [change] Various tweaks
101
-
102
- = 4.0 PRO =
103
- * [new] CloudFlare Geo Support for countries
104
- * [new] Advertiser overview and management options
105
- * [new] Per advertiser permissions
106
- * [new] Much more error states in the notification bar
107
- * [new] Re-did email notifications to be more informative
108
- * [fix] Mobile icons not always correct for advertiser dashboard
109
- * [fix] Redirect for using Maintenance functions
110
- * [fix] Notification for support emails not always working
111
- * [fix] No longer list archived and binned adverts in groups
112
- * [fix] CPM for single adverts now counted correctly
113
- * [fix] Can no longer select the same group as fallback
114
- * [fix] No longer list archived and binned adverts in schedules
115
- * [fix] Geo Targeting for advertisers now saves correctly
116
- * [change] Better asset control for advertisers
117
- * [change] Responsive feature depreciated, use mobile feature instead
118
- * [change] Smaller geo cookie/$_SESSION header
119
- * [change] Updated push notifications to be more informative
120
- * [change] Impression spread is now per hour instead of per day
121
  * [change] Dashboard tweaks
122
- * [i18n] New and updated translation strings
123
 
124
  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).
125
 
@@ -127,8 +112,10 @@ NOTE: Unsolicited offers, parnterships, job offers, promotional emails or produc
127
 
128
  == Upgrade Notice ==
129
 
130
- = 3.15.5.2 FREE =
131
- * [change] WordPress 4.6 compatibility
 
 
132
 
133
  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).
134
 
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.6
7
+ Stable tag: 3.15.6
8
  License: GPLv3
9
 
10
  The popular choice for monetizing your website with adverts while keeping things simple. Start making money today!
93
 
94
  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)!
95
 
96
+ = 3.15.6 FREE =
97
+ * [new] Manually run internal updater from maintenance
98
+ * [change] Dashboard tweaks
99
+ * [change] More distinct style for update banner and button
100
+
101
  = 3.15.5.2 FREE =
102
  * [change] WordPress 4.6 compatibility
103
 
104
+ = 4.0.1 PRO =
105
+ * [new] Manually run internal updater from maintenance
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  * [change] Dashboard tweaks
107
+ * [change] More distinct style for update banner and button
108
 
109
  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).
110
 
112
 
113
  == Upgrade Notice ==
114
 
115
+ = 3.15.6 FREE =
116
+ * [new] Manually run internal updater from maintenance
117
+ * [change] Dashboard tweaks
118
+ * [change] More distinct style for update banner and button
119
 
120
  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).
121