PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 1.0.8
Adminify – White Label, Admin Menu Editor, Login Customizer v1.0.8
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.8, at Inc/Admin/AdminifyPromo.php

422 lines 27.2 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 if (!defined('ABSPATH')) {
11 exit;
12 }
13 // No, Direct access Sir !!!
14 class AdminifyPromo
15 {
16 public $timenow;
17 private static $instance = null;
18 public static function get_instance()
19 {
20 if (!self::$instance) {
21 self::$instance = new self();
22 }
23 return self::$instance;
24 }
25
26 public function __construct()
27 {
28 if (!is_admin()) {
29 return;
30 }
31 $this->timenow = strtotime("now");
32 // Admin Notices
33 add_action('admin_init', [$this, 'jltwp_adminify_admin_notice_init']);
34 //Notices
35 add_action('admin_notices', [$this, 'jltwp_adminify_latest_update_details'], 10);
36 add_action('network_admin_notices', [$this, 'jltwp_adminify_latest_update_details'], 10);
37 add_action('admin_notices', [$this, 'jltwp_adminify_review_notice_generator'], 10);
38 add_action('admin_notices', [$this, 'jltwp_adminify_upgrade_pro_notice_generator'], 10);
39 // Black Friday & Cyber Monday Offer
40 add_action('admin_notices', [$this, 'jltwp_adminify_black_friday_cyber_monday_deals']);
41 // Styles
42 add_action('admin_print_styles', [$this, 'jltwp_adminify_admin_notice_styles']);
43 }
44
45 public function jltwp_adminify_admin_notice_init()
46 {
47 add_action('wp_ajax_adminify_dismiss_admin_notice', [$this, 'jltwp_adminify_dismiss_admin_notice']);
48 }
49
50 public function jltwp_adminify_latest_update_details()
51 {
52 if (!self::is_admin_notice_active('wp-adminify-update-notice-forever')) {
53 return;
54 }
55 $jltwp_adminify_changelog_message = sprintf(
56 __('%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),
57 '<h3 class="adminify-update-head">' . WP_ADMINIFY . ' <span><small><em>v' . WP_ADMINIFY_VER . '</em></small>' . __(' has some Major updates..', WP_ADMINIFY_TD) . '</span></h3><br>',
58 __('<span class="dashicons dashicons-yes"></span> <span class="adminify-changes-list"> Given supports of - Brizy Builder, Beaver Builder, Hide My WP Ghost, FileBird, Folders, Media Library Folders, WP Media folders, Wicked Folders, WordPress Real Media Library, WordPress Real Category </span><br>', WP_ADMINIFY_TD),
59 __('<span class="dashicons dashicons-yes"></span> <span class="adminify-changes-list"> Admin Pages is now working with Page Builder supports </span><br>', WP_ADMINIFY_TD),
60 __('<span class="dashicons dashicons-yes"></span> <span class="adminify-changes-list"> WooCommerce Columns issue fixed </span><br>', WP_ADMINIFY_TD),
61 __('<span class="dashicons dashicons-yes"></span> <span class="adminify-changes-list"> Activity Logs Updated with Record Delete option and Store records for day settings. </span><br>', WP_ADMINIFY_TD),
62 esc_url_raw('https://wpadminify.com/changelogs/'),
63 __('More Details', WP_ADMINIFY_TD)
64 );
65 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);
66 }
67
68 public function jltwp_adminify_admin_notice_ask_for_review($notice_key)
69 {
70 if (!self::is_admin_notice_active($notice_key)) {
71 return;
72 }
73 $this->jltwp_adminify_notice_header($notice_key);
74 echo sprintf(
75 __('<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>
76 <ul class="wp-adminify-review-ul">
77 <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>
78 <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>
79 <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>
80 </ul>', WP_ADMINIFY_TD),
81 WP_ADMINIFY,
82 esc_url_raw('https://wordpress.org/support/plugin/adminify/reviews/?filter=5'),
83 __("WordPress.org", WP_ADMINIFY_TD)
84 );
85 $this->jltwp_adminify_notice_footer();
86 }
87
88 public function jltwp_adminify_admin_upgrade_pro_notice($notice_key)
89 {
90 if (!self::is_admin_notice_active($notice_key)) {
91 return;
92 }
93 $this->jltwp_adminify_notice_header($notice_key);
94 echo sprintf(
95 __(' <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),
96 __("Unlock all possiblities - Schedule Dark Mode, hide all admin Notices, Pagespeed Insights, unlock Folders etc.. <br>", WP_ADMINIFY_TD),
97 __('20% Discount on all pricing, enjoy the freedom.<br>', WP_ADMINIFY_TD),
98 __("Coupon Code: <strong style='background:yellow; padding:1px 5px; color: #0347FF;'>ENJOY25</strong>", WP_ADMINIFY_TD)
99 );
100 $this->jltwp_adminify_notice_footer();
101 }
102
103 // Black Friday & Cyber Monday Offer
104 public function jltwp_adminify_admin_black_friday_cyber_monday_notice($notice_key)
105 {
106 if (!self::is_admin_notice_active($notice_key)) {
107 return;
108 }
109 $this->jltwp_adminify_notice_header($notice_key);
110 echo sprintf(
111 __(' <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),
112 __("Unlock all possiblities - Schedule Dark Mode, hide all Admin Notices, Pagespeed Insights, unlock Folders etc.. <br>", WP_ADMINIFY_TD),
113 __('50% Huge Discount for <span style="background:#111; padding:2px 10px; color: #fff;">Black Friday and Cyber Monday Deals</span><br>', WP_ADMINIFY_TD),
114 __("Coupon Code: <strong style='background:yellow; padding:2px 10px; color: #0347FF;'>BFCM50</strong>", WP_ADMINIFY_TD)
115 );
116 $this->jltwp_adminify_notice_footer();
117 }
118
119 public function jltwp_adminify_notice_header($notice_key)
120 {
121 ?>
122 <div data-dismissible="<?php
123 echo esc_attr($notice_key);
124 ?>" id="<?php
125 echo esc_attr($notice_key);
126 ?>" class="wp-adminify-notice adminify-review-notice-banner updated notice notice-success is-dismissible">
127 <div id="wp-adminify-bfcm-upgrade-notice" class="wp-adminify-review-notice">
128 <div class="wp-adminify-notice-banner">
129 <div class="wp-adminify-notice-contents columns is-tablet is-align-items-center">
130 <ul class="adminify-notice-left-nav column is-2-tablet">
131 <li>
132 <a class="is-flex is-align-items-center" target="_blank" href="https://wpadminify.com/kb">
133 <i class="is-rounded is-pulled-left mr-2 dashicons dashicons-book"></i>
134 <?php
135 echo __('Docs', WP_ADMINIFY_TD);
136 ?>
137 </a>
138 </li>
139 <li>
140 <a class="is-flex is-align-items-center" target="_blank" href="https://demo.wpadminify.com/">
141 <i class="is-rounded is-pulled-left mr-2 dashicons dashicons-fullscreen-alt"></i>
142 <?php
143 echo __('Live Demo', WP_ADMINIFY_TD);
144 ?>
145 </a>
146 </li>
147 <li>
148 <a class="is-flex is-align-items-center" target="_blank" href="https://wpadminify.com/faqs/">
149 <i class="is-rounded is-pulled-left mr-2 dashicons dashicons-editor-help"></i>
150 <?php
151 echo __('F.A.Q.', WP_ADMINIFY_TD);
152 ?>
153 </a>
154 </li>
155 <li>
156 <a class="is-flex is-align-items-center" target="_blank" href="https://wpadminify.com/contact/">
157 <i class="is-rounded is-pulled-left mr-2 dashicons dashicons-phone"></i>
158 <?php
159 echo __('Contact Us', WP_ADMINIFY_TD);
160 ?>
161 </a>
162 </li>
163 </ul>
164 <div class="adminify-notice-middle column is-8-tablet has-text-centered">
165
166 <?php
167 }
168
169 public function jltwp_adminify_notice_footer()
170 {
171 ?>
172 </div>
173
174 <div class="adminify-notice-right column is-2-tablet has-text-centered">
175 <ul class="adminify-notice-right-nav">
176 <li>
177 <a class="adminify-logo" href="https://wpadminify.com/" target="_blank">
178 <img src="<?php
179 echo WP_ADMINIFY_ASSETS_IMAGE;
180 ?>/logos/logo-text-dark.svg" alt="WP Adminify">
181 </a>
182 </li>
183 <li class="adminify-notice-social">
184 <a class="adminify-notice-social-icon" target="_blank" href="https://www.facebook.com/groups/jeweltheme">
185 <i class="is-rounded dashicons dashicons-facebook-alt"></i>
186 </a>
187 <a class="adminify-notice-social-icon" target="_blank" href="https://www.youtube.com/playlist?list=PLqpMw0NsHXV-EKj9Xm1DMGa6FGniHHly8">
188 <i class="is-rounded dashicons dashicons-youtube"></i>
189 </a>
190 <a class="adminify-notice-social-icon" target="_blank" href="https://twitter.com/jwthemeltd">
191 <i class="is-rounded dashicons dashicons-twitter"></i>
192 </a>
193 </li>
194 <li class="adminify-rate-us mt-3">
195 <div class="adminify-rate-contents">
196 <label class="adminify-rating-label">Rate us:</label>
197 <a class="adminify-rating is-inline-block" href="https://wordpress.org/support/plugin/adminify/reviews/?filter=5" target="_blank">
198 <span class="star">
199 <i class="dashicons dashicons-star-half"></i>
200 </span>
201 <span class="star">
202 <i class="dashicons dashicons-star-filled"></i>
203 </span>
204 <span class="star">
205 <i class="dashicons dashicons-star-filled"></i>
206 </span>
207 <span class="star">
208 <i class="dashicons dashicons-star-filled"></i>
209 </span>
210 <span class="star">
211 <i class="dashicons dashicons-star-filled"></i>
212 </span>
213 </a>
214 </div>
215 </li>
216 </ul>
217 </div>
218 </div>
219 </div>
220 </div>
221 </div>
222
223 <?php
224 }
225
226 public function jltwp_adminify_dismiss_admin_notice()
227 {
228 $option_name = sanitize_text_field($_POST['option_name']);
229 $dismissible_length = sanitize_text_field($_POST['dismissible_length']);
230
231 if ('forever' != $dismissible_length) {
232 // If $dismissible_length is not an integer default to 1
233 $dismissible_length = (0 == absint($dismissible_length) ? 1 : $dismissible_length);
234 $dismissible_length = strtotime(absint($dismissible_length) . ' days');
235 }
236
237 check_ajax_referer('adminify-notice-nonce', 'notice_nonce');
238 self::set_admin_notice_cache($option_name, $dismissible_length);
239 wp_die();
240 }
241
242 public static function set_admin_notice_cache($id, $timeout)
243 {
244 $cache_key = 'wp-adminify-notice-' . md5($id);
245 update_site_option($cache_key, $timeout);
246 return true;
247 }
248
249 public static function is_admin_notice_active($arg)
250 {
251 $array = explode('-', $arg);
252 $length = array_pop($array);
253 $option_name = implode('-', $array);
254 $db_record = self::get_admin_notice_cache($option_name);
255
256 if ('forever' === $db_record) {
257 return false;
258 } elseif (absint($db_record) >= time()) {
259 return false;
260 } else {
261 return true;
262 }
263 }
264
265 public static function get_admin_notice_cache($id = false)
266 {
267 if (!$id) {
268 return false;
269 }
270 $cache_key = 'wp-adminify-notice-' . md5($id);
271 $timeout = get_site_option($cache_key);
272 $timeout = ('forever' === $timeout ? time() + 45 : $timeout);
273 if (empty($timeout) || time() > $timeout) {
274 return false;
275 }
276 return $timeout;
277 }
278
279 public function jltwp_adminify_admin_notice_styles()
280 {
281 $output_css = '';
282 $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}';
283 echo '<style>' . $output_css . '</style>';
284 }
285
286 public function jltwp_adminify_get_total_interval($interval, $type)
287 {
288 switch ($type) {
289 case 'years':
290 return $interval->format('%Y');
291 break;
292 case 'months':
293 $years = $interval->format('%Y');
294 $months = 0;
295 if ($years) {
296 $months += $years * 12;
297 }
298 $months += $interval->format('%m');
299 return $months;
300 break;
301 case 'days':
302 return $interval->format('%a');
303 break;
304 case 'hours':
305 $days = $interval->format('%a');
306 $hours = 0;
307 if ($days) {
308 $hours += 24 * $days;
309 }
310 $hours += $interval->format('%H');
311 return $hours;
312 break;
313 case 'minutes':
314 $days = $interval->format('%a');
315 $minutes = 0;
316 if ($days) {
317 $minutes += 24 * 60 * $days;
318 }
319 $hours = $interval->format('%H');
320 if ($hours) {
321 $minutes += 60 * $hours;
322 }
323 $minutes += $interval->format('%i');
324 return $minutes;
325 break;
326 case 'seconds':
327 $days = $interval->format('%a');
328 $seconds = 0;
329 if ($days) {
330 $seconds += 24 * 60 * 60 * $days;
331 }
332 $hours = $interval->format('%H');
333 if ($hours) {
334 $seconds += 60 * 60 * $hours;
335 }
336 $minutes = $interval->format('%i');
337 if ($minutes) {
338 $seconds += 60 * $minutes;
339 }
340 $seconds += $interval->format('%s');
341 return $seconds;
342 break;
343 case 'milliseconds':
344 $days = $interval->format('%a');
345 $seconds = 0;
346 if ($days) {
347 $seconds += 24 * 60 * 60 * $days;
348 }
349 $hours = $interval->format('%H');
350 if ($hours) {
351 $seconds += 60 * 60 * $hours;
352 }
353 $minutes = $interval->format('%i');
354 if ($minutes) {
355 $seconds += 60 * $minutes;
356 }
357 $seconds += $interval->format('%s');
358 $milliseconds = $seconds * 1000;
359 return $milliseconds;
360 break;
361 default:
362 return NULL;
363 }
364 }
365
366 public function jltwp_adminify_days_differences()
367 {
368 $install_date = get_option('jltwp_adminify_activation_time');
369 // $install_date = strtotime('2021-02-11 14:39:05'); // Testing datetime
370 $jltwp_adminify_datetime1 = \DateTime::createFromFormat('U', $install_date);
371 $jltwp_adminify_datetime2 = \DateTime::createFromFormat('U', strtotime("now"));
372 $interval = $jltwp_adminify_datetime2->diff($jltwp_adminify_datetime1);
373 $jltwp_adminify_days_diff = $this->jltwp_adminify_get_total_interval($interval, 'days');
374 return $jltwp_adminify_days_diff;
375 }
376
377 public function jltwp_adminify_review_notice_generator()
378 {
379 $jltwp_adminify_seven_day_notice = $this->jltwp_adminify_days_differences();
380 $diff_modulas = $jltwp_adminify_seven_day_notice % 15;
381 if ($jltwp_adminify_seven_day_notice <= 7) {
382 return;
383 }
384
385 if ($jltwp_adminify_seven_day_notice < 15 && ($diff_modulas >= 8 && $diff_modulas <= 12)) {
386 $this->jltwp_adminify_admin_notice_ask_for_review('jltma-nine-to-twelve');
387 return;
388 }
389 }
390
391 public function jltwp_adminify_upgrade_pro_notice_generator()
392 {
393 $jltwp_adminify_seven_day_notice = $this->jltwp_adminify_days_differences();
394 $diff_modulas = $jltwp_adminify_seven_day_notice % 15;
395 if ($jltwp_adminify_seven_day_notice <= 7) {
396 return;
397 }
398
399 if ($jltwp_adminify_seven_day_notice < 15 && $diff_modulas >= 13) {
400 $this->jltwp_adminify_admin_upgrade_pro_notice('jltma-after-thirteen');
401 return;
402 }
403
404 if ($jltwp_adminify_seven_day_notice >= 15 && $diff_modulas >= 5 && $diff_modulas < 11) {
405 $this->jltwp_adminify_admin_upgrade_pro_notice('jltma-five-to-eleventh');
406 }
407 }
408
409 public function jltwp_adminify_black_friday_cyber_monday_deals()
410 {
411 $today = date("Y-m-d");
412 $start_date = '2021-11-20';
413 $expire_date = '2021-12-30';
414 $today_time = strtotime($today);
415 $start_time = strtotime($start_date);
416 $expire_time = strtotime($expire_date);
417 if ($today_time >= $start_time && $today_time <= $expire_time) {
418 $this->jltwp_adminify_admin_black_friday_cyber_monday_notice('wp-adminify-bfcm-2021');
419 }
420 }
421 }
422