Easy Smooth Scroll Links - Version 2.21

Version Description

  • 2020/10/20
  • minor update
Download this release

Release Info

Developer WebFactory
Plugin Icon 128x128 Easy Smooth Scroll Links
Version 2.21
Comparing to
See all releases

Code changes from version 2.2 to 2.21

Files changed (6) hide show
  1. index.php +7 -4
  2. options.php +5 -5
  3. readme.txt +1 -1
  4. wp301/wp301-logo.png +0 -0
  5. wp301/wp301.js +128 -0
  6. wp301/wp301.php +295 -0
index.php CHANGED
@@ -2,14 +2,18 @@
2
  /*
3
  Plugin Name: Easy Smooth Scroll Links
4
  Description: Adds interesting scroll animation effects to page anchors, smooth scroll and more.
5
- Version: 2.2
 
 
6
  Author: WebFactory Ltd
7
- Author URI: https://www.pandasilk.com/wordpress-easy-smooth-scroll-links-plugin/
8
  Text Domain: easy-smooth-scroll-links
9
- Domain Path: /languages
10
  License: GPLv2 or later
11
  */
12
 
 
 
 
13
  function essl_text_domain() {
14
  load_plugin_textdomain('easy-smooth-scroll-links', false, basename( dirname( __FILE__ ) ) . '/languages' );
15
  }
@@ -212,7 +216,6 @@ define('ESSLPluginOptions_NICK', 'ESSL');
212
  jQuery.noConflict();
213
  (function( $ ) {
214
  $(function() {
215
- // More code using $ as alias to jQuery
216
  $("area[href*=\\#],a[href*=\\#]:not([href=\\#]):not([href^='\\#tab']):not([href^='\\#quicktab']):not([href^='\\#pane'])<?php if($essl_exclude_begin) echo $essl_exclude_begin; ?><?php if($essl_exclude_match) echo $essl_exclude_match; ?>").click(function() {
217
  if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
218
  var target = $(this.hash);
2
  /*
3
  Plugin Name: Easy Smooth Scroll Links
4
  Description: Adds interesting scroll animation effects to page anchors, smooth scroll and more.
5
+ Version: 2.21
6
+ Requires at least: 3.8
7
+ Tested up to: 5.6
8
  Author: WebFactory Ltd
9
+ Author URI: https://www.webfactoryltd.com/
10
  Text Domain: easy-smooth-scroll-links
 
11
  License: GPLv2 or later
12
  */
13
 
14
+ require_once dirname(__FILE__) . '/wp301/wp301.php';
15
+ new wf_wp301(__FILE__, 'settings_page_essl-plugin-options_options');
16
+
17
  function essl_text_domain() {
18
  load_plugin_textdomain('easy-smooth-scroll-links', false, basename( dirname( __FILE__ ) ) . '/languages' );
19
  }
216
  jQuery.noConflict();
217
  (function( $ ) {
218
  $(function() {
 
219
  $("area[href*=\\#],a[href*=\\#]:not([href=\\#]):not([href^='\\#tab']):not([href^='\\#quicktab']):not([href^='\\#pane'])<?php if($essl_exclude_begin) echo $essl_exclude_begin; ?><?php if($essl_exclude_match) echo $essl_exclude_match; ?>").click(function() {
220
  if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
221
  var target = $(this.hash);
options.php CHANGED
@@ -1,11 +1,11 @@
1
  <div class="wrap">
2
  <h2><?php _e('Easy Smooth Scroll Links Setting', 'easy-smooth-scroll-links' ); ?></h2>
3
 
4
- <ul>
5
- <li>
6
- <a href="https://www.pandasilk.com/wordpress-easy-smooth-scroll-links-plugin/" target="_blank" rel="noopener"><?php _e('Documents and Troubleshooting', 'easy-smooth-scroll-links' ); ?>
7
  </a>
8
- </li>
9
  <li>
10
  <a href="https://wordpress.org/support/plugin/easy-smooth-scroll-links" target="_blank" rel="noopener"><?php _e('Support Forum on WordPress.org', 'easy-smooth-scroll-links' ); ?>
11
  </a>
@@ -187,7 +187,7 @@
187
  <tfoot>
188
  <tr>
189
  <th>
190
- <input type="submit" name="submit" value="Save Settings" class="button button-primary" onClick="return empty()" />
191
  </th>
192
  </tr>
193
  </tfoot>
1
  <div class="wrap">
2
  <h2><?php _e('Easy Smooth Scroll Links Setting', 'easy-smooth-scroll-links' ); ?></h2>
3
 
4
+ <ul>
5
+ <li>
6
+ <a href="https://wordpress.org/support/plugin/easy-smooth-scroll-links/reviews/#new-post" target="_blank" rel="noopener">Reviews keep this plugin free. Please leave a review! Thank you 👍
7
  </a>
8
+ </li>
9
  <li>
10
  <a href="https://wordpress.org/support/plugin/easy-smooth-scroll-links" target="_blank" rel="noopener"><?php _e('Support Forum on WordPress.org', 'easy-smooth-scroll-links' ); ?>
11
  </a>
187
  <tfoot>
188
  <tr>
189
  <th>
190
+ <p class="alignleft"><input type="submit" name="submit" value="Save Settings" class="button button-primary" onClick="return empty()"></p>
191
  </th>
192
  </tr>
193
  </tfoot>
readme.txt CHANGED
@@ -1 +1 @@
1
- === Easy Smooth Scroll Links - Smooth Scrolling Anchor ===
1
+ === Easy Smooth Scroll Links - Smooth Scrolling Anchor ===
wp301/wp301-logo.png ADDED
Binary file
wp301/wp301.js ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 ADDED
@@ -0,0 +1,295 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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: 45%; 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 . '-popup" 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
+ }