Google Maps Widget – Ultimate Google Maps Plugin - Version 4.20

Version Description

  • 2021/01/29
  • modal map CSS fix
Download this release

Release Info

Developer WebFactory
Plugin Icon 128x128 Google Maps Widget – Ultimate Google Maps Plugin
Version 4.20
Comparing to
See all releases

Code changes from version 4.19 to 4.20

css/gmw-admin.css CHANGED
@@ -1,6 +1,6 @@
1
  /*
2
  * Maps Widget for Google Maps
3
- * (c) Web factory Ltd, 2012 - 2020
4
  */
5
 
6
  @import url(//fonts.googleapis.com/css?family=RobotoDraft:regular,bold,italic,thin,light&lang=en);
1
  /*
2
  * Maps Widget for Google Maps
3
+ * (c) Web factory Ltd, 2012 - 2021
4
  */
5
 
6
  @import url(//fonts.googleapis.com/css?family=RobotoDraft:regular,bold,italic,thin,light&lang=en);
css/gmw.css CHANGED
@@ -1,6 +1,6 @@
1
  /*
2
  * Maps Widget for Google Maps
3
- * (c) Web factory Ltd, 2012 - 2020
4
  */
5
 
6
  .gmw-header, .gmw-footer {
@@ -17,6 +17,10 @@
17
  background: url(../images/colorbox/loading.gif) no-repeat center center;
18
  }
19
 
 
 
 
 
20
  .gmw-error {
21
  color: #ff0000;
22
  }
1
  /*
2
  * Maps Widget for Google Maps
3
+ * (c) Web factory Ltd, 2012 - 2021
4
  */
5
 
6
  .gmw-header, .gmw-footer {
17
  background: url(../images/colorbox/loading.gif) no-repeat center center;
18
  }
19
 
20
+ #cboxContent .gmw-map {
21
+ height: 100%;
22
+ }
23
+
24
  .gmw-error {
25
  color: #ff0000;
26
  }
gmw-widget.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  * Maps Widget for Google Maps
4
  * Widget definition, admin GUI and widget rendering functions
5
- * (c) Web factory Ltd, 2012 - 2018
6
  */
7
 
8
 
2
  /*
3
  * Maps Widget for Google Maps
4
  * Widget definition, admin GUI and widget rendering functions
5
+ * (c) Web factory Ltd, 2012 - 2021
6
  */
7
 
8
 
google-maps-widget.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Maps Widget for Google Maps
4
  Plugin URI: https://www.gmapswidget.com/
5
  Description: Display a single image super-fast loading Google Map in a widget. A larger, full featured map is available in a lightbox. Includes a user-friendly interface and numerous appearance options.
6
  Author: WebFactory Ltd
7
- Version: 4.19
8
  Author URI: https://www.gmapswidget.com/
9
  Text Domain: google-maps-widget
10
  Domain Path: lang
@@ -12,7 +12,7 @@ Requires at least: 4.0
12
  Requires PHP: 5.2
13
  Tested up to: 5.6
14
 
15
- Copyright 2012 - 2020 WebFactory Ltd (email : gmw@webfactoryltd.com)
16
 
17
  This program is free software; you can redistribute it and/or modify
18
  it under the terms of the GNU General Public License, version 2, as
@@ -43,9 +43,6 @@ define('GMW_BASE_FILE', basename(__FILE__));
43
 
44
  require_once GMW_PLUGIN_DIR . 'gmw-widget.php';
45
 
46
- require_once GMW_PLUGIN_DIR . 'wp301/wp301.php';
47
- new wf_wp301(__FILE__, 'settings_page_gmw_options');
48
-
49
  class GMW {
50
  static $version;
51
  static $options = 'gmw_options';
@@ -100,8 +97,6 @@ class GMW {
100
 
101
  // display various notices
102
  add_action('current_screen', array('GMW', 'add_notices'));
103
-
104
- add_filter('install_plugins_table_api_args_featured', array('GMW', 'featured_plugins_tab'));
105
  } else {
106
  // enqueue frontend scripts
107
  add_action('wp_enqueue_scripts', array('GMW', 'register_scripts'));
@@ -252,20 +247,6 @@ class GMW {
252
  static function get_api_key($type = 'static') {
253
  $options = GMW::get_options();
254
  $default_api_keys = array('AIzaSyDlGWq9fCAJopqM0FakFvUWH0J52-tr3UM',
255
- 'AIzaSyA57MZ9B2Tez5JOTsnKFdzc-wi2A_pNOng',
256
- 'AIzaSyDucyTgTfcvoP7BUYo9xdy9mk9QS0WTIe0',
257
- 'AIzaSyBkMYtzfCn08icKNrr_-XySw7o8Bky0P94',
258
- 'AIzaSyBhFAsR3i68B_i_uta8Dq8RiBKl8TvjhI0',
259
- 'AIzaSyD5a9xsEzMRP1kBsSpeOq24iRBS04juDK4',
260
- 'AIzaSyDxqnkk_83SF6c5uvIIIZwILR51DlH1XY8',
261
- 'AIzaSyB2B_Kdw8afRUo2vd4wxCx1puD3QU0NnM8',
262
- 'AIzaSyAAznHhsGtU4J4ua8btTu_qHH2KBngDT3A',
263
- 'AIzaSyAMdoX_dkbALmUcN6vXazWXRoMz-gG8lVI',
264
- 'AIzaSyBvCK51-6tqdH0gu_lsUK8SxlGrvfUzIfo',
265
- 'AIzaSyBgRQXLrwhx6Gh8OS8B89Dzgy7vWHHaZY8',
266
- 'AIzaSyAafHqw4pT9u7LH3uW7NAj5gsLx9MzJrhc',
267
- 'AIzaSyDkIvwEd4xKBJFhBjJ3nnW6at8N8HeqLso',
268
- 'AIzaSyAi0nz2wyFAGU2jy3x_WsEZ-OCYqWFeS5Q',
269
  'AIzaSyCyD5k7KE2BqpCVoy4dPACJdjvRr2n5ofE');
270
 
271
  if ($type == 'test' && strlen($options['api_key']) < 30) {
@@ -980,7 +961,7 @@ class GMW {
980
  $options = GMW::get_options();
981
 
982
  echo '<div class="wrap gmw-options">';
983
- echo '<h1><img alt="' . __('Maps Widget for Google Maps', 'google-maps-widget') . '" title="' . __('Maps Widget for Google Maps', 'google-maps-widget') . '" height="55" src="' . GMW_PLUGIN_URL . 'images/gmw-logo.png"></h1>';
984
 
985
  echo '<form method="post" action="options.php">';
986
  settings_fields(GMW::$options);
@@ -1247,59 +1228,6 @@ class GMW {
1247
  } // activate
1248
 
1249
 
1250
- // helper function for adding plugins to fav list
1251
- static function featured_plugins_tab($args) {
1252
- add_filter('plugins_api_result', array('GMW', 'plugins_api_result'), 10, 3);
1253
-
1254
- return $args;
1255
- } // featured_plugins_tab
1256
-
1257
-
1258
- // add single plugin to list of favs
1259
- static function add_plugin_favs($plugin_slug, $res) {
1260
- if (!empty($res->plugins) && is_array($res->plugins)) {
1261
- foreach ($res->plugins as $plugin) {
1262
- if (is_object($plugin) && $plugin->slug == $plugin_slug) {
1263
- return $res;
1264
- }
1265
- } // foreach
1266
- }
1267
-
1268
- if ($plugin_info = get_transient('wf-plugin-info-' . $plugin_slug)) {
1269
- array_unshift($res->plugins, $plugin_info);
1270
- } else {
1271
- $plugin_info = plugins_api('plugin_information', array(
1272
- 'slug' => $plugin_slug,
1273
- 'is_ssl' => is_ssl(),
1274
- 'fields' => array(
1275
- 'banners' => true,
1276
- 'reviews' => true,
1277
- 'downloaded' => true,
1278
- 'active_installs' => true,
1279
- 'icons' => true,
1280
- 'short_description' => true,
1281
- )
1282
- ));
1283
- if (!is_wp_error($plugin_info)) {
1284
- $res->plugins[] = $plugin_info;
1285
- set_transient('wf-plugin-info-' . $plugin_slug, $plugin_info, DAY_IN_SECONDS * 7);
1286
- }
1287
- }
1288
-
1289
- return $res;
1290
- } // add_plugin_favs
1291
-
1292
-
1293
- // add our plugins to recommended list
1294
- static function plugins_api_result($res, $action, $args) {
1295
- remove_filter('plugins_api_result', array('GMW', 'plugins_api_result'), 10, 3);
1296
-
1297
- $res = self::add_plugin_favs('minimal-coming-soon-maintenance-mode', $res);
1298
-
1299
- return $res;
1300
- } // plugins_api_result
1301
-
1302
-
1303
  // counts the number of active GMW widgets in all sidebars
1304
  static function count_active_widgets() {
1305
  $count = 0;
4
  Plugin URI: https://www.gmapswidget.com/
5
  Description: Display a single image super-fast loading Google Map in a widget. A larger, full featured map is available in a lightbox. Includes a user-friendly interface and numerous appearance options.
6
  Author: WebFactory Ltd
7
+ Version: 4.20
8
  Author URI: https://www.gmapswidget.com/
9
  Text Domain: google-maps-widget
10
  Domain Path: lang
12
  Requires PHP: 5.2
13
  Tested up to: 5.6
14
 
15
+ Copyright 2012 - 2021 WebFactory Ltd (email : gmw@webfactoryltd.com)
16
 
17
  This program is free software; you can redistribute it and/or modify
18
  it under the terms of the GNU General Public License, version 2, as
43
 
44
  require_once GMW_PLUGIN_DIR . 'gmw-widget.php';
45
 
 
 
 
46
  class GMW {
47
  static $version;
48
  static $options = 'gmw_options';
97
 
98
  // display various notices
99
  add_action('current_screen', array('GMW', 'add_notices'));
 
 
100
  } else {
101
  // enqueue frontend scripts
102
  add_action('wp_enqueue_scripts', array('GMW', 'register_scripts'));
247
  static function get_api_key($type = 'static') {
248
  $options = GMW::get_options();
249
  $default_api_keys = array('AIzaSyDlGWq9fCAJopqM0FakFvUWH0J52-tr3UM',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
250
  'AIzaSyCyD5k7KE2BqpCVoy4dPACJdjvRr2n5ofE');
251
 
252
  if ($type == 'test' && strlen($options['api_key']) < 30) {
961
  $options = GMW::get_options();
962
 
963
  echo '<div class="wrap gmw-options">';
964
+ echo '<h1><img alt="' . __('Maps Widget for Google Maps', 'google-maps-widget') . '" title="' . __('Maps Widget for Google Maps', 'google-maps-widget') . '" height="55" src="' . GMW_PLUGIN_URL . 'images/gmw-logo.png"> Maps Widget for Google Maps</h1>';
965
 
966
  echo '<form method="post" action="options.php">';
967
  settings_fields(GMW::$options);
1228
  } // activate
1229
 
1230
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1231
  // counts the number of active GMW widgets in all sidebars
1232
  static function count_active_widgets() {
1233
  $count = 0;
js/gmw-admin-plugins.js CHANGED
@@ -1,6 +1,6 @@
1
  /*
2
  * Maps Widget for Google Maps
3
- * (c) Web factory Ltd, 2012 - 2020
4
  */
5
 
6
 
1
  /*
2
  * Maps Widget for Google Maps
3
+ * (c) Web factory Ltd, 2012 - 2021
4
  */
5
 
6
 
js/gmw-admin-pointers.js CHANGED
@@ -1,6 +1,6 @@
1
  /*
2
  * Maps Widget for Google Maps
3
- * (c) Web factory Ltd, 2012 - 2020
4
  */
5
 
6
 
1
  /*
2
  * Maps Widget for Google Maps
3
+ * (c) Web factory Ltd, 2012 - 2021
4
  */
5
 
6
 
js/gmw-admin.js CHANGED
@@ -1,6 +1,6 @@
1
  /*
2
  * Maps Widget for Google Maps
3
- * (c) Web factory Ltd, 2012 - 2020
4
  */
5
 
6
 
1
  /*
2
  * Maps Widget for Google Maps
3
+ * (c) Web factory Ltd, 2012 - 2021
4
  */
5
 
6
 
js/gmw.js CHANGED
@@ -1,6 +1,6 @@
1
  /*
2
  * Maps Widget for Google Maps
3
- * (c) Web factory Ltd, 2012 - 2018
4
  */
5
 
6
 
1
  /*
2
  * Maps Widget for Google Maps
3
+ * (c) Web factory Ltd, 2012 - 2021
4
  */
5
 
6
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ License: GPLv2 or later
5
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
6
  Requires at least: 4.0
7
  Tested up to: 5.6
8
- Stable tag: 4.19
9
  Requires PHP: 5.2
10
 
11
  Are your Google Maps slow? Try Map Widget for Google Maps. You'll have a fast Google Maps widget with a thumbnail & lightbox map in minutes!
@@ -181,6 +181,10 @@ Try <a href="http://www.niftymaps.co">Nifty Maps</a> - a comprehensive Map Build
181
 
182
  == Changelog ==
183
 
 
 
 
 
184
  = 4.19 =
185
  * 2020/10/09
186
  * minor fixes
5
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
6
  Requires at least: 4.0
7
  Tested up to: 5.6
8
+ Stable tag: 4.20
9
  Requires PHP: 5.2
10
 
11
  Are your Google Maps slow? Try Map Widget for Google Maps. You'll have a fast Google Maps widget with a thumbnail & lightbox map in minutes!
181
 
182
  == Changelog ==
183
 
184
+ = 4.20 =
185
+ * 2021/01/29
186
+ * modal map CSS fix
187
+
188
  = 4.19 =
189
  * 2020/10/09
190
  * minor fixes
wp301/wp301-logo.png DELETED
Binary file
wp301/wp301.js DELETED
@@ -1,128 +0,0 @@
1
- /**
2
- * Campaign for WP 301 Redirects PRO
3
- * (c) WebFactory Ltd, 2020
4
- */
5
-
6
- jQuery(document).ready(function ($) {
7
- $('#wp301promo_dismiss').on('click', function (e) {
8
- e.preventDefault();
9
-
10
- var slug = $(this).data('plugin-slug');
11
-
12
- $.get({
13
- url: ajaxurl,
14
- data: {
15
- action: 'wp301_promo_dismiss',
16
- slug: slug,
17
- _ajax_nonce: wp301_promo.nonce_wp301_promo_dismiss,
18
- },
19
- })
20
- .always(function (data) {})
21
- .done(function (data) {
22
- if (data.success) {
23
- if (slug == 'dashboard') {
24
- $('#wp301promo_widget').hide();
25
- } else {
26
- $('#wp301-dialog').dialog('close');
27
- }
28
- } else {
29
- alert('Sorry, something is not right. Please reload the page and try again.');
30
- }
31
- })
32
- .fail(function (data) {
33
- alert('Sorry, something is not right. Please reload the page and try again.');
34
- });
35
- }); // dismiss
36
-
37
-
38
- $('#wp301promo_submit').on('click', function (e) {
39
- e.preventDefault();
40
-
41
- var btn = $('#wp301promo_submit');
42
- var name = $('#wp301promo_name').val();
43
- var email = $('#wp301promo_email').val();
44
- var plugin = $('#wp301promo_plugin').val();
45
- var position = $('#wp301promo_position').val();
46
- var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
47
-
48
- if (name.length < 2 || name.length > 128) {
49
- $('#wp301promo_name').focus();
50
- alert('Please enter your name. Thank you 👍');
51
- return false;
52
- }
53
- if (!regex.test(email) || email.lenght > 128) {
54
- $('#wp301promo_email').focus();
55
- alert('Please enter a valid email address. Thank you 👍');
56
- return false;
57
- }
58
-
59
- $(btn).addClass('disabled');
60
- $.get({
61
- url: ajaxurl,
62
- data: {
63
- action: 'wp301_promo_submit',
64
- _ajax_nonce: wp301_promo.nonce_wp301_promo_submit,
65
- name: name,
66
- email: email,
67
- position: position,
68
- plugin: plugin,
69
- },
70
- })
71
- .always(function (data) {
72
- $(btn).removeClass('disabled');
73
- })
74
- .done(function (data) {
75
- if (data.success) {
76
- alert(data.data);
77
-
78
- if (position == 'dashboard') {
79
- $('#wp301promo_widget').hide();
80
- } else {
81
- $('#wp301-dialog').dialog('close');
82
- }
83
- } else {
84
- alert(data.data);
85
- }
86
- })
87
- .fail(function (data) {
88
- alert('Sorry, something is not right. Please reload the page and try again.');
89
- });
90
- });
91
-
92
-
93
- $('#wp301promo_name, #wp301promo_email').on('keypress', function (e) {
94
- if (e.which == 13) {
95
- $('#wp301promo_submit').trigger('click');
96
- }
97
- }); // on enter
98
-
99
-
100
- if (wp301_promo.open_popup && $('#wp301-dialog').length == 1) {
101
- $('#wp301-dialog').dialog({
102
- dialogClass: 'wp-dialog wp301-dialog',
103
- modal: true,
104
- resizable: false,
105
- width: 550,
106
- height: 'auto',
107
- show: 'fade',
108
- hide: 'fade',
109
- close: function (event, ui) {},
110
- open: function (event, ui) {
111
- $(this)
112
- .siblings()
113
- .find('span.ui-dialog-title')
114
- .html('Get a WP 301 Redirects PRO license for FREE <del>$158</del>');
115
- wp301_fix_dialog_close(event, ui);
116
- },
117
- autoOpen: true,
118
- closeOnEscape: false,
119
- });
120
- } // open dialog
121
- }); // jQuery ready
122
-
123
-
124
- function wp301_fix_dialog_close(event, ui) {
125
- jQuery('.ui-widget-overlay').bind('click', function () {
126
- jQuery('#' + event.target.id).dialog('close');
127
- });
128
- } // wp301_fix_dialog_close
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wp301/wp301.php DELETED
@@ -1,295 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Campaign for WP 301 Redirects PRO
5
- * (c) WebFactory Ltd, 2020
6
- */
7
-
8
-
9
- if (false == class_exists('wf_wp301')) {
10
- class wf_wp301
11
- {
12
- var $plugin_file = '';
13
- var $plugin_slug = '';
14
- var $plugin_screen = '';
15
- var $options = '';
16
- var $disable_dashboard = false;
17
-
18
-
19
- function __construct($plugin_file, $plugin_screen)
20
- {
21
- $this->plugin_file = $plugin_file;
22
- $this->plugin_slug = basename(dirname($plugin_file));
23
- $this->plugin_screen = $plugin_screen;
24
- $this->options = get_option('wp301promo', array());
25
-
26
- if (!is_admin() || !empty($this->options['email_submitted']) || date('Y-m-d') > '2020-11-05') {
27
- return;
28
- } else {
29
- add_action('admin_init', array($this, 'init'));
30
- }
31
- } // __construct
32
-
33
-
34
- function init()
35
- {
36
- add_action('wp_dashboard_setup', array($this, 'add_widget'));
37
- add_action('admin_enqueue_scripts', array($this, 'admin_enqueue_scripts'));
38
- add_action('wp_ajax_wp301_promo_submit', array($this, 'ajax_submit'));
39
- add_action('wp_ajax_wp301_promo_dismiss', array($this, 'ajax_dismiss'));
40
- add_action('admin_footer', array($this, 'admin_footer'));
41
- } // init
42
-
43
-
44
- function admin_enqueue_scripts()
45
- {
46
- $screen = get_current_screen();
47
-
48
- if ($screen->base != 'dashboard' && $screen->id != $this->plugin_screen) {
49
- return;
50
- }
51
-
52
- if ($screen->base == 'dashboard' && (!empty($this->options['popup_dismissed_dashboard']) || !empty($this->disable_dashboard))) {
53
- return;
54
- }
55
-
56
- if ($screen->id == $this->plugin_screen) {
57
- wp_enqueue_style('wp-jquery-ui-dialog');
58
- wp_enqueue_script('jquery-ui-dialog');
59
- }
60
-
61
- wp_enqueue_script('wp301_promo', plugin_dir_url($this->plugin_file) . 'wp301/wp301.js');
62
-
63
- $js_vars = array(
64
- 'nonce_wp301_promo_submit' => wp_create_nonce('wp301_submit'),
65
- 'nonce_wp301_promo_dismiss' => wp_create_nonce('wp301_dismiss'),
66
- );
67
-
68
- if (empty($this->options['popup_dismissed_' . $this->plugin_slug])) {
69
- $js_vars['open_popup'] = true;
70
- }
71
-
72
- wp_localize_script('wp301_promo', 'wp301_promo', $js_vars);
73
- } // admin_enqueue_scripts
74
-
75
-
76
- function ajax_dismiss()
77
- {
78
- if (!wp_verify_nonce(@$_GET['_ajax_nonce'], 'wp301_dismiss')) {
79
- wp_send_json_error('Something is not right. Please reload the page and try again.');
80
- }
81
-
82
- $slug = substr(strip_tags(trim(@$_GET['slug'])), 0, 64);
83
-
84
- $this->options['popup_dismissed_' . $slug] = true;
85
- $tmp = update_option('wp301promo', $this->options);
86
-
87
- if ($tmp) {
88
- wp_send_json_success();
89
- } else {
90
- wp_send_json_error();
91
- }
92
- } // ajax_dismiss
93
-
94
-
95
- function ajax_submit()
96
- {
97
- if (!wp_verify_nonce(@$_GET['_ajax_nonce'], 'wp301_submit')) {
98
- wp_send_json_error('Something is not right. Please reload the page and try again.');
99
- }
100
-
101
- $email = strip_tags(trim(@$_GET['email']));
102
- $name = strip_tags(trim(@$_GET['name']));
103
- $plugin = strip_tags(trim(@$_GET['plugin'])) . '-' . strip_tags(trim(@$_GET['position']));
104
-
105
- if (!is_email($email)) {
106
- wp_send_json_error('Please enter a valid email address.');
107
- }
108
-
109
- $url = add_query_arg(array('name' => $name, 'email' => $email, 'plugin' => $plugin), 'https://wp301redirects.com/subscribe/');
110
-
111
- $response = wp_remote_get($url, array('timeout' => 25));
112
-
113
- if (is_wp_error($response)) {
114
- wp_send_json_error('Something is not right. Please reload the page and try again.');
115
- }
116
-
117
- $body = @json_decode(wp_remote_retrieve_body($response), true);
118
- if (empty($body['success'])) {
119
- wp_send_json_error('Something is not right. Please reload the page and try again.');
120
- }
121
-
122
- $this->options['email_submitted'] = true;
123
- update_option('wp301promo', $this->options);
124
- wp_send_json_success('Thank you for trusting us with your email! You\'ll hear from us soon 🚀');
125
- } // ajax_submit
126
-
127
-
128
- function add_widget()
129
- {
130
- if (!empty($this->options['popup_dismissed_dashboard']) || !empty($this->disable_dashboard)) {
131
- return;
132
- }
133
-
134
- add_meta_box('wp301promo_widget', 'Get a WP 301 Redirects PRO license for FREE <del>$158</del>', array($this, 'widget_content'), 'dashboard', 'side', 'high');
135
- } // add_widget
136
-
137
-
138
- function widget_content()
139
- {
140
- $out = '';
141
-
142
- $out .= '<style>';
143
- $out .= '#wp301promo_widget .disabled { pointer-events: none; }';
144
- $out .= '#wp301promo_widget label { font-weight: normal; display: inline-block; width: 15%; margin-bottom: 10px; }';
145
- $out .= '#wp301promo_widget input { width: 74%; margin-bottom: 10px; }';
146
- $out .= '#wp301promo_widget .button-primary { padding: 14px 28px; text-decoration: none; line-height: 1; }';
147
- $out .= '#wp301promo_dismiss { font-style: italic; display: inline-block; color: #444; text-decoration: none; margin: 8px 0 0 0; }';
148
- $out .= '#wp301promo_dismiss:hover { text-decoration: underline; }';
149
- $out .= '#wp301promo_widget, #wp301promo_widget p { font-size: 14px; }';
150
- $out .= '#wp301promo_widget .title301 { font-weight: 600; margin: 10px 0 -10px 0; }';
151
- $out .= '#wp301promo_widget img { max-width: 50%; max-height: 80px; }';
152
- $out .= '#wp301promo_widget .center { text-align: center; }';
153
- $out .= '#wp301promo_email { margin-bottom: 0 !important; }';
154
- $out .= '#wp301promo_widget { background-color: #fafafa; }';
155
- $out .= '#wp301promo_widget li a { text-decoration: underline; }';
156
- $out .= '#wp301promo_widget .wp301inside { padding: 25px 12px 0px 12px; position: relative; }';
157
- $out .= '#wp301promo_widget p { margin-top: 14px; line-height: 1.5; }';
158
- $out .= '#wp301promo_widget small { margin-left: 17%; }';
159
- $out .= '#wp301promo_widget ul { font-size: 14px; margin: 0 0 20px 0; list-style-type: disc; list-style-position: inside; }';
160
- $out .= '#wp301promo_widget li { margin-bottom: 3px; }';
161
- $out .= '#wp301promo_submit span { display: none; text-decoration: none; margin-right: 10px; animation: wf-spin-animation 1.5s infinite linear; }';
162
- $out .= '#wp301promo_submit.disabled span { display: inline-block; }';
163
- $out .= '@keyframes wf-spin-animation {
164
- from { transform: rotate(0deg); }
165
- to { transform: rotate(360deg); }
166
- }';
167
- $out .= '#wp301promo_widget .inside { overflow: hidden; margin: 0; }
168
- #wp301promo_widget .ribbon { margin: 0; padding: 11px 20px 10px 20px; background: #007cba; color: #FFF; font-weight: 800; position: absolute; top: -17px; right: -17px; transform: translateX(30%) translateY(0%) rotate(45deg); transform-origin: top left; letter-spacing: 1px; }
169
- #wp301promo_widget .ribbon:before, #wp301promo_widget .ribbon:after { content: ""; position: absolute; top:0; margin: 0 -1px; width: 100%; height: 100%; background: #007cba; }
170
- #wp301promo_widget .ribbon:before { right:100%; }
171
- #wp301promo_widget .ribbon:after { left:100%; }';
172
- $out .= '</style>';
173
-
174
- $plugin_url = plugin_dir_url($this->plugin_file);
175
-
176
- $out .= '<div class="ribbon">FREE</div>';
177
- $out .= '<div class="wp301inside">';
178
-
179
- $out .= '<div class="center"><a href="https://wp301redirects.com/free-license/?ref=free-' . $this->plugin_slug . '-dashboard" target="_blank"><img src="' . $plugin_url . 'wp301/wp301-logo.png' . '" alt="WP 301 Redirects PRO" title="WP 301 Redirects PRO"></a></div>';
180
-
181
- $out .= '<p>On November 6th <a href="https://www.webfactoryltd.com/" target="_blank">WebFactory Ltd</a> will give away a limited number of lifetime WP 301 Redirect PRO licenses, <b>each for 10 sites</b>. A $158 retail value! 🚀 Leave your email, we\'ll send you a link &amp; download your copy.</p><p style="margin-bottom: 0;"><b>What do I get?</b></p>';
182
-
183
- $out .= '<ul>';
184
- $out .= '<li>Automatically fix 404 errors &amp; URL typos</li>';
185
- $out .= '<li>Create advanced redirect rules &amp; control affiliate links</li>';
186
- $out .= '<li>Detailed log of all redirects &amp; 404s</li>';
187
- $out .= '<li>Manage all sites\' licenses from a central Dashboard</li>';
188
- $out .= '<li>Lifetime license for 10 sites. <a href="https://wp301redirects.com/free-license/?ref=free-' . $this->plugin_slug . '-dashboard" target="_blank">See all features</a></li>';
189
- $out .= '</ul>';
190
-
191
- $out .= '
192
- <div>
193
- <label for="wp301promo_name">Name:</label>
194
- <input type="text" name="wp301promo_name" id="wp301promo_name" placeholder="How shall we call you?"><br>
195
- <label for="wp301promo_email">Email:</label>
196
- <input type="text" name="wp301promo_email" id="wp301promo_email" placeholder="Your best email address to get the plugin"><br>
197
- <small>We hate spam as much as you do and never send it!</small>
198
- <input type="hidden" id="wp301promo_plugin" value="' . $this->plugin_slug . '">
199
- <input type="hidden" id="wp301promo_position" value="dashboard">
200
- </div>
201
-
202
- <p class="center">
203
- <a id="wp301promo_submit" class="button button-primary" href="#"><span class="dashicons dashicons-update"></span>I Want My FREE License <del>$158</del></a><br>
204
- <a id="wp301promo_dismiss" class="" href="#" data-plugin-slug="dashboard">I don\'t want a free license; don\'t show this again</a>
205
- </p>
206
- </div>';
207
-
208
- echo $out;
209
- } // widget_content
210
-
211
-
212
- function admin_footer()
213
- {
214
- $screen = get_current_screen();
215
- if ($screen->id != $this->plugin_screen) {
216
- return;
217
- }
218
-
219
- $out = '';
220
-
221
- $out .= '<style>';
222
- $out .= '#wp301promo_widget .disabled { pointer-events: none; }';
223
- $out .= '.wp301-dialog .ui-dialog-titlebar-close { visibility: hidden; }';
224
- $out .= '#wp301-dialog label { font-weight: normal; display: inline-block; width: 15%; margin-bottom: 10px; }';
225
- $out .= '#wp301-dialog input { width: 74%; margin-bottom: 10px; }';
226
- $out .= '#wp301-dialog .button-primary { padding: 14px 28px; text-decoration: none; line-height: 1; }';
227
- $out .= '#wp301-dialog, #wp301-dialog p { font-size: 14px; }';
228
- $out .= '#wp301-dialog .title301 { font-size: 1.3em; font-weight: 600; margin: 10px 0 -10px 0; }';
229
- $out .= '#wp301-dialog img { max-width: 60%; }';
230
- $out .= '#wp301-dialog li a { text-decoration: underline; }';
231
- $out .= '#wp301-dialog small { margin-left: 16%; }';
232
- $out .= '#wp301-dialog .center { text-align: center; }';
233
- $out .= '#wp301-dialog, .wp301-dialog .ui-dialog-titlebar { background-color: #fafafa; }';
234
- $out .= '#wp301-dialog .wp301inside { padding: 12px 12px 0px 12px; }';
235
- $out .= '#wp301-dialog p { margin-top: 14px; line-height: 1.5; }';
236
- $out .= '#wp301-dialog ul { margin: 0 0 20px 0; list-style-type: disc; list-style-position: inside; }';
237
- $out .= '#wp301-dialog li { margin-bottom: 3px; }';
238
- $out .= '#wp301promo_dismiss { display: inline-block; color: #444; text-decoration: none; margin: 8px 0 0 0; }';
239
- $out .= '#wp301promo_dismiss:hover { text-decoration: underline; }';
240
- $out .= '#wp301promo_submit span { display: none; text-decoration: none; margin-right: 10px; animation: wf-spin-animation 1.5s infinite linear; }';
241
- $out .= '#wp301promo_submit.disabled span { display: inline-block; }';
242
- $out .= '@keyframes wf-spin-animation {
243
- from { transform: rotate(0deg); }
244
- to { transform: rotate(360deg); }
245
- }';
246
- $out .= '#wp301-dialog .inside { overflow: hidden; margin: 0; }
247
- #wp301-dialog .ribbon { margin: 0; padding: 11px 20px 10px 20px; background: #007cba; color: #FFF; font-weight: 800; position: absolute; top: -17px; right: -17px; transform: translateX(30%) translateY(0%) rotate(45deg); transform-origin: top left; letter-spacing: 1px; }
248
- #wp301-dialog .ribbon:before, #wp301-dialog .ribbon:after { content: ""; position: absolute; top:0; margin: 0 -1px; width: 100%; height: 100%; background: #007cba; }
249
- #wp301-dialog .ribbon:before { right:100%; }
250
- #wp301-dialog .ribbon:after { left:100%; }';
251
- $out .= '</style>';
252
-
253
- $out .= '<div id="wp301-dialog" style="display: none;" title="Get a WP 301 Redirects PRO license for FREE"><span class="ui-helper-hidden-accessible"><input type="text"/></span>';
254
-
255
- $plugin_url = plugin_dir_url($this->plugin_file);
256
-
257
- $out .= '<div class="wp301inside">';
258
- $out .= '<div class="ribbon">FREE</div>';
259
-
260
- $out .= '<div class="center"><a href="https://wp301redirects.com/free-license/?ref=free-' . $this->plugin_slug . '-popup" target="_blank"><img src="' . $plugin_url . 'wp301/wp301-logo.png' . '" alt="WP 301 Redirects PRO" title="WP 301 Redirects PRO"></a></div>';
261
-
262
- $out .= '<p>On November 6th <a href="https://www.webfactoryltd.com/" target="_blank">WebFactory Ltd</a> will give away a limited number of lifetime WP 301 Redirect PRO licenses, <b>each for 10 sites</b>. A $158 retail value! 🚀 Leave your email, we\'ll send you a link &amp; download your copy.</p><p style="margin-bottom: 0;"><b>What do I get?</b></p>';
263
-
264
- $out .= '<ul>';
265
- $out .= '<li>Automatically fix 404 errors &amp; URL typos</li>';
266
- $out .= '<li>Create advanced redirect rules &amp; control affiliate links</li>';
267
- $out .= '<li>Detailed log of all redirects &amp; 404s</li>';
268
- $out .= '<li>Manage all sites\' licenses from a central Dashboard</li>';
269
- $out .= '<li>Lifetime license for 10 sites. <a href="https://wp301redirects.com/free-license/?ref=free-' . $this->plugin_slug . '-dashboard" target="_blank">See all features</a></li>';
270
- $out .= '</ul>';
271
-
272
- $out .= '
273
- <div>
274
- <label for="wp301promo_name">Name:</label>
275
- <input type="text" name="wp301promo_name" id="wp301promo_name" placeholder="How shall we call you?"><br>
276
- <label for="wp301promo_email">Email:</label>
277
- <input type="text" name="wp301promo_email" id="wp301promo_email" placeholder="Your best email address to get the plugin"><br>
278
- <small>We hate spam as much as you do and never send it!</small>
279
- <input type="hidden" id="wp301promo_plugin" value="' . $this->plugin_slug . '">
280
- <input type="hidden" id="wp301promo_position" value="popup">
281
- </div>
282
-
283
- <p class="center">
284
- <a id="wp301promo_submit" class="button button-primary" href="#"><span class="dashicons dashicons-update"></span>I Want My FREE License <del>$158</del></a><br>
285
- <a id="wp301promo_dismiss" class="" href="#" data-plugin-slug="' . $this->plugin_slug . '">I don\'t want a free license; don\'t show this again</a>
286
- </p>
287
-
288
- </div>';
289
-
290
- $out .= '</div>';
291
-
292
- echo $out;
293
- } // wp_footer
294
- } // wf_wp301
295
- }