PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 3.2.0
Adminify – White Label, Admin Menu Editor, Login Customizer v3.2.0
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 3.2.0, at class-wp-adminify.php

226 lines 8.1 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\Inc\Classes\Assets ;
6 use WPAdminify\Inc\Classes\Upgrade ;
7 use WPAdminify\Inc\Admin\Admin ;
8 use WPAdminify\Inc\Admin\AdminSettings ;
9 use WPAdminify\Libs\Featured ;
10 use WPAdminify\Inc\Classes\Recommended_Plugins ;
11 use WPAdminify\Inc\Classes\Pro_Upgrade ;
12 use WPAdminify\Inc\Classes\Feedback ;
13 use WPAdminify\Inc\Classes\Notifications\Notifications ;
14 // No, Direct access Sir !!!
15 if ( !defined( 'ABSPATH' ) ) {
16 exit;
17 }
18
19 if ( !class_exists( 'WP_Adminify' ) ) {
20 class WP_Adminify
21 {
22 const VERSION = WP_ADMINIFY_VER ;
23 private static $instance = null ;
24 public function __construct()
25 {
26 add_action( 'plugins_loaded', array( $this, 'maybe_run_upgrades' ), -100 );
27 // This should run earlier
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' ) );
32 $this->jltwp_is_plugin_row_meta();
33 $this->jltwp_adminify_include_files();
34 jltwp_adminify()->add_filter( 'freemius_pricing_js_path', array( $this, 'jltwp_new_freemius_pricing_js' ) );
35 jltwp_adminify()->add_filter( 'plugin_icon', array( $this, 'jltwp_adminify_logo_icon' ) );
36
37 if ( apply_filters( 'jltwp_adminify_show_setup_wizard', true ) ) {
38 new \WPAdminify\Inc\Classes\Setup_Wizard();
39 set_transient( '_adminify_activation_redirect', 1, 30 );
40 }
41
42 jltwp_adminify()->add_filter( 'support_forum_url', array( $this, 'jltwp_adminify_support_forum_url' ) );
43 // Disable deactivation feedback form
44 jltwp_adminify()->add_filter( 'show_deactivation_feedback_form', '__return_false' );
45 }
46
47 /**
48 * Adminify Logo
49 *
50 * @param [type] $logo
51 *
52 * @return void
53 */
54 public function jltwp_adminify_logo_icon( $logo )
55 {
56 $logo = WP_ADMINIFY_PATH . '/assets/images/adminify.svg';
57 return $logo;
58 }
59
60 /**
61 * Support URL Changed
62 *
63 * @param [type] $wp_org_support_forum_url
64 *
65 * @return void
66 */
67 public function jltwp_adminify_support_forum_url()
68 {
69 return 'https://wpadminify.com/contact';
70 }
71
72 public function jltwp_is_plugin_row_meta()
73 {
74 add_filter(
75 'plugin_row_meta',
76 array( $this, 'jltwp_adminify_plugin_row_meta' ),
77 10,
78 2
79 );
80 add_filter(
81 'network_admin_plugin_row_meta',
82 array( $this, 'jltwp_adminify_plugin_row_meta' ),
83 10,
84 2
85 );
86 }
87
88 /**
89 * Add Body Class
90 */
91 public function jltwp_adminify_body_class( $classes )
92 {
93 $classes .= ' wp-adminify ';
94 $adminify_ui = AdminSettings::get_instance()->get( 'admin_ui' );
95 if ( !empty($adminify_ui) ) {
96 $classes .= ' adminify-ui';
97 }
98 if ( is_rtl() ) {
99 $classes .= ' adminify-rtl ';
100 }
101 return $classes;
102 }
103
104 /**
105 * Plugin action links
106 *
107 * @param array $links
108 *
109 * @return array
110 */
111 public function plugin_action_links( $links )
112 {
113 $links[] = sprintf( '<a class="adminify-plugin-settings" href="%1$s">%2$s</a>', admin_url( 'admin.php?page=wp-adminify-settings' ), __( 'Settings', 'adminify' ) );
114 $links[] = sprintf( '<a href="%1$s" class="adminify-upgrade-pro" target="_blank" style="color: orangered;font-weight: bold;">%2$s</a>', 'https://wpadminify.com/pricing', __( 'Go Pro', 'adminify' ) );
115 return $links;
116 }
117
118 public function jltwp_adminify_plugin_row_meta( $plugin_meta, $plugin_file )
119 {
120
121 if ( WP_ADMINIFY_BASE === $plugin_file ) {
122 $row_meta = array(
123 'docs' => sprintf( '<a href="%1$s" target="_blank">%2$s</a>', esc_url_raw( 'https://wpadminify.com/kb' ), __( 'Docs', 'adminify' ) ),
124 'changelogs' => sprintf( '<a href="%1$s" target="_blank">%2$s</a>', esc_url_raw( 'https://wpadminify.com/changelogs/' ), __( 'Changelogs', 'adminify' ) ),
125 '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>',
126 );
127 $plugin_meta = array_merge( $plugin_meta, $row_meta );
128 }
129
130 return $plugin_meta;
131 }
132
133 public function jltwp_adminify_plugins_loaded()
134 {
135 self::jltwp_adminify_activation_hook();
136 }
137
138 public function maybe_run_upgrades()
139 {
140 if ( !is_admin() && !current_user_can( 'manage_options' ) ) {
141 return;
142 }
143 $upgrade = new Upgrade();
144 if ( $upgrade->if_updates_available() ) {
145 $upgrade->run_updates();
146 }
147 }
148
149 public function jltwp_adminify_include_files()
150 {
151 new Assets();
152 new Admin();
153 new Featured();
154 new Feedback();
155 new Notifications();
156 new Pro_Upgrade();
157 new Recommended_Plugins();
158 }
159
160 public function jltwp_adminify_init()
161 {
162 $this->jltwp_adminify_load_textdomain();
163 // Redirect Hook
164 // add_action('admin_init', [$this, 'jltwp_adminify_redirect_hook']);
165 }
166
167 // Text Domains
168 public function jltwp_adminify_load_textdomain()
169 {
170 $domain = 'adminify';
171 $locale = apply_filters( 'plugin_locale', get_locale(), $domain );
172 load_textdomain( $domain, WP_LANG_DIR . '/' . $domain . '/' . $domain . '-' . $locale . '.mo' );
173 load_plugin_textdomain( $domain, false, dirname( WP_ADMINIFY_BASE ) . '/languages/' );
174 }
175
176 /*
177 * Activation Plugin redirect hook
178 */
179 public function jltwp_adminify_redirect_hook()
180 {
181 wp_redirect( 'admin.php?page=wp-adminify-settings' );
182 exit;
183 }
184
185 // Activation Hook
186 public static function jltwp_adminify_activation_hook()
187 {
188 $current_adminify_version = get_option( 'wp_adminify_version', null );
189 if ( get_option( 'jltwp_adminify_activation_time' ) === false ) {
190 update_option( 'jltwp_adminify_activation_time', strtotime( 'now' ) );
191 }
192 if ( is_null( $current_adminify_version ) ) {
193 update_option( 'wp_adminify_version', self::VERSION );
194 }
195 }
196
197 // Deactivation Hook
198 public static function jltwp_adminify_deactivation_hook()
199 {
200 delete_option( 'jltwp_adminify_activation_time' );
201 delete_option( 'jltwp_adminify_customizer_flush_url' );
202 }
203
204 public function jltwp_new_freemius_pricing_js( $default_pricing_js_path )
205 {
206 return WP_ADMINIFY_PATH . '/Libs/freemius-pricing/freemius-pricing.js';
207 }
208
209 /**
210 * Returns the singleton instance of the class.
211 */
212 public static function get_instance()
213 {
214
215 if ( !isset( self::$instance ) && !self::$instance instanceof WP_Adminify ) {
216 self::$instance = new WP_Adminify();
217 self::$instance->jltwp_adminify_init();
218 }
219
220 return self::$instance;
221 }
222
223 }
224 WP_Adminify::get_instance();
225 }
226