PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 3.0.4
Adminify – White Label, Admin Menu Editor, Login Customizer v3.0.4
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 / Modules / LoginCustomizer / LoginCustomizer.php

LoginCustomizer.php in Adminify – White Label, Admin Menu Editor, Login Customizer 3.0.4, at Inc/Modules/LoginCustomizer/LoginCustomizer.php

262 lines 9.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\Modules\LoginCustomizer;
4
5 use WPAdminify\Inc\Modules\LoginCustomizer\Inc\Customize_Settings;
6 use WPAdminify\Inc\Modules\LoginCustomizer\Inc\Output_Customization;
7 use WPAdminify\Inc\Base_Model;
8
9 // no direct access allowed
10 if (!defined('ABSPATH')) exit;
11
12 /**
13 * WP Adminify
14 * Module: Login Customizer
15 *
16 * @author Jewel Theme <support@jeweltheme.com>
17 */
18
19 if (!class_exists('LoginCustomizer')) {
20
21 class LoginCustomizer
22 {
23
24 public $script_suffix;
25
26 public $options;
27
28 public $url = WP_ADMINIFY_URL . 'Inc/Modules/LoginCustomizer';
29
30 public function __construct()
31 {
32
33 $this->url = WP_ADMINIFY_URL . 'Inc/Modules/LoginCustomizer';
34
35 $this->script_suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
36
37 $this->_hooks();
38
39 $this->options = (new \WPAdminify\Inc\Modules\LoginCustomizer\Inc\Customize_Settings())->get();
40
41 // Customizer Output CSS
42 new Output_Customization();
43 }
44
45 /**
46 * Hooks
47 */
48 public function _hooks()
49 {
50 global $wp_version;
51
52 add_action('admin_menu', [$this, 'jltwp_adminify_login_customizer_submenu'], 50);
53 // add_action('network_admin_menu', [$this, 'jltwp_adminify_login_customizer_submenu'], 50);
54
55 add_action('admin_init', [$this, 'jltwp_adminify_redirect_customizer']);
56
57 // Setup customizer.
58 add_action('customize_register', [$this, 'jltwp_adminify_register_panels']);
59 add_action('customize_register', [$this, 'jltwp_adminify_register_sections']);
60
61
62 // Enqueue assets.
63 add_action('customize_controls_print_styles', [$this, 'jltwp_adminify_control_styles'], 9999);
64 add_action('customize_controls_enqueue_scripts', [$this, 'jltwp_adminify_control_scripts'], 9999);
65 add_action('login_enqueue_scripts', [$this, 'jltwp_adminify_preview_styles'], 99);
66 add_action('customize_preview_init', [$this, 'jltwp_adminify_preview_scripts'], 99);
67
68 // Setup redirect.
69 add_filter('template_include', [$this, 'jltwp_adminify_template_include'], 99);
70
71 // Templates Ajax
72 add_action('wp_ajax_jltwp_adminify_adminify_presets', [$this, 'jltwp_adminify_templates']);
73
74 if ( version_compare( $wp_version, '5.9', '>=' ) && function_exists('wp_is_block_theme') ) {
75 if ( wp_is_block_theme() ) {
76 add_action('customize_register', [$this, 'remove_customizer_settings_for_block_theme'], 20);
77 }
78 }
79 }
80
81 public function remove_customizer_settings_for_block_theme( $WP_Customize_Manager ){
82 //check if WP_Customize_Nav_Menus object exist
83 if (isset($WP_Customize_Manager->nav_menus) && is_object($WP_Customize_Manager->nav_menus)) {
84 remove_action( 'customize_controls_enqueue_scripts', array( $WP_Customize_Manager->nav_menus, 'enqueue_scripts' ) );
85 remove_action( 'customize_controls_print_footer_scripts', array( $WP_Customize_Manager->nav_menus, 'available_items_template' ) );
86 }
87 //check if WP_Customize_Widgets object exist
88 if (isset($WP_Customize_Manager->widgets) && is_object($WP_Customize_Manager->widgets)) {
89 remove_action( 'customize_controls_print_footer_scripts', array( $WP_Customize_Manager->widgets, 'output_widget_control_templates' ) );
90 }
91 }
92
93 // Template Include
94 public function jltwp_adminify_template_include($template)
95 {
96 if (is_customize_preview() && isset($_REQUEST['wp-adminify-login-customizer']) && is_user_logged_in()) {
97 return plugin_dir_path(__FILE__) . 'Inc/wp-adminify-login-template.php';
98 }
99
100 return $template;
101 }
102
103
104 /**
105 * Enqueue the login customizer control styles.
106 */
107 public function jltwp_adminify_control_styles()
108 {
109
110
111 wp_enqueue_script('wp-adminify-login-customizer', $this->url . '/assets/js/adminify-customizer.js', ['jquery', 'customize-controls'], WP_ADMINIFY_VER, true);
112 wp_localize_script('wp-adminify-login-customizer', 'WPAdminifyLoginCustomizer', $this->jltwp_adminify_create_js_object());
113 }
114
115 /**
116 * Enqueue styles to login customizer preview styles.
117 */
118 public function jltwp_adminify_preview_styles()
119 {
120
121 if (!is_customize_preview()) {
122 return;
123 }
124
125 wp_enqueue_style('wp-adminify-login-customizer-preview', $this->url . '/assets/css/preview.css', array(), WP_ADMINIFY_VER, 'all');
126 }
127
128 /**
129 * Enqueue scripts to login customizer preview scripts.
130 */
131 public function jltwp_adminify_preview_scripts()
132 {
133 if (!is_customize_preview()) {
134 return;
135 }
136 wp_enqueue_script('wp-adminify-login-customizer-preview', $this->url . '/assets/js/preview.js', ['jquery', 'customize-preview'], WP_ADMINIFY_VER, true);
137 wp_localize_script('wp-adminify-login-customizer-preview', 'WPAdminifyLoginCustomizer', $this->jltwp_adminify_create_js_object());
138 }
139 /**
140 * Enqueue login customizer control scripts.
141 */
142 public function jltwp_adminify_control_scripts()
143 {
144 wp_enqueue_style('wp-adminify-login-customizer-controls');
145 wp_enqueue_script('wp-adminify-login-customizer', $this->url . '/assets/js/adminify-customizer.js', ['jquery', 'customize-controls'], WP_ADMINIFY_VER, true);
146 wp_localize_script('wp-adminify-login-customizer', 'WPAdminifyLoginCustomizer', $this->jltwp_adminify_create_js_object());
147 }
148
149 /**
150 * Login customizer's localized JS object.
151 *
152 * @return array The login customizer's localized JS object.
153 */
154 public function jltwp_adminify_create_js_object()
155 {
156 return array(
157 'homeUrl' => home_url(),
158 'ajaxurl' => admin_url('admin-ajax.php'),
159 'loginPageUrl' => home_url('wp-adminify-login-customizer'),
160 'pluginUrl' => rtrim(WP_ADMINIFY_URL, '/'),
161 'login_template' => $this->options['templates'],
162 'moduleUrl' => $this->url,
163 'assetUrl' => $this->url . '/assets/',
164 'preset_nonce' => wp_create_nonce('wp-adminify-login-customizer-template-nonce'),
165 'wpLogoUrl' => admin_url('images/wordpress-logo.svg?ver=' . WP_ADMINIFY_VER),
166 'siteurl' => get_option('siteurl'),
167 'register_url' => wp_registration_url(),
168 'anyone_can_register' => get_option('users_can_register'),
169 'filter_bg' => apply_filters('adminify_logincustomizer_bg', ''),
170 'preset_loader' => includes_url('js/tinymce/skins/lightgray/img/loader.gif'),
171 'isProActive' => jltwp_adminify()->can_use_premium_code__premium_only() ? true : false
172 );
173 }
174
175
176 // Template Selection
177 public function jltwp_adminify_templates()
178 {
179 check_ajax_referer('wp-adminify-login-customizer-template-nonce', 'security');
180
181 if (!current_user_can('manage_options')) {
182 wp_die('No cheating, huh!');
183 }
184
185 $selected_template = $_POST['template_id'];
186 if ($selected_template == 'template-01') {
187 include_once plugin_dir_path(__FILE__) . 'Inc/templates/template-01.php';
188 } else {
189 do_action('wp_adminify_add_templates', $selected_template);
190 }
191 wp_die();
192 }
193
194
195 /**
196 * Customizer Redirect
197 *
198 */
199 public function jltwp_adminify_redirect_customizer()
200 {
201
202 if (!empty($_GET['page'])) {
203 if ('wp-adminify-settings-login-customizer' === $_GET['page']) {
204 // Redirect URL
205 $url = add_query_arg(
206 array(
207 'autofocus[panel]' => 'jltwp_adminify_panel',
208 ),
209 admin_url('customize.php')
210 );
211
212 wp_safe_redirect($url);
213 }
214 }
215 }
216
217
218 /**
219 * Login Customizer Submenu
220 */
221 public function jltwp_adminify_login_customizer_submenu()
222 {
223 add_submenu_page(
224 'wp-adminify-settings',
225 esc_html__('Login Customizer', 'adminify'),
226 esc_html__('Login Customizer', 'adminify'),
227 apply_filters('jltwp_adminify_capability', 'manage_options'),
228 admin_url('customize.php?autofocus[panel]=jltwp_adminify_panel')
229 );
230 }
231
232
233 /**
234 * Register Panels
235 */
236 public function jltwp_adminify_register_panels($wp_customize)
237 {
238 $wp_customize->add_panel(
239 'jltwp_adminify_panel',
240 array(
241 'title' => __('Login Customizer - WP Adminify', 'adminify'),
242 'description' => __('Customize Your WordPress Login Page with WP Adminify :)', 'adminify'),
243 'capability' => apply_filters('jltwp_adminify_capability', 'manage_options'),
244 'priority' => 10,
245 )
246 );
247 }
248
249 /**
250 * Login Customizer Sections
251 *
252 * @param [type] $wp_customize
253 *
254 * @return void
255 */
256 public function jltwp_adminify_register_sections($wp_customize)
257 {
258 jltwp_adminify_sections($wp_customize);
259 }
260 }
261 }
262