PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.0.2.2
Adminify – White Label, Admin Menu Editor, Login Customizer v4.0.2.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
← All changes | class-wp-adminify.php +65 -149 4.3.14.0.2.2 View file →
@@ -1,19 +1,17 @@
1 1 <?php
2 2
3 -namespace PXLBSAdminify;
3 +namespace WPAdminify;
4 4
5 -use PXLBSAdminify\Libs\Featured;
6 -use PXLBSAdminify\Inc\Admin\Admin;
7 -use PXLBSAdminify\Inc\Classes\Assets;
8 -use PXLBSAdminify\Inc\Classes\IconPicker_Assets;
9 -use PXLBSAdminify\Inc\Classes\Upgrade;
10 -use PXLBSAdminify\Inc\Classes\Feedback;
11 -use PXLBSAdminify\Inc\Admin\AdminSettings;
12 -use PXLBSAdminify\Inc\Classes\Pro_Upgrade;
13 -use PXLBSAdminify\Inc\Classes\Addons_Plugins;
14 -use PXLBSAdminify\Inc\Classes\GoogleFontsLocal;
15 -use PXLBSAdminify\Inc\Classes\Notifications\Notifications;
5 +use WPAdminify\Libs\Featured;
6 +use WPAdminify\Inc\Admin\Admin;
7 +use WPAdminify\Inc\Classes\Assets;
8 +use WPAdminify\Inc\Classes\Upgrade;
9 +use WPAdminify\Inc\Classes\Feedback;
10 +use WPAdminify\Inc\Admin\AdminSettings;
11 +use WPAdminify\Inc\Classes\Pro_Upgrade;
12 +use WPAdminify\Inc\Classes\Addons_Plugins;
13 +use WPAdminify\Inc\Classes\Notifications\Notifications;
16 14 // No, Direct access Sir !!!
17 15 if ( !defined( 'ABSPATH' ) ) {
18 16 exit;
19 17 }
@@ -18,113 +16,47 @@
18 16 exit;
19 17 }
20 18 if ( !class_exists( 'WP_Adminify' ) ) {
21 19 class WP_Adminify {
22 - const VERSION = PXLBSADMINIFY_VER;
20 + const VERSION = WP_ADMINIFY_VER;
23 21
24 22 private static $instance = null;
25 23
26 - private $was_active_before_update = false;
27 -
28 24 public function __construct() {
29 25 add_action( 'plugins_loaded', array($this, 'maybe_run_upgrades'), -100 );
30 26 // This should run earlier
31 27 add_action( 'plugins_loaded', array($this, 'maybe_loaded_addons'), -200 );
32 - // add_action('plugins_loaded', array($this, 'pxlbsadminify_plugins_loaded'), 999);
33 - add_filter( 'plugin_action_links_' . PXLBSADMINIFY_BASE, array($this, 'plugin_action_links') );
34 - add_filter( 'network_admin_plugin_action_links_' . PXLBSADMINIFY_BASE, array($this, 'plugin_action_links') );
35 - // Freemius drops this plugin from `active_plugins` when it updates itself.
36 - add_filter(
37 - 'upgrader_pre_install',
38 - array($this, 'pxlbsadminify_remember_active_state'),
39 - 1,
40 - 2
41 - );
42 - add_filter(
43 - 'upgrader_post_install',
44 - array($this, 'pxlbsadminify_restore_active_state'),
45 - 20,
46 - 3
47 - );
48 - add_filter( 'admin_body_class', array($this, 'pxlbsadminify_body_class'), 99 );
49 - // Load textdomain and include files on init for WP 6.7+ compatibility
50 - // Textdomain must be loaded before files that use translations
51 - // Priority order: 0=textdomain, 1=include files (registers options), 5=framework setup
52 - add_action( 'init', array($this, 'pxlbsadminify_load_textdomain'), 0 );
53 - add_action( 'init', array($this, 'pxlbsadminify_include_files'), 1 );
54 - add_action( 'init', array($this, 'pxlbsadminify_is_plugin_row_meta'), 1 );
55 - $is_finished = get_option( 'pxlbsadminify_setup_wizard_ran' );
56 - if ( $is_finished !== '1' ) {
57 - if ( apply_filters( 'pxlbsadminify_show_setup_wizard', true ) ) {
58 - new \PXLBSAdminify\Inc\Classes\Wizard\Setup_Wizard();
59 - set_transient( 'pxlbsadminify_activation_redirect', 1, 30 );
28 + // add_action('plugins_loaded', array($this, 'jltwp_adminify_plugins_loaded'), 999);
29 + add_filter( 'plugin_action_links_' . WP_ADMINIFY_BASE, array($this, 'plugin_action_links') );
30 + add_filter( 'network_admin_plugin_action_links_' . WP_ADMINIFY_BASE, array($this, 'plugin_action_links') );
31 + add_filter( 'admin_body_class', array($this, 'jltwp_adminify_body_class'), 99 );
32 + add_action( 'plugins_loaded', array($this, 'jltwp_is_plugin_row_meta') );
33 + add_action( 'plugins_loaded', array($this, 'jltwp_adminify_include_files') );
34 + $is_finished = get_option( 'jltwp_adminify_setup_wizard_ran' );
35 + if ( !empty( $is_finished ) || $is_finished != '1' ) {
36 + if ( apply_filters( 'jltwp_adminify_show_setup_wizard', true ) ) {
37 + new \WPAdminify\Inc\Classes\Wizard\Setup_Wizard();
38 + set_transient( '_adminify_activation_redirect', 1, 30 );
60 39 }
61 40 }
62 - jltwp_adminify()->add_filter( 'pricing_url', [$this, 'pxlbsadminify_pricing_url'] );
41 + jltwp_adminify()->add_filter( 'pricing_url', [$this, 'jltwp_adminify_pricing_url'] );
63 42 }
64 43
65 - /**
66 - * Record whether this plugin was active when its own update starts.
67 - *
68 - * @param bool|\WP_Error $response Install response.
69 - * @param array $hook_extra Extra arguments passed to hooked filters.
70 - *
71 - * @return bool|\WP_Error
72 - */
73 - public function pxlbsadminify_remember_active_state( $response, $hook_extra ) {
74 - if ( !empty( $hook_extra['plugin'] ) && PXLBSADMINIFY_BASE === $hook_extra['plugin'] ) {
75 - $this->was_active_before_update = in_array( PXLBSADMINIFY_BASE, (array) get_option( 'active_plugins', array() ), true );
76 - }
77 - return $response;
78 - }
79 -
80 - /**
81 - * Put this plugin back into `active_plugins` after its own update.
82 - *
83 - * The Freemius SDK assumes the free and the premium build never run side by side,
84 - * so FS_Plugin_Updater::_maybe_update_folder_name() rewrites our `active_plugins`
85 - * entry to the premium basename once the free package is updated while Adminify Pro
86 - * is installed - which silently deactivates this plugin. Both packages have to stay
87 - * active here, so restore the entry the SDK removed.
88 - *
89 - * Network activations are unaffected: those live in `active_sitewide_plugins`, which
90 - * the SDK handler never touches.
91 - *
92 - * @param bool|\WP_Error $response Install response.
93 - * @param array $hook_extra Extra arguments passed to hooked filters.
94 - * @param array $result Installation result data.
95 - *
96 - * @return bool|\WP_Error
97 - */
98 - public function pxlbsadminify_restore_active_state( $response, $hook_extra, $result ) {
99 - if ( empty( $hook_extra['plugin'] ) || PXLBSADMINIFY_BASE !== $hook_extra['plugin'] || !$this->was_active_before_update ) {
100 - return $response;
101 - }
102 - $active_plugins = (array) get_option( 'active_plugins', array() );
103 - if ( !in_array( PXLBSADMINIFY_BASE, $active_plugins, true ) ) {
104 - $active_plugins[] = PXLBSADMINIFY_BASE;
105 - $active_plugins = array_values( array_unique( $active_plugins ) );
106 - sort( $active_plugins );
107 - update_option( 'active_plugins', $active_plugins );
108 - }
109 - return $response;
110 - }
111 -
112 - function pxlbsadminify_pricing_url( $pricing_url ) {
113 - $pricing_url = 'https://wpadminify.com/pricing';
44 + function jltwp_adminify_pricing_url( $pricing_url ) {
45 + $pricing_url = 'https://jeweltheme.com';
114 46 return $pricing_url;
115 47 }
116 48
117 - public function pxlbsadminify_is_plugin_row_meta() {
49 + public function jltwp_is_plugin_row_meta() {
118 50 add_filter(
119 51 'plugin_row_meta',
120 - array($this, 'pxlbsadminify_plugin_row_meta'),
52 + array($this, 'jltwp_adminify_plugin_row_meta'),
121 53 10,
122 54 2
123 55 );
124 56 add_filter(
125 57 'network_admin_plugin_row_meta',
126 - array($this, 'pxlbsadminify_plugin_row_meta'),
58 + array($this, 'jltwp_adminify_plugin_row_meta'),
127 59 10,
128 60 2
129 61 );
130 62 }
@@ -131,9 +63,9 @@
131 63
132 64 /**
133 65 * Add Body Class
134 66 */
135 - public function pxlbsadminify_body_class( $classes ) {
67 + public function jltwp_adminify_body_class( $classes ) {
136 68 $classes .= ' wp-adminify ';
137 69 $adminify_ui = AdminSettings::get_instance()->get( 'admin_ui' );
138 70 if ( !empty( $adminify_ui ) ) {
139 71 $classes .= ' adminify-ui';
@@ -151,19 +83,19 @@
151 83 *
152 84 * @return array
153 85 */
154 86 public function plugin_action_links( $links ) {
155 - $links['settings'] = apply_filters( 'adminify_settings_link', sprintf( '<a class="adminify-plugin-settings" href="%1$s">%2$s</a>', admin_url( 'admin.php?page=wp-adminify-settings' ), __( 'Settings', 'adminify' ) ) );
156 - $links['pricing'] = apply_filters( 'pxlbsadminify_upgrade_now_link', sprintf( '<a href="%1$s" class="adminify-upgrade-pro" target="_blank" style="color: orangered;font-weight: bold;">%2$s</a>', 'https://wpadminify.com/pricing', __( 'Upgrade Now', 'adminify' ) ) );
157 - return apply_filters( 'adminify_plugin_row_links', $links );
87 + $links['settings'] = sprintf( '<a class="adminify-plugin-settings" href="%1$s">%2$s</a>', admin_url( 'admin.php?page=wp-adminify-settings' ), __( 'Settings', 'adminify' ) );
88 + $links['pricing'] = sprintf( '<a href="%1$s" class="adminify-upgrade-pro" target="_blank" style="color: orangered;font-weight: bold;">%2$s</a>', 'https://wpadminify.com/pricing', __( 'Upgrade Now', 'adminify' ) );
89 + return $links;
158 90 }
159 91
160 - public function pxlbsadminify_plugin_row_meta( $plugin_meta, $plugin_file ) {
161 - if ( PXLBSADMINIFY_BASE === $plugin_file ) {
92 + public function jltwp_adminify_plugin_row_meta( $plugin_meta, $plugin_file ) {
93 + if ( WP_ADMINIFY_BASE === $plugin_file ) {
162 94 $row_meta = array(
163 - 'docs' => sprintf( '<a href="%1$s" target="_blank">%2$s</a>', esc_url_raw( 'https://wpadminify.com/docs/adminify/getting-started' ), __( 'Docs', 'adminify' ) ),
95 + 'docs' => sprintf( '<a href="%1$s" target="_blank">%2$s</a>', esc_url_raw( 'https://wpadminify.com/kb' ), __( 'Docs', 'adminify' ) ),
164 96 'changelogs' => sprintf( '<a href="%1$s" target="_blank">%2$s</a>', esc_url_raw( 'https://wpadminify.com/changelogs/' ), __( 'Changelogs', 'adminify' ) ),
165 - 'tutorials' => '<a href="https://www.youtube.com/playlist?list=PLqpMw0NsHXV-EKj9Xm1DMGa6FGniHHly8" aria-label="' . esc_attr( __( 'View Adminify Video Tutorials', 'adminify' ) ) . '" target="_blank">' . __( 'Video Tutorials', 'adminify' ) . '</a>',
97 + 'tutorials' => '<a href="https://www.youtube.com/playlist?list=PLqpMw0NsHXV-EKj9Xm1DMGa6FGniHHly8" aria-label="' . esc_attr( __( 'View WP Adminify Video Tutorials', 'adminify' ) ) . '" target="_blank">' . __( 'Video Tutorials', 'adminify' ) . '</a>',
166 98 );
167 99 $plugin_meta = array_merge( $plugin_meta, $row_meta );
168 100 }
169 101 return $plugin_meta;
@@ -168,10 +100,10 @@
168 100 }
169 101 return $plugin_meta;
170 102 }
171 103
172 - public function pxlbsadminify_plugins_loaded() {
173 - self::pxlbsadminify_activation_hook();
104 + public function jltwp_adminify_plugins_loaded() {
105 + self::jltwp_adminify_activation_hook();
174 106 }
175 107
176 108 /**
177 109 * Addons Loaded Method
@@ -178,9 +110,9 @@
178 110 *
179 111 * @return void
180 112 */
181 113 public function maybe_loaded_addons() {
182 - do_action( 'pxlbsadminify_plugin_loaded', WP_Adminify::get_instance() );
114 + do_action( 'jltwp_adminify_plugin_loaded', WP_Adminify::get_instance() );
183 115 }
184 116
185 117 public function maybe_run_upgrades() {
186 118 if ( !is_admin() && !current_user_can( 'manage_options' ) ) {
@@ -191,11 +123,10 @@
191 123 $upgrade->run_updates();
192 124 }
193 125 }
194 126
195 - public function pxlbsadminify_include_files() {
127 + public function jltwp_adminify_include_files() {
196 128 new Assets();
197 - new IconPicker_Assets();
198 129 new Admin();
199 130 new Featured();
200 131 new Feedback();
201 132 new Notifications();
@@ -200,69 +131,54 @@
200 131 new Feedback();
201 132 new Notifications();
202 133 new Pro_Upgrade();
203 134 new Addons_Plugins();
204 - // Initialize Google Fonts Local early to catch option updates
205 - GoogleFontsLocal::get_instance();
206 135 }
207 136
208 - public function pxlbsadminify_init() {
137 + public function jltwp_adminify_init() {
209 138 // Backup for OLD Database
210 - $current_version = get_option( 'pxlbsadminify_version' );
211 - $is_backup = $old_data = get_option( 'pxlbsadminify_settings_backup' );
212 - if ( version_compare( $current_version, PXLBSADMINIFY_VER, '<' ) && empty( $is_backup ) ) {
213 - $old_data = get_option( 'pxlbsadminify_settings' );
214 - update_option( 'pxlbsadminify_settings_backup', $old_data );
139 + $current_version = get_option( 'wp_adminify_version' );
140 + $is_backup = $old_data = get_option( '_wpadminify_backup' );
141 + if ( version_compare( $current_version, WP_ADMINIFY_VER, '<' ) && empty( $is_backup ) ) {
142 + $old_data = get_option( '_wpadminify' );
143 + update_option( '_wpadminify_backup', $old_data );
215 144 }
145 + // Load Text Domain
146 + $this->jltwp_adminify_load_textdomain();
216 147 }
217 148
218 - /**
219 - * Loads the text domain for localization.
220 - *
221 - * This function sets up the text domain for the WP Adminify plugin,
222 - * allowing it to load translation files for the specified locale.
223 - * It first attempts to load a custom translation file from the WordPress
224 - * languages directory and then loads the default translation file from
225 - * the plugin's languages directory.
226 - *
227 - * @return void
228 - */
229 - public function pxlbsadminify_load_textdomain() {
230 - $locale = apply_filters( 'plugin_locale', get_locale(), 'adminify' );
231 - load_textdomain( 'adminify', WP_LANG_DIR . '/adminify/adminify-' . $locale . '.mo' );
232 - // phpcs:ignore PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound -- retained for non-hosted / older-WP installs.
233 - load_plugin_textdomain( 'adminify', false, dirname( PXLBSADMINIFY_BASE ) . '/languages/' );
149 + // Text Domains
150 + public function jltwp_adminify_load_textdomain() {
151 + $domain = 'adminify';
152 + $locale = apply_filters( 'plugin_locale', get_locale(), $domain );
153 + load_textdomain( $domain, WP_LANG_DIR . '/' . $domain . '/' . $domain . '-' . $locale . '.mo' );
154 + load_plugin_textdomain( $domain, false, dirname( WP_ADMINIFY_BASE ) . '/languages/' );
234 155 }
235 156
236 157 // Activation Hook
237 - public static function pxlbsadminify_activation_hook() {
238 - $current_adminify_version = get_option( 'pxlbsadminify_version', null );
239 - if ( get_option( 'pxlbsadminify_activation_time' ) === false ) {
240 - update_option( 'pxlbsadminify_activation_time', strtotime( 'now' ) );
158 + public static function jltwp_adminify_activation_hook() {
159 + $current_adminify_version = get_option( 'wp_adminify_version', null );
160 + if ( get_option( 'jltwp_adminify_activation_time' ) === false ) {
161 + update_option( 'jltwp_adminify_activation_time', strtotime( 'now' ) );
241 162 }
242 - if ( "dismissed" === get_option( 'pxlbsadminify_plugin_update_info_notice', true ) ) {
243 - update_option( 'pxlbsadminify_plugin_update_info_notice', '' );
244 - }
245 163 if ( is_null( $current_adminify_version ) ) {
246 - update_option( 'pxlbsadminify_version', self::VERSION );
164 + update_option( 'wp_adminify_version', self::VERSION );
247 165 }
248 166 //database upgrade logic here
249 - $old_data = get_option( 'pxlbsadminify_settings' );
250 - update_option( 'pxlbsadminify_settings_backup', $old_data );
167 + $old_data = get_option( '_wpadminify' );
168 + update_option( '_wpadminify_backup', $old_data );
251 169 // Create term_order collumn in terms table, to support post type order
252 170 global $wpdb;
253 - // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching -- direct query required for one-time schema inspection on activation; not cached intentionally.
254 171 $check_term_order_column = $wpdb->query( "SHOW COLUMNS FROM {$wpdb->terms} LIKE 'term_order'" );
255 172 if ( $check_term_order_column == 0 ) {
256 - // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching,WordPress.DB.DirectDatabaseQuery.SchemaChange -- direct query required for one-time schema change on activation; not cached intentionally.
257 173 $wpdb->query( "ALTER TABLE {$wpdb->terms} ADD term_order INT( 4 ) NULL DEFAULT '0'" );
258 174 }
259 175 }
260 176
261 177 // Deactivation Hook
262 - public static function pxlbsadminify_deactivation_hook() {
263 - delete_option( 'pxlbsadminify_activation_time' );
264 - delete_option( 'pxlbsadminify_customizer_flush_url' );
178 + public static function jltwp_adminify_deactivation_hook() {
179 + delete_option( 'jltwp_adminify_activation_time' );
180 + delete_option( 'jltwp_adminify_customizer_flush_url' );
265 181 }
266 182
267 183 /**
268 184 * Returns the singleton instance of the class.
@@ -269,9 +185,9 @@
269 185 */
270 186 public static function get_instance() {
271 187 if ( !isset( self::$instance ) && !self::$instance instanceof WP_Adminify ) {
272 188 self::$instance = new WP_Adminify();
273 - self::$instance->pxlbsadminify_init();
189 + self::$instance->jltwp_adminify_init();
274 190 }
275 191 return self::$instance;
276 192 }
277 193