*/ if (!class_exists('Admin')) { class Admin { public $options = []; public function __construct() { $this->options = AdminSettings::get_instance()->get(); $this->jltwp_adminify_modules_manager(); // Remove Page Header like - Dashboard, Plugins, Users etc // add_action('admin_head', [$this, 'remove_page_headline'], 99); // Freemius Hooks jltwp_adminify()->add_filter('plugin_icon', array($this, 'jltwp_adminify_logo_icon')); add_action('admin_menu', array($this, 'support_menu'), 1100); add_action('network_admin_menu', array($this, 'support_menu'), 1100); add_action('admin_menu', [$this, 'submenu_link_new_tab']); add_action('plugins_loaded', array($this, 'jltwp_adminify_ajax_data_save'), 999); // jltwp_adminify()->add_filter('support_forum_url', [$this, 'jltwp_adminify_support_forum_url']); // Disable deactivation feedback form jltwp_adminify()->add_filter('show_deactivation_feedback_form', '__return_false'); // Disable after deactivation subscription cancellation window jltwp_adminify()->add_filter('show_deactivation_subscription_cancellation', '__return_false'); $this->disable_gutenberg_editor(); add_filter('show_admin_bar', [ $this, 'jltwp_adminify_removeAdminBar'], PHP_INT_MAX); add_action('wp_head', [ $this,'jltwp_adminify_remove_header_for_baknd'], PHP_INT_MAX); } function jltwp_adminify_removeAdminBar($status) { if (!empty($_GET['bknd']) && sanitize_text_field(wp_unslash($_GET['bknd']))) { return false; } return $status; } function jltwp_adminify_remove_header_for_baknd() { if (isset($_GET['bknd']) && $_GET['bknd'] == '1') { echo ''; } } public function jltwp_adminify_ajax_data_save() { $ajax_data_save = new \WPAdminify\Inc\Classes\Notifications\What_We_Collect(); $ajax_data_save->jltwp_adminify_collect_ajax_data(); } public function disable_gutenberg_editor() { // Sidebar Widgets Remove if (!empty($this->options['remove_widgets']['disable_gutenberg_editor'])) { // Disable Gutenberg for Block Editor add_filter('gutenberg_use_widgets_block_editor', '__return_false'); // Disable Gutenberg for widgets. add_filter('use_widgets_block_editor', '__return_false'); } // Disable Block Editor Gutenberg if (!empty($this->options["disable_gutenberg"]['disable_for']) && in_array('block_editor', $this->options["disable_gutenberg"]['disable_for'])) { add_filter('use_block_editor_for_post', '__return_false'); add_action('wp_enqueue_scripts', [$this, 'remove_backend_gutenberg_scripts'], 20); } // Remove all scripts and styles added by Gutenberg if (isset($this->options["disable_gutenberg"]['disable_gutenberg_enable']) && $this->options["disable_gutenberg"]['disable_gutenberg_enable'] && in_array('remove_gutenberg_scripts', $this->options["disable_gutenberg"]['disable_for'])) { add_action('wp_enqueue_scripts', [$this, 'remove_gutenberg_scripts']); remove_action('enqueue_block_assets', 'wp_enqueue_registered_block_scripts_and_styles'); } } // Dequeue all Frontend scripts and styles added by Gutenberg public function remove_gutenberg_scripts() { wp_dequeue_style('wp-block-library'); wp_dequeue_style('wc-block-style'); // Remove WooCommerce block CSS // Remove Inline CSS // wp_deregister_style('wp-block-library-inline'); // wp_dequeue_style('wp-block-library-inline'); } /** * Remove Gutenberg Scripts * * @return void */ public function remove_backend_gutenberg_scripts() { if (is_admin()) { // Remove CSS on the front end. wp_dequeue_style('wp-block-library'); // Remove Gutenberg theme. wp_dequeue_style('wp-block-library-theme'); // Remove inline global CSS on the front end. wp_dequeue_style('global-styles'); } } /** * Adminify Logo * * @param [type] $logo * * @return void */ public function jltwp_adminify_logo_icon($logo) { $logo = WP_ADMINIFY_PATH . '/assets/images/adminify.svg'; return $logo; } /** * WP Adminify: Modules */ public function jltwp_adminify_modules_manager() { // new MenuStyle(); new Modules(); new AdminBar(); new Tweaks(); new OutputCSS(); new ThirdPartyCompatibility(); new AdminFooterText(); new Sidebar_Widgets(); new Remove_DashboardWidgets(); if (!empty($this->options['admin_ui']) && preg_match('/https:\/\//', site_url()) && is_ssl()) { FrameInit::instance(); } // Version Rollback // Adminify_Rollback::get_instance(); } /** * Remove Page Headlines: Dashboard, Plugins, Users * * @return void */ public function remove_page_headline() { $screen = get_current_screen(); if (empty($screen->id)) { return; } if (in_array( $screen->id, [ 'dashboard', 'nav-menus', 'edit-tags', 'themes', 'widgets', 'plugins', 'plugin-install', 'users', 'user', 'profile', 'tools', 'import', 'export', 'export-personal-data', 'erase-personal-data', 'options-general', 'options-writing', 'options-reading', 'options-discussion', 'options-media', 'options-permalink', ] )) { echo ''; } } public function support_menu() { // $this->submenu_link_new_tab(); // $adminify_ui = AdminSettings::get_instance()->get('admin_ui'); $support_url = 'adminify-support'; // if($adminify_ui ) { // $support_urlsss = \WPAdminify\Inc\Admin\AdminSettings::support_url(); // } add_submenu_page( 'wp-adminify-settings', // Ex. wp-adminify-settings __('Get Support', 'adminify'), __('Support', 'adminify'), 'manage_options', $support_url, [$this, 'support_menu_redirect'], 60 ); // Hook into admin_init to handle the redirect early, before any output add_action('admin_init', [$this, 'handle_support_redirect']); } /** * Handle support menu redirect * This method is called when the support page would normally load */ public function support_menu_redirect() { // This function body will never execute because we redirect in admin_init // But it needs to exist as the callback } /** * Handle the actual redirect in admin_init before any output */ public function handle_support_redirect() { if (isset($_GET['page']) && $_GET['page'] === 'adminify-support') { $redirect_url = \WPAdminify\Inc\Admin\AdminSettings::support_url(); // Add the URLs to the allowed redirect hosts filter add_filter('allowed_redirect_hosts', function($hosts) { $hosts[] = 'wpadminify.com'; $hosts[] = 'wordpress.org'; return $hosts; }); // Use wp_redirect for external URLs instead of wp_safe_redirect wp_redirect($redirect_url, 301); exit; } } public function submenu_link_new_tab() { add_action('admin_footer', function () { ?>