url = admin_url( 'admin.php' ); self::$_instance->url = add_query_arg( array( 'page' => 'admire-extra' ), self::$_instance->url ); self::$_instance->title = esc_html__( 'Admire Options', 'admire-extra' ); $theme = wp_get_theme(); if ( 'Admire' == $theme->name || 'admire' == $theme->template ) { add_action( 'admin_menu', array( self::$_instance, 'admire_extra_add_menu' ), 5 ); } add_action( 'admin_enqueue_scripts', array( self::$_instance, 'admire_extra_scripts' ) ); add_action( 'admire/dashboard/main', array( self::$_instance, 'admire_extra_box_links' ), 10 ); add_action( 'admire/dashboard/sidebar', array( self::$_instance, 'admire_extra_box_plugins' ), 10 ); add_action( 'admire/dashboard/sidebar', array( self::$_instance, 'admire_extra_box_recommend_plugins' ), 20 ); add_action( 'admire/dashboard/sidebar', array( self::$_instance, 'admire_extra_box_community' ), 25 ); add_action( 'admin_bar_menu', array( self::$_instance, 'admire_extra_admin_bar_button' ), 100 ); } return self::$_instance; } function admire_extra_add_url_args( $args = array() ){ return add_query_arg( $args, self::$_instance->url ); } function admire_extra_add_menu(){ add_theme_page( $this->title, $this->title, 'manage_options', 'admire', array( $this, 'admire_extra_page' ) ); } function admire_extra_admin_bar_button($wp_admin_bar){ if (current_user_can('manage_options')) { $args = array( 'id' => $this->title, 'title' => 'Admire Theme', 'href' => admin_url( 'themes.php?page=admire' ), 'meta' => array( 'class' => 'admire-admin' ) ); $wp_admin_bar->add_node($args); } } /** * Register scripts * * @param $id */ function admire_extra_scripts($id) { wp_enqueue_style( 'admire-extra-notice', plugin_dir_url( __FILE__ ) . 'css/notice.css' ); if ( $id != 'appearance_page_admire' && $id != 'themes.php' ) { return; } wp_enqueue_style('admire-admin', plugin_dir_url( __FILE__ ) . '/css/dashboard.css', false, ''); if ( $id != 'themes' ) { wp_enqueue_style('plugin-install'); wp_enqueue_script('plugin-install'); wp_enqueue_script('updates'); add_thickbox(); } } function admire_extra_setup(){ $theme = wp_get_theme(); $this->config = array( 'name' => $theme->get('Name'), 'theme_uri' => $theme->get('ThemeURI'), 'desc' => $theme->get('Description'), 'author' => $theme->get('Author'), 'author_uri' => $theme->get('AuthorURI'), 'version' => $theme->get('Version'), ); if ( sanitize_text_field( wp_unslash( isset( $_REQUEST['REQUEST_URI_nonce'] ) ) ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['REQUEST_URI_nonce'], 'REQUEST_URI_nonce_action' ) ) ) ) { echo esc_html( '' ); } $this->current_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] )) : ''; } function admire_extra_page(){ $this->admire_extra_setup(); $this->page_header(); echo '
'; $cb = apply_filters( 'admire/dashboard/content_cb', false ); if ( ! is_callable( $cb ) ) { $cb = array( $this, 'page_inner' ); } if ( is_callable( $cb ) ) { call_user_func_array( $cb, array( $this ) ); } echo '
'; } public function page_header(){ ?>
<?php esc_attr_e( 'logo', 'admire-extra' ); ?>
__( 'Logo & Site Identity', 'admire-extra' ), 'url' => add_query_arg( array( 'autofocus' => array( 'section' => 'title_tagline' ) ), $url ), ), array( 'label' => __( 'Header & Header Layouts', 'admire-extra' ), 'url' => add_query_arg( array( 'autofocus' => array( 'panel' => 'header_panel' ) ), $url ), ), array( 'label' => __( 'Posts & Pages Options', 'admire-extra' ), 'url' => add_query_arg( array( 'autofocus' => array( 'section' => 'post_page_panel' ) ), $url ), ), array( 'label' => __( 'Footer', 'admire-extra' ), 'url' => add_query_arg( array( 'autofocus' => array( 'panel' => 'footer_panel' ) ), $url ), ), array( 'label' => __( 'Colors', 'admire-extra' ), 'url' => add_query_arg( array( 'autofocus' => array( 'section' => 'colors' ) ), $url ), ), array( 'label' => __( 'Menu Options', 'admire-extra' ), 'url' => add_query_arg( array( 'autofocus' => array( 'panel' => 'nav_menus' ) ), $url ), ), array( 'label' => __( 'Homepage Settings', 'admire-extra' ), 'url' => add_query_arg( array( 'autofocus' => array( 'section' => 'static_front_page' ) ), $url ), ) ); $links = apply_filters( 'admire/dashboard/links', $links ); ?>

$info ) { if ( strpos( $plugin_file, $plugin_slug.'/' ) === 0 ) { return $plugin_file; } } return false; } function admire_extra_box_recommend_plugins(){ $list_plugins = array( 'elementor', ); $list_plugins = apply_filters( 'admire/recommend-plugins', $list_plugins ); $key = 'admire_plugins_info_'. wp_hash( json_encode( $list_plugins ) ); $plugins_info = get_transient( $key ); if ( false === $plugins_info) { $plugins_info =array(); if ( ! function_exists( 'plugins_api' ) ) { require_once ABSPATH.'/wp-admin/includes/plugin-install.php'; } foreach ( $list_plugins as $slug ) { $info = plugins_api( 'plugin_information', array( 'slug' => $slug ) ); if ( ! is_wp_error( $info ) ){ $plugins_info[ $slug ] = $info; } } set_transient( $key, $plugins_info ); } $html = ''; foreach ( $plugins_info as $plugin_slug => $info ) { $status = is_dir( WP_PLUGIN_DIR . '/' . $plugin_slug ); $plugin_file = $this->admire_extra_get_plugin_file( $plugin_slug ); if ( ! is_plugin_active( $plugin_file ) ) { $html .= '
'; $html .= '

'.esc_html( $info->name ).'

'; if ($status) { $button_class = 'activate-now'; // $button_txt = esc_html__('Activate', 'admire-extra'); $url = wp_nonce_url('plugins.php?action=activate&plugin=' . urlencode($plugin_file), 'activate-plugin_' . $plugin_file); } else { $button_class = 'install-now'; // $button_txt = esc_html__('Install Now', 'admire-extra'); $url = wp_nonce_url( add_query_arg( array( 'action' => 'install-plugin', 'plugin' => $plugin_slug ), network_admin_url('update.php') ), 'install-plugin_' . $plugin_slug ); } $detail_link = add_query_arg( array( 'tab' => 'plugin-information', 'plugin' => $plugin_slug, 'TB_iframe' => 'true', 'width' => '772', 'height' => '349', ), network_admin_url('plugin-install.php') ); $class = 'action-btn plugin-card-' . $plugin_slug; $html .= '
'; $html .= '

' . $button_txt . '

'; $html .= '' . esc_html__('Details', 'admire-extra') . ''; $html .= '
'; $html .= '
'; } } // end foreach if ( $html ) { ?>

current_tab && has_action( 'admire/dashboard/tab/'.$this->current_tab ) ){ do_action( 'admire/dashboard/tab/'.$this->current_tab, $this ); } else { ?>