🚀 Advanced Web Server Manager
Complete File Manager & Terminal - Standalone Version
By Sid Gifari | Gifari Industries
Current path:
/
/
home
/
duzhbywe
/
appmen.com.ng
/
wp-content
/
themes
/
newscrunch
/
admin
/
inc
✏️
Editing: class-spicethemes-about-page.php
<?php /** * @author spicethemes */ if (!class_exists('Newscrunch_About_Page')) { class Newscrunch_About_Page { public static $instance; public $options; public $version = '1.0.0'; public $theme; public $demo_link; public $docs_link; public $rate_link; public $theme_page; public $pro_link; public $tabs; public $action_count; public $recommended_actions; public static function get_instance() { if (is_null(self::$instance)) { self::$instance = new self(); } return self::$instance; } function __construct() { $this->theme = wp_get_theme(); $actions = $this->get_recommended_actions(); $this->action_count = $actions['count']; $this->recommended_actions = $actions['actions']; add_action('admin_menu', array($this, 'add_theme_info_menu')); add_action('wp_ajax_newscrunch_update_rec_acts', array($this, 'update_recommended_actions_watch')); add_action('load-themes.php', array($this, 'activation_admin_notice')); /* enqueue script and style for welcome screen */ add_action( 'admin_enqueue_scripts', array( $this, 'style_and_scripts' ) ); /* load welcome screen */ add_action( 'newscrunch_info_screen', array( $this, 'getting_started' ), 10 ); add_action( 'newscrunch_info_screen', array( $this, 'recommended_actions' ), 20 ); add_action( 'newscrunch_info_screen', array( $this, 'video_tutorials' ), 30 ); } /** * Load welcome screen css and javascript * @sfunctionse 1.8.2.4 */ public function style_and_scripts( $hook_suffix ) { if ( 'toplevel_page_newscrunch-welcome' == $hook_suffix || 'admin_page_spice-settings-importer' == $hook_suffix ) { wp_enqueue_style( 'newscrunch-info-screen-css', NEWSCRUNCH_TEMPLATE_DIR_URI . '/admin/assets/css/welcome.css' ); wp_enqueue_style('newscrunch-theme-info-style', NEWSCRUNCH_TEMPLATE_DIR_URI . '/admin/assets/css/welcome-page-styles.css'); wp_enqueue_style('newscrunch-welcome_customizer', NEWSCRUNCH_TEMPLATE_DIR_URI . '/admin/assets/css/welcome_customizer.css'); wp_enqueue_script('plugin-install'); wp_enqueue_script('updates'); } wp_enqueue_script('newscrunch-blocks-install', NEWSCRUNCH_TEMPLATE_DIR_URI . '/admin/assets/js/plugin-install.js', array('jquery')); wp_enqueue_script('newscrunch-ajax', NEWSCRUNCH_TEMPLATE_DIR_URI . '/admin/assets/js/ajax.js', array('jquery')); wp_localize_script('newscrunch-blocks-install', 'newscrunch_companion_install', array( 'installing' => esc_html__('Installing', 'newscrunch' ), 'activating' => esc_html__('Activating', 'newscrunch' ), 'error' => esc_html__('Error', 'newscrunch' ), 'ajax_url' => esc_url(admin_url('admin-ajax.php')), )); } /** * Load scripts for customizer page * @sfunctionse 1.8.2.4 */ public function scripts_for_customizer() { wp_enqueue_style( 'newscrunch-info-screen-customizer-css', NEWSCRUNCH_TEMPLATE_DIR_URI . '/admin/assets/css/welcome_customizer.css' ); wp_enqueue_script( 'newscrunch-info-screen-customizer-js', NEWSCRUNCH_TEMPLATE_DIR_URI . '/admin/assets/js/welcome_customizer.js', array('jquery'), '20120206', true ); global $newscrunch_required_actions; $nr_actions_required = 0; /* get number of required actions */ if( get_option('newscrunch_show_required_actions') ): $newscrunch_show_required_actions = get_option('newscrunch_show_required_actions'); else: $newscrunch_show_required_actions = array(); endif; if( !empty($newscrunch_required_actions) ): foreach( $newscrunch_required_actions as $newscrunch_required_action_value ): if(( !isset( $newscrunch_required_action_value['check'] ) || ( isset( $newscrunch_required_action_value['check'] ) && ( $newscrunch_required_action_value['check'] == false ) ) ) && ((isset($newscrunch_show_required_actions[$newscrunch_required_action_value['id']]) && ($newscrunch_show_required_actions[$newscrunch_required_action_value['id']] == true)) || !isset($newscrunch_show_required_actions[$newscrunch_required_action_value['id']]) )) : $nr_actions_required++; endif; endforeach; endif; wp_localize_script( 'newscrunch-info-screen-customizer-js', 'newscrunchLiteWelcomeScreenCustomizerObject', array( 'nr_actions_required' => $nr_actions_required, 'aboutpage' => esc_url( admin_url( 'themes.php?page=newscrunch-info' ) ), 'customizerpage' => esc_url( admin_url( 'customize.php' ) ), 'themeinfo' => esc_html__('View Theme Info','newscrunch' ), ) ); } public function add_theme_info_menu() { $theme = $this->theme; $count = $this->action_count; $count = ($count > 0) ? '<span class="awaiting-mod action-count"><span>' . $count . '</span></span>' : ''; /* translators: %1$s: theme name and %2$s: count of recommended plugins */ $title = sprintf(esc_html__('About','newscrunch') . ' %1$s %2$s ', esc_html($theme->get('Name')), $count); /* translators: %1$s: theme name and %2$s: version of the theme*/ add_menu_page(sprintf(esc_html__('Welcome to', 'newscrunch' ) . ' %1$s %2$s ', esc_html($theme->get('Name')), esc_html($theme->get('Version'))), $title, 'edit_theme_options', 'newscrunch-welcome', array($this, 'print_welcome_page')); } public function activation_admin_notice() { global $pagenow; if (is_admin() && ('themes.php' == $pagenow) && isset($_GET['activated'])) { add_action('admin_notices', array($this, 'welcome_admin_notice'), 99); } } public function welcome_admin_notice() { $theme = $this->theme; $theme_name = $theme->get('Name'); ?> <div class="updated notice is-dismissible"> <p><?php /* translators: %1$s: theme name and %2$ %3$s: url of the options page */ printf( '%1$s ' . esc_html__('theme is installed. To take full advantage of the features this theme has to offer visit our','newscrunch') . ' %2$s ' . esc_html__('welcome page','newscrunch') . '%3$s', esc_html($theme_name), '<a href="' . esc_url( admin_url( 'admin.php?page=newscrunch-welcome' ) ) . '" class="newscrunch-wl-page-link">', '</a>' ); ?></p> <p><a href="<?php echo esc_url(admin_url('admin.php?page=newscrunch-welcome')); ?>" class="button newscrunch-get-start-btn" style="text-decoration: none;"><?php /* translators: %s: theme name */ printf( esc_html__( 'Get started with', 'newscrunch') . ' %s ' . esc_html__('theme', 'newscrunch'), esc_html($theme_name)); ?></a></p> </div> <?php } public function print_welcome_page() { $theme = $this->theme; ?> <div class="spice-container-fulid"> <div class="spice-row"> <div class="spice-col-1"> <div class="wrap theme-info-wrap newscrunch-wrap"> <div style="clear: both;"></div> <div class="theme-welcome-container" style="min-height:300px;"> <div class="theme-welcome-inner"> <?php $tabs = $this->get_tabs_array(); $tabs_head = ''; $tab_file_path = ''; $active_tab = 'getting_started'; if (isset($_GET['tab']) && $_GET['tab']) { $active_tab = sanitize_text_field($_GET['tab']); } foreach ($tabs as $key => $tab) { $active_class = ''; $count = ''; if ($active_tab == $tab['link']) { $tab_file_path = $tab['file_path']; } if ($tab['link'] == 'recommended_actions') { $count = $this->action_count; $count = ($count > 0) ? '<span class="badge-action-count">' . $count . '</span>' : ''; } $tabs_head .= sprintf('<li role="presentation"><a href="%s" class="nav-tab %s" role="tab" data-toggle="tab">%s</a></li>', esc_url(('#' . $tab['link'])), $active_class, $tab['name'] . $count); } ?> <ul class="newscrunch-nav-tabs" role="tablist"> <?php echo wp_kses_post($tabs_head); ?> </ul> <div class="newscrunch-tab-content"> <?php do_action( 'newscrunch_info_screen' ); ?> </div> <div class="tab-content <?php echo esc_attr($active_tab); ?>"> <?php if (!empty($tab_file_path) && file_exists($tab_file_path)) { require_once $tab_file_path; } ?> <div style="clear: both;"></div> </div> </div> </div> </div> </div> </div> </div> <?php } /** * Getting Started * */ public function getting_started() { get_template_part( 'admin/tab-pages/getting-started' ); } /** * Recommended Action * */ public function recommended_actions() { $newscrunch_actions = $this->recommended_actions; $newscrunch_actions_todo = get_option( 'recommended_actions', false ); // Pass $newscrunch_actions to the template part set_query_var( 'newscrunch_actions', $newscrunch_actions ); set_query_var( 'newscrunch_actions_todo', $newscrunch_actions_todo ); get_template_part( 'admin/tab-pages/recommended_actions' ); } /** * Video Tutorials * */ public function video_tutorials() { get_template_part( 'admin/tab-pages/video-tutorials' ); } public function get_tabs_array() { $tabs_array = array(); $tabs_array[] = array( 'link' => 'getting_started', 'name' => 'Getting Started', 'file_path' => NEWSCRUNCH_TEMPLATE_DIR . '/admin/tab-pages/getting-started.php', ); $tabs_array[] = array( 'link' => 'recommended_actions', 'name' => 'Recommended Actions', 'file_path' => NEWSCRUNCH_TEMPLATE_DIR . '/admin/tab-pages/recommended_actions.php', ); $tabs_array[] = array( 'link' => 'video_tutorials', 'name' => 'Video Tutorials', 'file_path' => NEWSCRUNCH_TEMPLATE_DIR . '/admin/tab-pages/video-tutorials.php', ); return $tabs_array; } public function get_recommended_plugins() { $plugins = apply_filters('newscrunch_recommended_plugins', array()); return $plugins; } public function get_useful_plugins() { $plugins = apply_filters('newscrunch_useful_plugins', array()); return $plugins; } public function get_recommended_actions() { $act_count = 0; $actions_todo = get_option( 'recommended_actions', array()); $plugins = $this->get_recommended_plugins(); if ($plugins) { foreach ($plugins as $key => $plugin) { $action = array(); if (!isset($plugin['slug'])) { continue; } $action['id'] = 'install_' . $plugin['slug']; $action['desc'] = ''; if (isset($plugin['desc'])) { $action['desc'] = $plugin['desc']; } $action['name'] = ''; if (isset($plugin['name'])) { $action['title'] = $plugin['name']; } $link_and_is_done = $this->get_plugin_buttion($plugin['slug'], $plugin['name']); $action['link'] = $link_and_is_done['button']; $action['is_done'] = $link_and_is_done['done']; if (!$action['is_done'] && (!isset($actions_todo[$action['id']]) || !$actions_todo[$action['id']])) { $act_count++; } $recommended_actions[] = $action; $actions_todo[] = array('id' => $action['id'], 'watch' => true); } return array('count' => $act_count, 'actions' => $recommended_actions); } } public function get_plugin_buttion($slug, $name) { $is_done = false; $button_html = ''; $is_installed = $this->is_plugin_installed($slug); $plugin_path = $this->get_plugin_basename_from_slug($slug); $is_activeted = $this->chk_plg($name); if (!$is_installed) { $plugin_install_url = add_query_arg( array( 'action' => 'install-plugin', 'plugin' => $slug, ), self_admin_url('update.php') ); $plugin_install_url = wp_nonce_url($plugin_install_url, 'install-plugin_' . $slug); $button_html = sprintf('<a class="spicethemes-plugin-install install-now button-secondary button" data-slug="%1$s" href="%2$s" aria-label="%3$s" data-name="%4$s">%5$s</a>', esc_attr($slug), esc_url($plugin_install_url), /* translators: %s: theme name */ sprintf(esc_html__('Install','newscrunch') . ' %s ' . esc_html__('now','newscrunch'), esc_html($name)), esc_html($name), esc_html__('Install and activate', 'newscrunch' ) ); } elseif ($is_installed && !$is_activeted) { $plugin_activate_link = add_query_arg( array( 'action' => 'activate', 'plugin' => rawurlencode($plugin_path), 'plugin_status' => 'all', 'paged' => '1', '_wpnonce' => wp_create_nonce('activate-plugin_' . $plugin_path), ), self_admin_url('plugins.php') ); global $pagenow; if ( "themes.php" != $pagenow && is_admin() ) { $activate_string=esc_html__('Activate', 'newscrunch' ); } else { $activate_string=esc_html__('Activate Import Plugin', 'newscrunch' ); } $button_html = sprintf('<a class="spicethemes-plugin-activate activate-now button-primary button" data-slug="%1$s" href="%2$s" aria-label="%3$s" data-name="%4$s">%5$s</a>', esc_attr($slug), esc_url($plugin_activate_link), /* translators: %s: theme name */ sprintf(esc_html__('Activate','newscrunch') . ' %s ' . esc_html__('now','newscrunch'), esc_html($name)), esc_html($name), $activate_string ); } elseif ($is_activeted) { global $pagenow; if ( "themes.php" != $pagenow && is_admin() ) { $button_html = sprintf('<div class="action-link button disabled"><span class="dashicons dashicons-yes"></span> %s</div>', esc_html__('Active', 'newscrunch' )); $is_done = true; } } return array('done' => $is_done, 'button' => $button_html); } public function chk_plg($name) { if( class_exists('WPCF7') && ($name=='Contact Form 7')) { return true; } if( class_exists('Unique_Headers_Instantiate') && ($name=='Unique Headers')) { return true; } if( function_exists('wpseo_init') && ($name=='Yoast SEO')) { return true; } if( class_exists('Spice_Post_Slider') && ($name=='Spice Post Slider')) { return true; } if( class_exists('Spice_Social_Share') && ($name=='Spice Social Share')) { return true; } if( function_exists('sobw_fs') && ($name=='Seo Optimized Images')) { return true; } if( class_exists('WooCommerce') && ($name=='WooCommerce')) { return true; } if( class_exists('Spice_Blocks') && ($name=='Spice Blocks')) { return true; } } public function get_plugin_basename_from_slug($slug) { $keys = array_keys($this->get_installed_plugins()); foreach ($keys as $key) { if (preg_match('|^' . $slug . '/|', $key)) { return $key; } } return $slug; } public function is_plugin_installed($slug) { $installed_plugins = $this->get_installed_plugins(); // Retrieve a list of all installed plugins (WP cached). $file_path = $this->get_plugin_basename_from_slug($slug); return (!empty($installed_plugins[$file_path])); } public function get_installed_plugins() { if (!function_exists('get_plugins')) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } return get_plugins(); } public function update_recommended_actions_watch() { if (isset($_POST['action_id'])) { $action_id = sanitize_text_field($_POST['action_id']); $actions_todo = get_option('recommended_actions', array()); if ((!isset($actions_todo[$action_id]) || !$actions_todo[$action_id])) { $actions_todo[$action_id] = true; } else { $actions_todo[$action_id] = false; } update_option('recommended_actions', $actions_todo); } echo json_encode(get_option('recommended_actions')); wp_die(); } public function get_plugin_info_api( $slug ) { require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; $call_api = get_transient( 'st_about_plugin_info_' . $slug ); if ( false === $call_api ) { $call_api = plugins_api( 'plugin_information', array( 'slug' => $slug, 'fields' => array( 'downloaded' => false, 'rating' => false, 'description' => false, 'short_description' => true, 'donate_link' => false, 'tags' => false, 'sections' => true, 'homepage' => true, 'added' => false, 'last_updated' => false, 'compatibility' => false, 'tested' => false, 'requires' => false, 'downloadlink' => false, 'icons' => true, ), ) ); set_transient( 'st_about_plugin_info_' . $slug, $call_api, 30 * MINUTE_IN_SECONDS ); } return $call_api; } public function get_plugin_icon( $icons ) { if ( ! empty( $icons['svg'] ) ) { $plugin_icon_url = $icons['svg']; } elseif ( ! empty( $icons['2x'] ) ) { $plugin_icon_url = $icons['2x']; } elseif ( ! empty( $icons['1x'] ) ) { $plugin_icon_url = $icons['1x']; } else { $plugin_icon_url = NEWSCRUNCH_TEMPLATE_DIR . '/admin/assets/images/placeholder_plugin.png'; } return $plugin_icon_url; } } } function newscrunch_useful_plugins_array($plugins){ $plugins[] = array( 'slug' => 'elementor', ); return $plugins; } add_filter('newscrunch_useful_plugins', 'newscrunch_useful_plugins_array'); function newscrunch_recommended_plugins_array($plugins){ $plugins[] = array( 'name' => 'Contact Form 7', 'slug' => 'contact-form-7', 'desc' => esc_html__('To display the contact form, install & activate this plugin.', 'newscrunch' ), ); $plugins[] = array( 'name' => 'Yoast SEO', 'slug' => 'wordpress-seo', 'desc' => esc_html__('To enable the display of breadcrumbs, please install and activate this plugin.', 'newscrunch'), ); $plugins[] = array( 'name' => 'Unique Headers', 'slug' => 'unique-headers', 'desc' => esc_html__('To add a different banner image for a different page or post, install & activate this plugin.', 'newscrunch'), ); $plugins[] = array( 'name' => 'Spice Post Slider', 'slug' => 'spice-post-slider', 'desc' => esc_html__('To display the posts in a beautiful slider with multiple options, install & activate this plugin.', 'newscrunch'), ); $plugins[] = array( 'name' => 'Spice Social Share', 'slug' => 'spice-social-share', 'desc' => esc_html__('To add the social share buttons to your posts, install & activate this plugin.', 'newscrunch'), ); $plugins[] = array( 'name' => 'Seo Optimized Images', 'slug' => 'seo-optimized-images', 'desc' => esc_html__('We highly recommend installing and activating the Seo Optimized Images plugin, which will dynamically insert SEO-friendly alt attributes and title attributes to enhance your image optimization.', 'newscrunch'), ); $plugins[] = array( 'name' => 'WooCommerce', 'slug' => 'woocommerce', 'desc' => esc_html__('We highly recommend installing and activating the WooCommerce plugin, which allows you to create a shop and enhance your business.', 'newscrunch'), ); $plugins[] = array( 'name' => 'Spice Blocks', 'slug' => 'spice-blocks', 'desc' => esc_html__('It is recommended that you install & activate the Spice Blocks plugin to import the gutenberg starter sites', 'newscrunch' ), ); return $plugins; } add_filter('newscrunch_recommended_plugins', 'newscrunch_recommended_plugins_array'); function newscrunch_about_page() { return Newscrunch_About_Page::get_instance(); } global $newscrunch_about_page; $newscrunch_about_page = newscrunch_about_page();
💾 Save Changes
❌ Cancel