PluginProbe
Loginizer / 2.0.6
Loginizer v2.0.6
2.1.0 2.0.9 2.0.8 1.9.8 1.9.9 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 trunk 1.0 1.0.1 1.0.2 1.1.0 1.1.1 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 All 74 releases
← All changes | main/admin.php +141 -13 2.0.12.0.6 View file →
@@ -3,15 +3,82 @@
3 3 if(!defined('ABSPATH')){
4 4 die('Hacking Attempt!');
5 5 }
6 6
7 -// HOOKS
8 -add_action('admin_menu', 'loginizer_admin_menu');
9 -add_action('admin_notices', 'loginizer_social_login_url_alert');
10 -add_action('admin_footer', 'loginizer_social_interim_js');
11 -add_action('admin_init', 'loginizer_admin_actions');
12 -//add_filter("plugin_action_links_plugin_loginizer", 'loginizer_plugin_action_links');
7 +function loginizer_admin_hooks(){
8 + add_action('admin_menu', 'loginizer_admin_menu');
9 + add_action('admin_notices', 'loginizer_social_login_url_alert');
10 + add_action('admin_footer', 'loginizer_social_interim_js');
11 + add_action('admin_init', 'loginizer_admin_actions');
12 + // add_filter("plugin_action_links_plugin_loginizer", 'loginizer_plugin_action_links');
13 +
14 + loginizer_admin_promo_hooks();
15 +}
13 16
17 +function loginizer_admin_promo_hooks(){
18 + global $loginizer;
19 +
20 + if(!current_user_can('activate_plugins') || defined('SITEPAD')){
21 + return;
22 + }
23 +
24 + // Is the premium features there ?
25 + if(!defined('LOGINIZER_PREMIUM')){
26 + // The promo time
27 + $loginizer['promo_time'] = get_option('loginizer_promo_time');
28 + if(empty($loginizer['promo_time'])){
29 + $loginizer['promo_time'] = time();
30 + update_option('loginizer_promo_time', $loginizer['promo_time']);
31 + }
32 +
33 + // Are we to show the loginizer promo
34 + if(!empty($loginizer['promo_time']) && $loginizer['promo_time'] > 0 && $loginizer['promo_time'] < (time() - (30*24*3600))){
35 + add_action('admin_notices', 'loginizer_promo');
36 + }
37 +
38 + if(!empty($loginizer['csrf_promo']) && $loginizer['csrf_promo'] > 0 && $loginizer['csrf_promo'] < (time() - 86400)){
39 + add_action('admin_notices', 'loginizer_csrf_promo');
40 + }
41 +
42 + // Are we to disable the promo
43 + if(isset($_GET['loginizer_promo']) && (int)$_GET['loginizer_promo'] == 0){
44 + update_option('loginizer_promo_time', (0 - time()) );
45 + die('DONE');
46 + }
47 +
48 + $loginizer['backuply_promo'] = get_option('loginizer_backuply_promo_time');
49 + if(empty($loginizer['backuply_promo'])){
50 + $loginizer['backuply_promo'] = abs($loginizer['promo_time']);
51 + update_option('loginizer_backuply_promo_time', $loginizer['backuply_promo']);
52 + }
53 +
54 + // Setting CSRF Promo time
55 + $loginizer['csrf_promo'] = get_option('loginizer_csrf_promo_time');
56 +
57 + if(empty($loginizer['csrf_promo'])){
58 + $loginizer['csrf_promo'] = abs($loginizer['promo_time']);
59 + update_option('loginizer_csrf_promo_time', $loginizer['csrf_promo']);
60 + }
61 + }
62 +
63 + // === Plugin Update Notice === //
64 + $plugin_update_notice = get_option('softaculous_plugin_update_notice', []);
65 + $available_update_list = get_site_transient('update_plugins');
66 +
67 + if(
68 + !empty($available_update_list) &&
69 + is_object($available_update_list) &&
70 + !empty($available_update_list->response) &&
71 + !empty($available_update_list->response['loginizer/loginizer.php']) &&
72 + (empty($plugin_update_notice) || empty($plugin_update_notice['loginizer/loginizer.php']) || (!empty($plugin_update_notice['loginizer/loginizer.php']) &&
73 + version_compare($plugin_update_notice['loginizer/loginizer.php'], $available_update_list->response['loginizer/loginizer.php']->new_version, '<')))
74 + ){
75 + add_action('admin_notices', 'loginizer_plugin_update_notice');
76 + add_filter('softaculous_plugin_update_notice', 'loginizer_update_notice_filter');
77 + }
78 + // === Plugin Update Notice === //
79 +}
80 +
14 81 function loginizer_admin_actions(){
15 82 global $loginizer;
16 83
17 84 if(defined('LOGINIZER_PREMIUM') && !defined('SITEPAD') && current_user_can('activate_plugins') && isset($_GET['page']) && strpos($_GET['page'], 'loginizer') !== FALSE){
@@ -392,9 +459,9 @@
392 459 }
393 460 </script>
394 461
395 462 <hr />
396 - <a href="http://loginizer.com" target="_blank">Loginizer</a> '.__('v'.LOGINIZER_VERSION.'. You can report any bugs ','loginizer').'<a href="http://wordpress.org/support/plugin/loginizer" target="_blank">'.__('here','loginizer').'</a>.';
463 + <a href="http://loginizer.com" target="_blank">Loginizer</a> v'.LOGINIZER_VERSION.'. '.__('You can report any bugs ','loginizer').'<a href="http://wordpress.org/support/plugin/loginizer" target="_blank">'.__('here','loginizer').'</a>.';
397 464
398 465 }
399 466
400 467 echo '
@@ -481,11 +548,19 @@
481 548 // Rename Login
482 549 add_submenu_page('loginizer', __('Security Settings', 'loginizer'), __('Rename Login', 'loginizer'), 'activate_plugins', 'loginizer', 'loginizer_security_settings');
483 550
484 551 }
485 -
552 +
486 553 // Brute Force
487 554 add_submenu_page('loginizer', __('Brute Force Settings', 'loginizer'), __('Brute Force', 'loginizer'), 'activate_plugins', 'loginizer_brute_force', 'loginizer_brute_force_settings');
555 +
556 + if(defined('LOGINIZER_PREMIUM')){
557 + // WAF Security Firewall
558 + $expiry_date = strtotime('2026-03-01');
559 + $tag_new = time() < $expiry_date ? '<span style="display: inline-block; margin-left: 10px; padding: 0px 5px; color: #fff; background-color: #d63638; border-radius: 2px;">'.__('New', 'loginizer').'</span>' : '';
560 +
561 + add_submenu_page('loginizer', __('Country Block', 'loginizer'), __('Country Block', 'loginizer').' '.$tag_new, 'activate_plugins', 'loginizer_firewall', 'loginizer_firewall_settings');
562 + }
488 563
489 564 // PasswordLess
490 565 add_submenu_page('loginizer', __($loginizer['prefix'].'PasswordLess Settings', 'loginizer'), __('PasswordLess', 'loginizer'), 'activate_plugins', 'loginizer_passwordless', 'loginizer_passwordless_settings');
491 566
@@ -497,21 +572,21 @@
497 572
498 573 }
499 574
500 575 // reCaptcha
501 - add_submenu_page('loginizer', __($loginizer['prefix'].'reCAPTCHA Settings', 'loginizer'), __('reCAPTCHA', 'loginizer'), 'activate_plugins', 'loginizer_recaptcha', 'loginizer_recaptcha_settings');
576 + add_submenu_page('loginizer', $loginizer['prefix'].__('reCAPTCHA Settings', 'loginizer'), __('reCAPTCHA', 'loginizer'), 'activate_plugins', 'loginizer_recaptcha', 'loginizer_recaptcha_settings');
502 577
503 578 // Temporary Login
504 - add_submenu_page('loginizer', __($loginizer['prefix'].'SSO', 'loginizer'), __('Single Sign On', 'loginizer'). ((time() < strtotime('30 November 2023')) ? ' <span style="color:yellow;">Update</span>' : ''), 'activate_plugins', 'loginizer_sso', 'loginizer_sso_settings');
579 + add_submenu_page('loginizer', $loginizer['prefix'].__('SSO', 'loginizer'), __('Single Sign On', 'loginizer'). ((time() < strtotime('30 November 2023')) ? ' <span style="color:yellow;">Update</span>' : ''), 'activate_plugins', 'loginizer_sso', 'loginizer_sso_settings');
505 580
506 581 // Social Login
507 - $hook_name = add_submenu_page('loginizer', __($loginizer['prefix'].'social_login', 'loginizer'), __('Social Login', 'loginizer') . (defined('LOGINIZER_PREMIUM') && (time() < strtotime('30 June 2025')) ? ' <span style="color:yellow;font-size:12px;">Updated</span>' : ''), 'activate_plugins', 'loginizer_social_login', 'loginizer_social_login_settings');
582 + $hook_name = add_submenu_page('loginizer', $loginizer['prefix']. __('Social Login', 'loginizer'), __('Social Login', 'loginizer') . (defined('LOGINIZER_PREMIUM') && (time() < strtotime('30 June 2025')) ? ' <span style="color:yellow;font-size:12px;">Updated</span>' : ''), 'activate_plugins', 'loginizer_social_login', 'loginizer_social_login_settings');
508 583
509 584 // Security Settings
510 585 if(!defined('SITEPAD')){
511 586
512 587 // Security Settings
513 - add_submenu_page('loginizer', __($loginizer['prefix'].'Security Settings', 'loginizer'), __('Security Settings', 'loginizer'), 'activate_plugins', 'loginizer_security', 'loginizer_security_settings');
588 + add_submenu_page('loginizer', $loginizer['prefix'].__('Security Settings', 'loginizer'), __('Security Settings', 'loginizer'), 'activate_plugins', 'loginizer_security', 'loginizer_security_settings');
514 589
515 590 // File Checksums
516 591 add_submenu_page('loginizer', __('Loginizer File Checksums', 'loginizer'), __('File Checksums', 'loginizer'), 'activate_plugins', 'loginizer_checksums', 'loginizer_checksums_settings');
517 592
@@ -696,8 +771,13 @@
696 771
697 772 loginizer_social_login();
698 773 }
699 774
775 +function loginizer_firewall_settings(){
776 + include_once LOGINIZER_PRO_DIR . 'main/settings/waf.php';
777 + loginizer_pro_firewall();
778 +}
779 +
700 780 // Hides the interim login poup after successful login.
701 781 function loginizer_social_interim_js(){
702 782
703 783 if(isset($_GET['interim_login']) && $_GET['interim_login'] === 'lz' && is_user_logged_in()){
@@ -880,5 +960,53 @@
880 960 var admin_url = "'.admin_url().'"+"admin-ajax.php";
881 961 jQuery.post(admin_url, data, function(response){
882 962 });
883 963 });');
884 -}
964 +}
965 +
966 +function loginizer_update_notice_filter($plugins = []){
967 + $plugins['loginizer/loginizer.php'] = 'Loginizer';
968 +
969 + return $plugins;
970 +}
971 +
972 +function loginizer_plugin_update_notice(){
973 + if(defined('SOFTACULOUS_PLUGIN_UPDATE_NOTICE')){
974 + return;
975 + }
976 +
977 + $to_update_plugins = apply_filters('softaculous_plugin_update_notice', []);
978 +
979 + if(empty($to_update_plugins)){
980 + return;
981 + }
982 +
983 + /* translators: %1$s is replaced with a "string" of name of plugins, and %2$s is replaced with "string" which can be "is" or "are" based on the count of the plugin */
984 + $msg = sprintf(__('New versions of %1$s %2$s available. Updating ensures better performance, security, and access to the latest features.', 'loginizer'), '<b>'.esc_html(implode(', ', $to_update_plugins)).'</b>', (count($to_update_plugins) > 1 ? 'are' : 'is')) . ' <a class="button button-primary" href='.esc_url(admin_url('plugins.php?plugin_status=upgrade')).'>Update Now</a>';
985 +
986 + define('SOFTACULOUS_PLUGIN_UPDATE_NOTICE', true); // To make sure other plugins don't return a Notice
987 + echo '<div class="notice notice-info is-dismissible" id="loginizer-plugin-update-notice">
988 + <p>'.$msg. '</p>
989 + </div>';
990 +
991 + wp_register_script('loginizer-update-notice', '', ['jquery'], '', true);
992 + wp_enqueue_script('loginizer-update-notice');
993 + wp_add_inline_script('loginizer-update-notice', 'jQuery("#loginizer-plugin-update-notice").on("click", function(e){
994 + let target = jQuery(e.target);
995 +
996 + if(!target.hasClass("notice-dismiss")){
997 + return;
998 + }
999 +
1000 + var data;
1001 +
1002 + // Hide it
1003 + jQuery("#loginizer-plugin-update-notice").hide();
1004 +
1005 + // Save this preference
1006 + jQuery.post("'.admin_url('admin-ajax.php?action=loginizer_close_update_notice').'&security='.wp_create_nonce('loginizer_promo_nonce').'", data, function(response) {
1007 + //alert(response);
1008 + });
1009 + });');
1010 +}
1011 +
1012 +loginizer_admin_hooks();