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

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