*/ namespace ThemeAtelier\Darkify\Admin; // use ThemeAtelier\Darkify\Admin\TADiscountPage\TADiscountPage; use ThemeAtelier\Darkify\Admin\ReviewNotice\ReviewNotice; use ThemeAtelier\Darkify\Admin\Views\DarkifyOptions; use ThemeAtelier\Darkify\Helpers\DarkifyExternalSupport; use ThemeAtelier\Darkify\Helpers\DarkifyUtils; /** * The admin class */ class Admin { /** * The slug of this plugin. * * @since 1.0.0 * @access private * @var string $plugin_slug The slug of this plugin. */ private $plugin_slug; /** * The min of this plugin. * * @since 1.0.0 * @access private * @var string $min The slug of this plugin. */ private $min; /** * The version of this plugin. * * @since 1.0.0 * @access private * @var string $version The current version of this plugin. */ private $version; public $utils; public $settings; public $external_support; public $unique_id; private $plugin_name; /** * The class constructor. * * @param string $plugin_slug The slug of the plugin. * @param string $version Current version of the plugin. */ function __construct($plugin_slug, $version) { $this->utils = new DarkifyUtils($this); $this->external_support = new DarkifyExternalSupport($this); if (function_exists('wp_rand')) { $this->unique_id = wp_rand(); } DarkifyOptions::options('darkify'); $options = get_option('darkify'); $enable_admin_panel_dark_mode = isset($options['enable_admin_panel_dark_mode']) ? $options['enable_admin_panel_dark_mode'] : false; $this->plugin_name = $plugin_slug; $this->min = (apply_filters('darkify_dev_mode', false) || WP_DEBUG) ? '' : '.min'; add_filter('plugin_action_links_' . DARKIFY_BASENAME, array($this, 'add_plugin_action_links'), 10, 2); if ($enable_admin_panel_dark_mode) { add_action('admin_bar_menu', array($this, 'darkify_admin_bar_switch'), 9999); add_action('admin_print_scripts', array($this, 'darkify_admin_header_script'), 1); add_action('admin_footer', array($this, 'darkify_admin_footer_script')); } add_action('admin_menu', array($this, 'add_plugin_page')); new ReviewNotice(); } public function enqueue_styles($hook) { if($hook === 'toplevel_page_darkify') { wp_enqueue_style('darkify-help-page', DARKIFY_DIR_URL . 'src/Admin/HelpPage/assets/css/help-page' . $this->min . '.css', array(), DARKIFY_VERSION, 'all'); } $options = get_option('darkify'); $enable_admin_panel_dark_mode = isset($options["enable_admin_panel_dark_mode"]) ? $options["enable_admin_panel_dark_mode"] : false; if ($enable_admin_panel_dark_mode) { if (!wp_style_is('darkify-admin-switch', 'enqueued')) { wp_enqueue_style('darkify-admin-switch', DARKIFY_DIR_URL . 'src/assets/css/client_main' . $this->min . '.css', array(), DARKIFY_VERSION, 'all'); } } // Review notice CSS wp_enqueue_style('darkify-review-notice', DARKIFY_DIR_URL . 'src/Admin/ReviewNotice/assets/css/review-notice' . $this->min . '.css', array(), DARKIFY_VERSION, 'all'); } public function enqueue_scripts($hook) { $options = get_option('darkify'); $enable_admin_panel_dark_mode = isset($options["enable_admin_panel_dark_mode"]) ? $options["enable_admin_panel_dark_mode"] : false; if ($enable_admin_panel_dark_mode) { wp_enqueue_script('darkify-admin-client-main', DARKIFY_DIR_URL . 'src/assets/js/client_main' . $this->min . '.js', array(), DARKIFY_VERSION); } if($hook === 'toplevel_page_darkify') { wp_enqueue_script('darkify-help-page', DARKIFY_DIR_URL . 'src/Admin/HelpPage/assets/js/help-page' . $this->min . '.js', array('darkify-plugins'), DARKIFY_VERSION, true); } } // Plugin settings in plugin list public function add_plugin_action_links(array $links) { $new_links = array( sprintf('' . esc_html__('Settings', 'darkify') . ''), sprintf('' . esc_html__('Support', 'darkify') . ''), sprintf('' . esc_html__('Go Pro', 'darkify') . ''), ); return array_merge($new_links, $links); } public function darkify_admin_bar_switch($wp_admin_bar) { $args = array( 'parent' => 'top-secondary', 'id' => 'darkify_admin_bar_switch_container', 'meta' => array( 'class' => 'darkify_admin_bar_switch_container', 'onclick' => 'darkify_switch_trigger()', ) ); $wp_admin_bar->add_node($args); } public function darkify_admin_header_script() { include_once DarkifyUtils::darkify_locate_template('header_script.php'); } public function darkify_admin_footer_script() { include_once DarkifyUtils::darkify_locate_template('footer_script.php'); } public function add_plugin_page() { // This page will be under "Settings" add_menu_page( esc_html__('Darkify', 'darkify'), esc_html__('Darkify', 'darkify'), 'manage_options', 'darkify', [$this, 'darkify_settings'], 'data:image/svg+xml;base64,' . base64_encode(' '), 9 ); do_action('darkify_before_upgrade_pro_menu'); add_submenu_page( 'darkify', __( '👑 Upgrade to Pro!', 'darkify' ), sprintf('%s', __('👑 Upgrade to Pro!', 'darkify')), 'manage_options', 'https://darkifywp.com/pricing' ); do_action('darkify_after_upgrade_pro_menu'); } public function darkify_settings() {} }