PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 1.0.7
Adminify – White Label, Admin Menu Editor, Login Customizer v1.0.7
4.3.1 4.3.0 4.2.26 4.2.25 4.2.24 4.2.23 4.2.22 4.2.21 4.2.20 4.2.19 4.2.18 4.2.17 4.2.16 4.2.15 4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 4.1.17 All 164 releases
adminify / Inc / Admin / AdminifyPromo.php

AdminifyPromo.php in Adminify – White Label, Admin Menu Editor, Login Customizer 1.0.7, at Inc/Admin/AdminifyPromo.php

449 lines 26.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPAdminify\Inc\Admin;
4
5 /**
6 * Author Name: Liton Arefin
7 * Author URL: https://jeweltheme.com
8 * Date: 25/07/2021
9 */
10
11 if (!defined('ABSPATH')) {
12 exit;
13 } // No, Direct access Sir !!!
14
15 class AdminifyPromo
16 {
17
18 public $timenow;
19
20 private static $instance = null;
21
22 public static function get_instance()
23 {
24 if (!self::$instance) {
25 self::$instance = new self;
26 }
27 return self::$instance;
28 }
29
30 public function __construct()
31 {
32 if (!is_admin()) {
33 return;
34 }
35
36 $this->timenow = strtotime("now");
37
38 // Admin Notices
39 add_action('admin_init', [$this, 'jltwp_adminify_admin_notice_init']);
40
41 //Notices
42 add_action('admin_notices', [$this, 'jltwp_adminify_latest_update_details'], 10);
43 add_action('network_admin_notices', [$this, 'jltwp_adminify_latest_update_details'], 10);
44
45 if (jltwp_adminify()->can_use_premium_code__premium_only()) {
46
47 // General Notices
48 add_action('admin_notices', [$this, 'jltwp_adminify_review_notice_generator'], 10);
49 } else {
50 add_action('admin_notices', [$this, 'jltwp_adminify_review_notice_generator'], 10);
51 add_action('admin_notices', [$this, 'jltwp_adminify_upgrade_pro_notice_generator'], 10);
52
53 //Black Friday & Cyber Monday Offer
54 add_action('admin_enqueue_scripts', [$this, 'jltwp_adminify_black_friday_cyber_monday_deals']);
55 }
56
57 // Styles
58 add_action('admin_print_styles', [$this, 'jltwp_adminify_admin_notice_styles']);
59 }
60
61 public function jltwp_adminify_admin_notice_init()
62 {
63 add_action('wp_ajax_adminify_dismiss_admin_notice', [$this, 'jltwp_adminify_dismiss_admin_notice']);
64 }
65
66 public function jltwp_adminify_latest_update_details()
67 {
68 if (!self::is_admin_notice_active('wp-adminify-update-notice-forever')) {
69 return;
70 }
71
72 $jltwp_adminify_changelog_message = sprintf(
73 __('%1$s %2$s %3$s %4$s %5$s <br> <strong>Check Changelogs for </strong> <a href="%6$s" target="__blank">%7$s</a>', WP_ADMINIFY_TD),
74
75 '<h3 class="adminify-update-head">' . WP_ADMINIFY . ' <span><small><em>v' . WP_ADMINIFY_VER . '</em></small>' . __(' has updates..', WP_ADMINIFY_TD) . '</span></h3><br>',
76 __('<span class="dashicons dashicons-yes"></span> <span class="adminify-changes-list"> Menu Editor not sorting problem fixed </span><br>', WP_ADMINIFY_TD),
77 __('<span class="dashicons dashicons-yes"></span> <span class="adminify-changes-list"> Admin Columns Items not sorting issue fixed </span><br>', WP_ADMINIFY_TD),
78 __('<span class="dashicons dashicons-yes"></span> <span class="adminify-changes-list"> WooCommerce plugin activation error and WooCommerce Dark Mode Style issues fixed </span><br>', WP_ADMINIFY_TD),
79 __('<span class="dashicons dashicons-yes"></span> <span class="adminify-changes-list"> Post Type names added on small font size on Admin Columns Taxonomy </span><br>', WP_ADMINIFY_TD),
80 esc_url_raw('https://wpadminify.com/changelogs/'),
81 __('More Details', WP_ADMINIFY_TD)
82 );
83
84 printf('<div data-dismissible="wp-adminify-update-notice-forever" id="wp-adminify-notice-forever" class="wp-adminify-notice updated notice notice-success is-dismissible"><p>%1$s</p></div>', $jltwp_adminify_changelog_message);
85 }
86
87
88 public function jltwp_adminify_admin_notice_ask_for_review($notice_key)
89 {
90 if (!self::is_admin_notice_active($notice_key)) {
91 return;
92 }
93
94 $this->jltwp_adminify_notice_header($notice_key);
95
96 echo sprintf(
97 __('<p>Enjoying <strong>%1$s ?</strong></p> <p>Seems like you are enjoying <strong>%1$s</strong>. Would you please show us a little love by rating us on <a href="%2$s" target="_blank" style="background:yellow; padding:2px 5px;">%3$s?</a></p>
98 <ul class="wp-adminify-review-ul">
99 <li><a href="%2$s" target="_blank" class="button adminify-sure-do-btn is-warning mt-4 upgrade-btn pt-1 pb-1 pr-4 pl-4" style="background-color: transparent; color: #fff;"><span class="dashicons dashicons-external" style="line-height:inherit"></span>Sure! I\'d love to!</a></li>
100 <li><a href="#" target="_blank" class="adminify-notice-dismiss button upgrade-btn mt-4 pt-1 pb-1 pr-4 pl-4"><span class="dashicons dashicons-smiley" style="line-height:inherit"></span>I\'ve already left a review</a></li>
101 <li><a href="#" target="_blank" class="adminify-notice-dismiss button is-danger upgrade-btn mt-4 pt-1 pb-1 pr-4 pl-4" style="background-color: #f14668 !important; color:#fff !important; border:1px solid #f14668;"><span class="dashicons dashicons-dismiss" style="line-height:inherit"></span>Never show again</a></li>
102 </ul>', WP_ADMINIFY_TD),
103 WP_ADMINIFY,
104 esc_url_raw('https://wordpress.org/support/plugin/adminify/reviews/?filter=5'),
105 __("WordPress.org", WP_ADMINIFY_TD)
106 );
107 $this->jltwp_adminify_notice_footer();
108 }
109
110
111 public function jltwp_adminify_admin_upgrade_pro_notice($notice_key)
112 {
113 if (!self::is_admin_notice_active($notice_key)) {
114 return;
115 }
116
117 $this->jltwp_adminify_notice_header($notice_key);
118
119 echo sprintf(
120 __(' <p> %1$s <strong>%2$s</strong> %3$s </p> <p><a class="button upgrade-btn mt-4" href="https://wpadminify.com/pricing" target="_blank">Upgrade Now</a></p>', WP_ADMINIFY_TD),
121 __("Unlock all possiblities - Schedule Dark Mode, hide all admin Notices, Pagespeed Insights, unlock Folders etc.. <br>", WP_ADMINIFY_TD),
122 __('20% Discount on all pricing, enjoy the freedom.<br>', WP_ADMINIFY_TD),
123 __("Coupon Code: <strong style='background:yellow; padding:1px 5px; color: #0347FF;'>ENJOY25</strong>", WP_ADMINIFY_TD)
124 );
125
126 $this->jltwp_adminify_notice_footer();
127 }
128
129
130 // Black Friday & Cyber Monday Offer
131 public function jltwp_adminify_admin_black_friday_cyber_monday_notice($notice_key)
132 {
133 if (!self::is_admin_notice_active($notice_key)) {
134 return;
135 }
136
137 $this->jltwp_adminify_notice_header($notice_key);
138 echo sprintf(__(' <p> Get these most out of WP Adminify!<br> Don\'t limit yourself with basic features. Enjoy Schedule Dark Mode, Disable all notices and unlimited possiblities!</p>
139 <p><a class="button upgrade-btn mt-4" href="https://wpadminify.com/pricing" target="_blank">Upgrade Now</a></p>', WP_ADMINIFY_TD));
140
141 $this->jltwp_adminify_notice_footer();
142 }
143
144
145 public function jltwp_adminify_notice_header($notice_key)
146 { ?>
147 <div data-dismissible="<?php echo esc_attr($notice_key); ?>" id="<?php echo esc_attr($notice_key); ?>" class="wp-adminify-notice adminify-review-notice-banner updated notice notice-success is-dismissible">
148 <div id="wp-adminify-bfcm-upgrade-notice" class="wp-adminify-review-notice">
149 <div class="wp-adminify-notice-banner">
150 <div class="wp-adminify-notice-contents columns is-tablet is-align-items-center">
151 <ul class="adminify-notice-left-nav column is-2-tablet">
152 <li>
153 <a class="is-flex is-align-items-center" target="_blank" href="https://wpadminify.com/kb">
154 <i class="is-rounded is-pulled-left mr-2 dashicons dashicons-book"></i>
155 <?php echo __('Docs', WP_ADMINIFY_TD); ?>
156 </a>
157 </li>
158 <li>
159 <a class="is-flex is-align-items-center" target="_blank" href="https://demo.wpadminify.com/">
160 <i class="is-rounded is-pulled-left mr-2 dashicons dashicons-fullscreen-alt"></i>
161 <?php echo __('Live Demo', WP_ADMINIFY_TD); ?>
162 </a>
163 </li>
164 <li>
165 <a class="is-flex is-align-items-center" target="_blank" href="https://wpadminify.com/faqs/">
166 <i class="is-rounded is-pulled-left mr-2 dashicons dashicons-editor-help"></i>
167 <?php echo __('F.A.Q.', WP_ADMINIFY_TD); ?>
168 </a>
169 </li>
170 <li>
171 <a class="is-flex is-align-items-center" target="_blank" href="https://wpadminify.com/contact/">
172 <i class="is-rounded is-pulled-left mr-2 dashicons dashicons-phone"></i>
173 <?php echo __('Contact Us', WP_ADMINIFY_TD); ?>
174 </a>
175 </li>
176 </ul>
177 <div class="adminify-notice-middle column is-8-tablet has-text-centered">
178
179 <?php }
180
181 public function jltwp_adminify_notice_footer()
182 { ?>
183 </div>
184
185 <div class="adminify-notice-right column is-2-tablet has-text-centered">
186 <ul class="adminify-notice-right-nav">
187 <li>
188 <a class="adminify-logo" href="https://wpadminify.com/" target="_blank">
189 <img src="<?php echo WP_ADMINIFY_ASSETS_IMAGE; ?>/logos/logo-text-dark.svg" alt="WP Adminify">
190 </a>
191 </li>
192 <li class="adminify-notice-social">
193 <a class="adminify-notice-social-icon" target="_blank" href="https://www.facebook.com/groups/jeweltheme">
194 <i class="is-rounded dashicons dashicons-facebook-alt"></i>
195 </a>
196 <a class="adminify-notice-social-icon" target="_blank" href="https://www.youtube.com/playlist?list=PLqpMw0NsHXV-EKj9Xm1DMGa6FGniHHly8">
197 <i class="is-rounded dashicons dashicons-youtube"></i>
198 </a>
199 <a class="adminify-notice-social-icon" target="_blank" href="https://twitter.com/jwthemeltd">
200 <i class="is-rounded dashicons dashicons-twitter"></i>
201 </a>
202 </li>
203 <li class="adminify-rate-us mt-3">
204 <div class="adminify-rate-contents">
205 <label class="adminify-rating-label">Rate us:</label>
206 <a class="adminify-rating is-inline-block" href="https://wordpress.org/support/plugin/adminify/reviews/?filter=5" target="_blank">
207 <span class="star">
208 <i class="dashicons dashicons-star-half"></i>
209 </span>
210 <span class="star">
211 <i class="dashicons dashicons-star-filled"></i>
212 </span>
213 <span class="star">
214 <i class="dashicons dashicons-star-filled"></i>
215 </span>
216 <span class="star">
217 <i class="dashicons dashicons-star-filled"></i>
218 </span>
219 <span class="star">
220 <i class="dashicons dashicons-star-filled"></i>
221 </span>
222 </a>
223 </div>
224 </li>
225 </ul>
226 </div>
227 </div>
228 </div>
229 </div>
230 </div>
231
232 <?php
233 }
234
235 public function jltwp_adminify_dismiss_admin_notice()
236 {
237 $option_name = sanitize_text_field($_POST['option_name']);
238 $dismissible_length = sanitize_text_field($_POST['dismissible_length']);
239
240 if ('forever' != $dismissible_length) {
241 // If $dismissible_length is not an integer default to 1
242 $dismissible_length = (0 == absint($dismissible_length)) ? 1 : $dismissible_length;
243 $dismissible_length = strtotime(absint($dismissible_length) . ' days');
244 }
245
246 check_ajax_referer('adminify-notice-nonce', 'notice_nonce');
247 self::set_admin_notice_cache($option_name, $dismissible_length);
248 wp_die();
249 }
250
251 public static function set_admin_notice_cache($id, $timeout)
252 {
253 $cache_key = 'wp-adminify-notice-' . md5($id);
254 update_site_option($cache_key, $timeout);
255
256 return true;
257 }
258
259 public static function is_admin_notice_active($arg)
260 {
261 $array = explode('-', $arg);
262 $length = array_pop($array);
263 $option_name = implode('-', $array);
264 $db_record = self::get_admin_notice_cache($option_name);
265
266 if ('forever' === $db_record) {
267 return false;
268 } elseif (absint($db_record) >= time()) {
269 return false;
270 } else {
271 return true;
272 }
273 }
274
275 public static function get_admin_notice_cache($id = false)
276 {
277 if (!$id) {
278 return false;
279 }
280
281 $cache_key = 'wp-adminify-notice-' . md5($id);
282 $timeout = get_site_option($cache_key);
283 $timeout = 'forever' === $timeout ? time() + 45 : $timeout;
284
285 if (empty($timeout) || time() > $timeout) {
286 return false;
287 }
288
289 return $timeout;
290 }
291
292 public function jltwp_adminify_admin_notice_styles()
293 {
294 $output_css = '';
295 $output_css .= '.wp-adminify-review-notice .notice-dismiss{padding:0 0 0 26px}.wp-adminify-notice .adminify-update-head{margin:0}.wp-adminify-notice .adminify-update-head span{font-size:.9em}.wp-adminify-notice .adminify-changes-list{padding-left:.5em}.wp-adminify-review-notice .notice-dismiss:before{display:none}.wp-adminify-review-notice.wp-adminify-review-notice{background-color:#fff;border-radius:3px;border-left:4px solid transparent;display:flex;align-items:center;padding:10px 10px 10px 0}.wp-adminify-review-notice .wp-adminify-review-thumbnail{width:160px;float:left;margin-right:20px;padding-top:20px;text-align:center;border-right:4px solid transparent}.wp-adminify-review-notice .wp-adminify-review-thumbnail img{vertical-align:middle}.wp-adminify-review-notice .wp-adminify-review-text{flex:0 0 1;overflow:hidden}.wp-adminify-review-notice .wp-adminify-review-text h3{font-size:24px;margin:0 0 5px;font-weight:400;line-height:1.3}.wp-adminify-review-notice .wp-adminify-review-text p{margin:0 0 5px}.wp-adminify-review-notice .wp-adminify-review-ul{margin:5px 0 0;padding:0}.wp-adminify-review-notice .wp-adminify-review-ul li{display:inline-block;margin:5px 15px 0 0}.wp-adminify-review-notice .wp-adminify-review-ul li a{display:inline-block;color:#4b00e7;text-decoration:none;padding-top:10px;position:relative}.wp-adminify-review-notice .wp-adminify-review-ul li a:not(.notice-dismiss) span.dashicons{font-size:17px;float:left;height:auto;width:auto;margin-right:3px}.wp-adminify #wpbody-content .wp-adminify-notice.adminify-review-notice-banner{background-color:#0347ff;border-left:0;padding-right:.5rem}.wp-adminify #wpbody-content .adminify-review-notice-banner .wp-adminify-notice-banner{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.wp-adminify-notice-banner .columns{margin-top:-2em!important;margin-bottom:-2em!important}.wp-adminify #wpbody-content .adminify-review-notice-banner .wp-adminify-review-notice{background-color:transparent;font-size:15px}.wp-adminify #wpbody-content .adminify-review-notice-banner #wp-adminify-bfcm-upgrade-notice p{color:#fff;font-size:15px}.wp-adminify #wpbody-content .adminify-review-notice-banner .adminify-notice-left-nav{margin:0}.wp-adminify #wpbody-content .adminify-review-notice-banner .adminify-notice-left-nav li{margin-bottom:5px}.wp-adminify #wpbody-content .adminify-review-notice-banner #wp-adminify-bfcm-upgrade-notice .adminify-notice-left-nav a{color:#fff}.wp-adminify #wpbody-content .adminify-review-notice-banner .adminify-notice-left-nav a i{background-color:#fff;color:#0347ff;font-size:20px;height:26px;width:26px;line-height:26px}.wp-adminify #wpbody-content .adminify-review-notice-banner .adminify-notice-middle .upgrade-btn{background-color:#fff;border:1px solid #fff;color:#0347ff;font-size:16px;font-weight:800;border-radius:8px}.wp-adminify #wpbody-content .adminify-review-notice-banner .adminify-notice-middle .upgrade-btn:hover{border:1px solid #fff!important;background:#0347ff!important;color:#fff!important}.wp-adminify #wpbody-content .adminify-review-notice-banner .adminify-notice-middle .upgrade-btn:focus{background-color:#fff}.adminify-review-notice-banner .adminify-logo{display:flex;margin:0 auto 1rem;max-width:135px}.wp-adminify #wpbody-content .adminify-review-notice-banner .adminify-notice-social-icon i{background-color:#fff;height:40px;width:40px;line-height:40px;margin:3px}.adminify-review-notice-banner .adminify-logo{max-width:135px}.wp-adminify #wpbody-content .adminify-review-notice-banner #wp-adminify-bfcm-upgrade-notice .adminify-rate-contents,.wp-adminify #wpbody-content .adminify-review-notice-banner #wp-adminify-bfcm-upgrade-notice .adminify-rate-contents a{color:#fff}.wp-adminify .adminify-review-notice-banner .adminify-rating{direction:rtl}.wp-adminify .adminify-review-notice-banner .adminify-rating label{font-size:0;line-height:0}.wp-adminify .adminify-review-notice-banner .adminify-rate-contents i{font-size:14px;height:auto;width:auto;line-height:0;vertical-align:middle}.adminify-rating input{display:none!important}.adminify-rating:hover span i:before{content:"\f154"}.adminify-rating span:hover i:before,.adminify-rating span:hover~span i:before{content:"\f155"}.wp-adminify #wpbody-content .adminify-review-notice-banner .notice-dismiss{border-color:#fff}.wp-adminify #wpbody-content .adminify-review-notice-banner .notice-dismiss:before{color:#fff}.wp-adminify #wpbody-content .adminify-review-notice-banner .adminify-notice-middle .adminify-sure-do-btn:hover{background-color:#00d1b2!important;border-color:transparent!important}';
296 echo '<style>' . $output_css . '</style>';
297 }
298
299 public function jltwp_adminify_get_total_interval($interval, $type)
300 {
301 switch ($type) {
302 case 'years':
303 return $interval->format('%Y');
304 break;
305 case 'months':
306 $years = $interval->format('%Y');
307 $months = 0;
308 if ($years) {
309 $months += $years * 12;
310 }
311 $months += $interval->format('%m');
312 return $months;
313 break;
314 case 'days':
315 return $interval->format('%a');
316 break;
317 case 'hours':
318 $days = $interval->format('%a');
319 $hours = 0;
320 if ($days) {
321 $hours += 24 * $days;
322 }
323 $hours += $interval->format('%H');
324 return $hours;
325 break;
326 case 'minutes':
327 $days = $interval->format('%a');
328 $minutes = 0;
329 if ($days) {
330 $minutes += 24 * 60 * $days;
331 }
332 $hours = $interval->format('%H');
333 if ($hours) {
334 $minutes += 60 * $hours;
335 }
336 $minutes += $interval->format('%i');
337 return $minutes;
338 break;
339 case 'seconds':
340 $days = $interval->format('%a');
341 $seconds = 0;
342 if ($days) {
343 $seconds += 24 * 60 * 60 * $days;
344 }
345 $hours = $interval->format('%H');
346 if ($hours) {
347 $seconds += 60 * 60 * $hours;
348 }
349 $minutes = $interval->format('%i');
350 if ($minutes) {
351 $seconds += 60 * $minutes;
352 }
353 $seconds += $interval->format('%s');
354 return $seconds;
355 break;
356 case 'milliseconds':
357 $days = $interval->format('%a');
358 $seconds = 0;
359 if ($days) {
360 $seconds += 24 * 60 * 60 * $days;
361 }
362 $hours = $interval->format('%H');
363 if ($hours) {
364 $seconds += 60 * 60 * $hours;
365 }
366 $minutes = $interval->format('%i');
367 if ($minutes) {
368 $seconds += 60 * $minutes;
369 }
370 $seconds += $interval->format('%s');
371 $milliseconds = $seconds * 1000;
372 return $milliseconds;
373 break;
374 default:
375 return NULL;
376 }
377 }
378
379 public function jltwp_adminify_days_differences()
380 {
381 $install_date = get_option('jltwp_adminify_activation_time');
382 // $install_date = strtotime('2021-02-11 14:39:05'); // Testing datetime
383 $jltwp_adminify_datetime1 = \DateTime::createFromFormat('U', $install_date);
384 $jltwp_adminify_datetime2 = \DateTime::createFromFormat('U', strtotime("now"));
385
386 $interval = $jltwp_adminify_datetime2->diff($jltwp_adminify_datetime1);
387 $jltwp_adminify_days_diff = $this->jltwp_adminify_get_total_interval($interval, 'days');
388 return $jltwp_adminify_days_diff;
389 }
390
391
392 public function jltwp_adminify_review_notice_generator()
393 {
394 $jltwp_adminify_seven_day_notice = $this->jltwp_adminify_days_differences();
395 $diff_modulas = $jltwp_adminify_seven_day_notice % 15;
396
397 if ($jltwp_adminify_seven_day_notice <= 7) {
398 return;
399 }
400
401 if (($jltwp_adminify_seven_day_notice < 15) && ($diff_modulas >= 8 && $diff_modulas <= 12)) {
402 $this->jltwp_adminify_admin_notice_ask_for_review('jltma-nine-to-twelve');
403 return;
404 }
405
406 if (jltwp_adminify()->can_use_premium_code__premium_only()) {
407 if (($diff_modulas >= 0 && $diff_modulas < 5) || ($diff_modulas >= 11 && $diff_modulas < 14)) {
408 $this->jltwp_adminify_admin_notice_ask_for_review('jltma-zero-to-five');
409 }
410 }
411 }
412
413
414 public function jltwp_adminify_upgrade_pro_notice_generator()
415 {
416 $jltwp_adminify_seven_day_notice = $this->jltwp_adminify_days_differences();
417 $diff_modulas = $jltwp_adminify_seven_day_notice % 15;
418 if ($jltwp_adminify_seven_day_notice <= 7) {
419 return;
420 }
421
422 if (($jltwp_adminify_seven_day_notice < 15) && ($diff_modulas >= 13)) {
423 $this->jltwp_adminify_admin_upgrade_pro_notice('jltma-after-thirteen');
424 return;
425 }
426
427
428 if ($jltwp_adminify_seven_day_notice >= 15 && $diff_modulas >= 5 && $diff_modulas < 11) {
429 $this->jltwp_adminify_admin_upgrade_pro_notice('jltma-five-to-eleventh');
430 }
431 }
432
433
434
435 public function jltwp_adminify_black_friday_cyber_monday_deals()
436 {
437 $today = date("Y-m-d");
438 $start_date = '2021-11-22';
439 $expire_date = '2021-12-30';
440
441 $today_time = strtotime($today);
442 $start_time = strtotime($start_date);
443 $expire_time = strtotime($expire_date);
444 if ($today_time >= $start_time && $today_time <= $expire_time) {
445 $this->jltwp_adminify_admin_black_friday_cyber_monday_notice('wp-adminify-bfcm-2021');
446 }
447 }
448 }
449