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

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