PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 3.0.1
Adminify – White Label, Admin Menu Editor, Login Customizer v3.0.1
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.1, at Inc/Modules/LoginCustomizer/LoginCustomizer.php

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