PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.0.3.5
Adminify – White Label, Admin Menu Editor, Login Customizer v4.0.3.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 / class-wp-adminify.php

class-wp-adminify.php in Adminify – White Label, Admin Menu Editor, Login Customizer 4.0.3.5, at class-wp-adminify.php

209 lines 8.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;
4
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;
14 // No, Direct access Sir !!!
15 if ( !defined( 'ABSPATH' ) ) {
16 exit;
17 }
18 if ( !class_exists( 'WP_Adminify' ) ) {
19 class WP_Adminify {
20 const VERSION = WP_ADMINIFY_VER;
21
22 private static $instance = null;
23
24 public function __construct() {
25 add_action( 'plugins_loaded', array($this, 'maybe_run_upgrades'), -100 );
26 // This should run earlier
27 add_action( 'plugins_loaded', array($this, 'maybe_loaded_addons'), -200 );
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 );
39 }
40 }
41 jltwp_adminify()->add_filter( 'pricing_url', [$this, 'jltwp_adminify_pricing_url'] );
42 }
43
44 function jltwp_adminify_pricing_url( $pricing_url ) {
45 $pricing_url = 'https://jeweltheme.com';
46 return $pricing_url;
47 }
48
49 public function jltwp_is_plugin_row_meta() {
50 add_filter(
51 'plugin_row_meta',
52 array($this, 'jltwp_adminify_plugin_row_meta'),
53 10,
54 2
55 );
56 add_filter(
57 'network_admin_plugin_row_meta',
58 array($this, 'jltwp_adminify_plugin_row_meta'),
59 10,
60 2
61 );
62 }
63
64 /**
65 * Add Body Class
66 */
67 public function jltwp_adminify_body_class( $classes ) {
68 $classes .= ' wp-adminify ';
69 $adminify_ui = AdminSettings::get_instance()->get( 'admin_ui' );
70 if ( !empty( $adminify_ui ) ) {
71 $classes .= ' adminify-ui';
72 }
73 if ( is_rtl() ) {
74 $classes .= ' adminify-rtl ';
75 }
76 return $classes;
77 }
78
79 /**
80 * Plugin action links
81 *
82 * @param array $links
83 *
84 * @return array
85 */
86 public function plugin_action_links( $links ) {
87 $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' ) ) );
88 $links['pricing'] = apply_filters( 'adminify_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' ) ) );
89 return apply_filters( 'adminify_plugin_row_links', $links );
90 }
91
92 public function jltwp_adminify_plugin_row_meta( $plugin_meta, $plugin_file ) {
93 if ( WP_ADMINIFY_BASE === $plugin_file ) {
94 $row_meta = array(
95 'docs' => sprintf( '<a href="%1$s" target="_blank">%2$s</a>', esc_url_raw( 'https://wpadminify.com/kb' ), __( 'Docs', 'adminify' ) ),
96 'changelogs' => sprintf( '<a href="%1$s" target="_blank">%2$s</a>', esc_url_raw( 'https://wpadminify.com/changelogs/' ), __( 'Changelogs', 'adminify' ) ),
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>',
98 );
99 $plugin_meta = array_merge( $plugin_meta, $row_meta );
100 }
101 return $plugin_meta;
102 }
103
104 public function jltwp_adminify_plugins_loaded() {
105 self::jltwp_adminify_activation_hook();
106 }
107
108 /**
109 * Addons Loaded Method
110 *
111 * @return void
112 */
113 public function maybe_loaded_addons() {
114 do_action( 'jltwp_adminify_plugin_loaded', WP_Adminify::get_instance() );
115 }
116
117 public function maybe_run_upgrades() {
118 if ( !is_admin() && !current_user_can( 'manage_options' ) ) {
119 return;
120 }
121 $upgrade = new Upgrade();
122 if ( $upgrade->if_updates_available() ) {
123 $upgrade->run_updates();
124 }
125 }
126
127 public function jltwp_adminify_include_files() {
128 new Assets();
129 new Admin();
130 new Featured();
131 new Feedback();
132 new Notifications();
133 new Pro_Upgrade();
134 new Addons_Plugins();
135 }
136
137 public function jltwp_adminify_init() {
138 // Backup for OLD Database
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 );
144 }
145 // Load Text Domain
146 $this->jltwp_adminify_load_textdomain();
147 }
148
149 /**
150 * Loads the text domain for localization.
151 *
152 * This function sets up the text domain for the WP Adminify plugin,
153 * allowing it to load translation files for the specified locale.
154 * It first attempts to load a custom translation file from the WordPress
155 * languages directory and then loads the default translation file from
156 * the plugin's languages directory.
157 *
158 * @return void
159 */
160 public function jltwp_adminify_load_textdomain() {
161 add_action( 'init', function () {
162 $domain = 'adminify';
163 $locale = apply_filters( 'plugin_locale', get_locale(), $domain );
164 load_textdomain( $domain, WP_LANG_DIR . '/' . $domain . '/' . $domain . '-' . $locale . '.mo' );
165 load_plugin_textdomain( $domain, false, dirname( WP_ADMINIFY_BASE ) . '/languages/' );
166 } );
167 }
168
169 // Activation Hook
170 public static function jltwp_adminify_activation_hook() {
171 $current_adminify_version = get_option( 'wp_adminify_version', null );
172 if ( get_option( 'jltwp_adminify_activation_time' ) === false ) {
173 update_option( 'jltwp_adminify_activation_time', strtotime( 'now' ) );
174 }
175 if ( is_null( $current_adminify_version ) ) {
176 update_option( 'wp_adminify_version', self::VERSION );
177 }
178 //database upgrade logic here
179 $old_data = get_option( '_wpadminify' );
180 update_option( '_wpadminify_backup', $old_data );
181 // Create term_order collumn in terms table, to support post type order
182 global $wpdb;
183 $check_term_order_column = $wpdb->query( "SHOW COLUMNS FROM {$wpdb->terms} LIKE 'term_order'" );
184 if ( $check_term_order_column == 0 ) {
185 $wpdb->query( "ALTER TABLE {$wpdb->terms} ADD term_order INT( 4 ) NULL DEFAULT '0'" );
186 }
187 }
188
189 // Deactivation Hook
190 public static function jltwp_adminify_deactivation_hook() {
191 delete_option( 'jltwp_adminify_activation_time' );
192 delete_option( 'jltwp_adminify_customizer_flush_url' );
193 }
194
195 /**
196 * Returns the singleton instance of the class.
197 */
198 public static function get_instance() {
199 if ( !isset( self::$instance ) && !self::$instance instanceof WP_Adminify ) {
200 self::$instance = new WP_Adminify();
201 self::$instance->jltwp_adminify_init();
202 }
203 return self::$instance;
204 }
205
206 }
207
208 WP_Adminify::get_instance();
209 }