url = admin_url('admin.php'); self::$_instance->url = add_query_arg( array('page' => 'agency-ecommerce-options'), self::$_instance->url ); self::$_instance->from_plugin = $from_plugin; self::$_instance->title = esc_html__('Agency Ecommerce Options', 'agency-ecommerce'); self::$_instance->setup(); add_action('admin_menu', array(self::$_instance, 'add_menu'), 5); add_action('admin_enqueue_scripts', array(self::$_instance, 'scripts')); add_action('agency_ecommerce_about_menu_tabs', array(self::$_instance, 'menu_tabs'), 5); add_action('agency_ecommerce_about_main', array(self::$_instance, 'box_links'), 15); add_action('agency_ecommerce_about_main', array(self::$_instance, 'premium_features'), 16); add_action('agency_ecommerce_about_sidebar', array(self::$_instance, 'box_plugins'), 10); add_action('agency_ecommerce_about_sidebar', array(self::$_instance, 'box_community'), 25); add_action('agency_ecommerce_about_sidebar', array(self::$_instance, 'box_documentation'), 30); add_action('admin_notices', array(self::$_instance, 'admin_notice')); add_action('admin_init', array(self::$_instance, 'admin_init')); add_action('wp_ajax_agency_ecommerce_getting_started', array(self::$_instance, 'getting_started')); // Tabs. add_action('agency_ecommerce_about_tab_changelog', array(self::$_instance, 'tab_changelog')); } return self::$_instance; } public function getting_started() { check_ajax_referer('agency_ecommerce_theme_starter_site_install_nonce', 'security'); $agency_ecommerce_all_plugins = agency_ecommerce_get_recommanded_plugins(); $installation_details = array( 'total_plugins' => count($agency_ecommerce_all_plugins), 'plugin' => array(), 'redirect' => admin_url('/themes.php?page=agency-ecommerce-options') ); if (class_exists('Mantrabrain_Starter_Sites')) { $installation_details['redirect'] = admin_url('/themes.php?page=starter-sites&browse=all'); } else { $installation_details['redirect'] = admin_url('/themes.php?page=agency-ecommerce-options'); } include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; foreach ($agency_ecommerce_all_plugins as $plugin_data) { $slug = isset($plugin_data['slug']) ? $plugin_data['slug'] : ''; $installation_details['plugin'][$slug] = false; $plugin = $slug . '/' . $slug . '.php'; if (current_user_can('install_plugins')) { if (is_plugin_active_for_network($plugin) || is_plugin_active($plugin)) { // Plugin is activated $installation_details['plugin'][$slug] = 'active'; } if (file_exists(WP_PLUGIN_DIR . '/' . $slug)) { $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin); $status['plugin'] = $plugin; $status['pluginName'] = $plugin_data['Name']; if (current_user_can('activate_plugin', $plugin) && is_plugin_inactive($plugin)) { $result = activate_plugin($plugin); if (!is_wp_error($result)) { $installation_details['plugin'][$slug] = 'active'; } } else if (is_plugin_active($plugin)) { $installation_details['plugin'][$slug] = 'active'; } } else { $api = plugins_api( 'plugin_information', array( 'slug' => sanitize_key(wp_unslash($slug)), 'fields' => array( 'sections' => false, ), ) ); if (!is_wp_error($api)) { $status['pluginName'] = $api->name; $skin = new WP_Ajax_Upgrader_Skin(); $upgrader = new Plugin_Upgrader($skin); $result = $upgrader->install($api->download_link); if (!is_wp_error($result) && !is_wp_error($skin->result) && !is_null($result)) { $install_status = install_plugin_install_status($api); if (!is_wp_error($install_status)) { $installation_details['plugin'][$slug] = 'installed'; if (current_user_can('activate_plugin', $install_status['file']) && is_plugin_inactive($install_status['file'])) { $result = activate_plugin($install_status['file']); if (!is_wp_error($result)) { $installation_details['plugin'][$slug] = 'active'; } } } } } } } } if ( isset($installation_details['plugin']['mantrabrain-starter-sites']) && 'active' === $installation_details['plugin']['mantrabrain-starter-sites'] ) { $installation_details['redirect'] = admin_url('/themes.php?page=starter-sites&browse=all'); } $is_redirect = isset($_POST['redirect']) && $_POST['redirect'] == 'no' ? false : true; if (!$is_redirect) { unset ($installation_details['redirect']); } wp_send_json($installation_details); } function add_url_args($args = array()) { return add_query_arg($args, self::$_instance->url); } /** * Add admin notice when active theme. */ function admin_notice() { global $pagenow; if (is_admin() && ('themes.php' == $pagenow) && isset($_GET['activated'])) { ?>

config['name']); ?>

0) { $plugin_name_array = wp_list_pluck($agency_ecommerce_get_recommanded_plugins, 'name'); $plugin_name_text = count($plugin_name_array) > 0 ? join(' & ', $plugin_name_array) : ''; $plugin_name_text .= count($plugin_name_array) > 1 ? esc_html__(' plugins', 'agency-ecommerce') : esc_html__(' plugin', 'agency-ecommerce'); } if (!empty($plugin_name_text)) { ?>

config['name']); ?>
esc_html__('General', 'agency-ecommerce'), 'changelog' => esc_html__('Changelog', 'agency-ecommerce') ); echo ''; } function add_menu() { add_theme_page( $this->title, $this->title, 'manage_options', 'agency-ecommerce-options', array($this, 'page') ); } /** * Register scripts * * @param string $id */ function scripts($id) { if ($id == 'widgets.php') { wp_enqueue_style('agency-ecommerce-admin-about', esc_url(get_template_directory_uri()) . '/core/info/assets/css/widgets.css', false, AGENCY_ECOMMERCE_THEME_VERSION); } if (('appearance_page_agency-ecommerce-options' != $id && 'themes.php' != $id) && $id != 'toplevel_page_agency-ecommerce-options') { return; } wp_enqueue_style('agency-ecommerce-admin-about', esc_url(get_template_directory_uri()) . '/core/info/assets/css/about.css', false, AGENCY_ECOMMERCE_THEME_VERSION); wp_register_script('agency-ecommerce-admin-about-js', esc_url(get_template_directory_uri()) . '/core/info/assets/js/about.js', array('jquery'), AGENCY_ECOMMERCE_THEME_VERSION); $translation = array( 'button_text' => esc_html__('Processing...', 'agency-ecommerce'), 'nonce' => wp_create_nonce('agency_ecommerce_theme_starter_site_install_nonce'), 'admin_url' => admin_url(), 'starter_site_install_action' => 'agency_ecommerce_getting_started', 'redirect' => admin_url('/themes.php?page=agency-ecommerce-options') ); wp_localize_script('agency-ecommerce-admin-about-js', 'agency_ecommerce_about_obj', $translation); wp_enqueue_media(); wp_enqueue_script('agency-ecommerce-admin-about-js'); if ('themes' != $id) { wp_enqueue_style('plugin-install'); wp_enqueue_script('plugin-install'); wp_enqueue_script('updates'); add_thickbox(); } } function setup() { $theme = wp_get_theme(); if (is_child_theme()) { $theme = $theme->parent(); } $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'), ); $this->current_tab = isset($_GET['tab']) ? sanitize_text_field($_GET['tab']) : ''; // phpcs:ignore } function page() { $this->setup(); $this->page_header(); echo '
'; $cb = apply_filters('agency_ecommerce_about_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() { ?>

config['version']); ?>
get_contents($file); } ?>
1), $url); wp_redirect($url); die(); } } } function box_links() { $url = admin_url('customize.php'); $links = array( array( 'label' => esc_html__('Logo & Site Identity', 'agency-ecommerce'), 'url' => add_query_arg(array('autofocus' => array('section' => 'title_tagline')), $url), 'icon' => 'dashicons dashicons-format-image' ), array( 'label' => esc_html__('Global Layouts', 'agency-ecommerce'), 'url' => add_query_arg(array('autofocus' => array('section' => 'section_layout')), $url), 'icon' => 'dashicons dashicons-admin-site' ), array( 'label' => esc_html__('Breadcrumbs', 'agency-ecommerce'), 'url' => add_query_arg(array('autofocus' => array('section' => 'section_breadcrumb')), $url), 'icon' => 'dashicons dashicons-images-alt2' ), array( 'label' => esc_html__('Global Colors', 'agency-ecommerce'), 'url' => add_query_arg(array('autofocus' => array('section' => 'colors')), $url), 'icon' => 'dashicons dashicons-edit' ), array( 'label' => esc_html__('Top Header', 'agency-ecommerce'), 'url' => add_query_arg(array('autofocus' => array('section' => 'section_header')), $url), 'icon' => 'dashicons dashicons-editor-kitchensink' ), array( 'label' => esc_html__('Mid Header', 'agency-ecommerce'), 'url' => add_query_arg(array('autofocus' => array('section' => 'section_mid_header')), $url), 'icon' => 'dashicons dashicons-editor-kitchensink' ), array( 'label' => esc_html__('Bottom Header', 'agency-ecommerce'), 'url' => add_query_arg(array('autofocus' => array('section' => 'section_bottom_header')), $url), 'icon' => 'dashicons dashicons-editor-kitchensink' ), array( 'label' => esc_html__('Footer', 'agency-ecommerce'), 'url' => add_query_arg(array('autofocus' => array('section' => 'section_footer')), $url), 'icon' => 'dashicons dashicons-minus' ), ); $links = apply_filters('agency_ecommerce_about_links', $links); ?>

»

»

Mantra Brain Starter Sites is free WordPress plugin from which you can import ready made site within few clicks.', 'agency-ecommerce'); ?>

'mantrabrain-starter-sites', 'active_filename' => 'mantrabrain-starter-sites/mantrabrain-starter-sites.php', ); $plugin_info = wp_parse_args( $plugin_info, array( 'name' => '', 'active_filename' => '', ) ); $status = is_dir(WP_PLUGIN_DIR . '/' . $plugin_slug); $button_class = 'install-now'; if ($plugin_info['active_filename']) { $active_file_name = $plugin_info['active_filename']; } else { $active_file_name = $plugin_slug . '/' . $plugin_slug . '.php'; } if (class_exists('Mantrabrain_Starter_Sites')) { $view_site_txt = esc_html__('View Site Library / Install Demo', 'agency-ecommerce'); $sites_url = add_query_arg( array( 'page' => 'starter-sites', ), admin_url('themes.php') ); } else { $view_site_txt = esc_html__('Go to Agency Ecommerce Options', 'agency-ecommerce'); $sites_url = add_query_arg( array( 'page' => 'agency-ecommerce-options', ), admin_url('admin.php') ); } if (!is_plugin_active($active_file_name)) { $button_txt = esc_html__('Install Importer Plugin', 'agency-ecommerce'); if (!$status) { $install_url = wp_nonce_url( add_query_arg( array( 'action' => 'install-plugin', 'plugin' => $plugin_slug, ), network_admin_url('update.php') ), 'install-plugin_' . $plugin_slug ); } else { $install_url = add_query_arg( array( 'action' => 'active', 'plugin' => ($active_file_name), 'plugin_status' => 'all', 'paged' => '1', '_wpnonce' => wp_create_nonce('activate-plugin_' . $active_file_name), ), network_admin_url('plugins.php') ); $button_class = 'activate-now button-primary'; $button_txt = esc_html__('Active Now', 'agency-ecommerce'); } $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') ); echo ''; } else { echo '
'; echo '

' . $view_site_txt . '

'; // // WPCS: XSS OK. echo '
'; } ?>
$info) { if (strpos($plugin_file, $plugin_slug . '/') === 0) { return $plugin_file; } } return false; } function get_first_tag($content) { $content = wp_kses( $content, array( 'a' => array( 'href' => array(), 'title' => array(), ), 'br' => array(), 'p' => array(), 'em' => array(), 'strong' => array(), ) ); $content = substr($content, 0, strpos($content, '

') + 4); return $content; } function premium_features() { $modules = array( array( 'name' => esc_html__('Parallax Footer', 'agency-ecommerce'), 'desc' => esc_html__('Parallax footer', 'agency-ecommerce'), 'url' => '', ), array( 'name' => esc_html__('Advanced Color Customization', 'agency-ecommerce'), 'desc' => esc_html__('Advance color customization options.', 'agency-ecommerce'), 'url' => '', ), array( 'name' => esc_html__('Typography Options', 'agency-ecommerce'), 'desc' => esc_html__('Typography option', 'agency-ecommerce'), 'url' => '', ), array( 'name' => esc_html__('Banner Widget', 'agency-ecommerce'), 'desc' => esc_html__('Banner Widget', 'agency-ecommerce'), 'url' => '', ), array( 'name' => esc_html__('Brands Widget', 'agency-ecommerce'), 'desc' => esc_html__('Brands Widget', 'agency-ecommerce'), 'url' => '', ), array( 'name' => esc_html__('Product Block Widget', 'agency-ecommerce'), 'desc' => esc_html__('Product Block Widget', 'agency-ecommerce'), 'url' => '', ), array( 'name' => esc_html__('Footer Credit', 'agency-ecommerce'), 'desc' => esc_html__('You can change footer credit.', 'agency-ecommerce'), 'url' => '', ), array( 'name' => esc_html__('Advanced Theme Hooks', 'agency-ecommerce'), 'desc' => esc_html__('Theme Hooks for developer', 'agency-ecommerce'), 'url' => '', ), array( 'name' => esc_html__('Flexible Container & Sidebar Width', 'agency-ecommerce'), 'desc' => esc_html__('You can change sidebar & container width', 'agency-ecommerce'), 'url' => '', ), array( 'name' => esc_html__('Header Color Customization', 'agency-ecommerce'), 'desc' => esc_html__('You can customize header color', 'agency-ecommerce'), 'url' => '', ), array( 'name' => esc_html__('Home Page Widget Title Layout', 'agency-ecommerce'), 'desc' => esc_html__('Homepage widget title layout', 'agency-ecommerce'), 'url' => '', ), array( 'name' => esc_html__('Box/Full width', 'agency-ecommerce'), 'desc' => esc_html__('Box/Full width layout options', 'agency-ecommerce'), 'url' => '', ), array( 'name' => esc_html__('Premium Support', 'agency-ecommerce'), 'desc' => esc_html__('Premium support', 'agency-ecommerce'), 'url' => '', ) ); ?>

current_tab && has_action('agency_ecommerce_about_tab_' . $this->current_tab)) { do_action('agency_ecommerce_about_tab_' . $this->current_tab, $this); } else { ?>