芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/wp-content/themes/dexolix/inc/admin/config/plugins.php
init_globals(); $this->init_actions(); } public function init_globals() { //set relative plugin path url $this->plugin_path = trailingslashit($this->cleanFilePath(dirname(__FILE__))); $relative_url = str_replace($this->cleanFilePath(get_template_directory()), '', $this->plugin_path); $this->plugin_url = trailingslashit(get_template_directory_uri() . $relative_url); } public function setup_wizard() { wp_enqueue_script('teconce-plugins-setup', get_template_directory_uri() . '/inc/admin/config/js/plugin-setup.js', array( 'jquery' ), $this->version); wp_localize_script('teconce-plugins-setup', 'envato_setup_params', array( 'tgm_plugin_nonce' => array( 'update' => wp_create_nonce('tgmpa-update'), 'install' => wp_create_nonce('tgmpa-install'), ), 'tgm_bulk_url' => admin_url($this->tgmpa_url), 'ajaxurl' => admin_url('admin-ajax.php'), 'wpnonce' => wp_create_nonce('envato_setup_nonce'), 'verify_text' => esc_attr__('...verifying', 'dexolix'), )); ob_start(); } public function init_actions() { if (current_user_can('manage_options')) { if (class_exists('TGM_Plugin_Activation') && isset($GLOBALS['tgmpa'])) { add_action('init', array($this, 'get_tgmpa_instanse'), 30); add_action('init', array($this, 'set_tgmpa_url'), 40); } add_filter('tgmpa_load', array($this, 'tgmpa_load'), 10, 1); add_action('wp_ajax_envato_setup_plugins', array($this, 'ajax_plugins')); } } public function envato_setup_default_plugins() { tgmpa_load_bulk_installer(); // install plugins with TGM. if (!class_exists('TGM_Plugin_Activation') || !isset($GLOBALS['tgmpa'])) { die('Failed to find TGM'); } $url = wp_nonce_url(add_query_arg(array('plugins' => 'go')), 'envato-setup'); $plugins = $this->_get_plugins(); $method = ''; // Leave blank so WP_Filesystem can populate it as necessary. $fields = array_keys($_POST); // Extra fields to pass to WP_Filesystem. if (false === ($creds = request_filesystem_credentials(esc_url_raw($url), $method, false, false, $fields))) { return true; // Stop the normal page form from displaying, credential request form will be shown. } // Now we have some credentials, setup WP_Filesystem. if (!WP_Filesystem($creds)) { // Our credentials were no good, ask the user for them again. request_filesystem_credentials(esc_url_raw($url), $method, true, false, $fields); return true; } /* If we arrive here, we have the filesystem */ $this->setup_wizard(); wp_print_scripts('teconce-plugins-setup'); ?>
_get_plugins(); $req_count = 0; $builders = array('js_composer', 'elementor'); $builders_count = 0; foreach ($plugins['all'] as $slug => $plugin) { // if($plugin['required']){ if (!empty($plugin['tecon_dashboard']) && $plugin['tecon_dashboard']) { $req_count++; } if (in_array($slug, $builders)) { $builders_count++; } } if ($req_count > 0) { ?>
Builder
Builder
$plugin) { if (in_array($slug, $builders)) { if (!empty($plugin['tecon_dashboard']) && $plugin['tecon_dashboard']) { ?>
value="check_">
Other Plugins
$plugin) { // if($plugin['required']){ if (!in_array($slug, $builders)) { if (!empty($plugin['tecon_dashboard']) && $plugin['tecon_dashboard']) { ?>
value="check_">
Install plugins
Skip this step
Next step
tgmpa_instance = call_user_func(array(get_class($GLOBALS['tgmpa']), 'get_instance')); } /** * Update $tgmpa_menu_slug and $tgmpa_parent_slug from TGMPA instance * * @access public * @since 1.1.2 */ public function set_tgmpa_url() { $this->tgmpa_menu_slug = (property_exists($this->tgmpa_instance, 'menu')) ? $this->tgmpa_instance->menu : $this->tgmpa_menu_slug; $this->tgmpa_menu_slug = apply_filters($this->theme_name . '_theme_setup_wizard_tgmpa_menu_slug', $this->tgmpa_menu_slug); $tgmpa_parent_slug = (property_exists($this->tgmpa_instance, 'parent_slug') && $this->tgmpa_instance->parent_slug !== 'themes.php') ? 'admin.php' : 'themes.php'; $this->tgmpa_url = apply_filters($this->theme_name . '_theme_setup_wizard_tgmpa_url', $tgmpa_parent_slug . '?page=' . $this->tgmpa_menu_slug); } private function tecon_check_plugin_is_active($slug) { switch ($slug) { case 'dexolix-core': if (class_exists('Dexolix_Core')) return true; break; case 'one-click-demo-import': if (class_exists('OCDI_Plugin')) return true; break; case 'js_composer': if (function_exists('vc_set_as_theme')) return true; break; case 'revslider': if (class_exists('RevSliderFront')) return true; break; case 'woocommerce': if (class_exists('woocommerce')) return true; break; case 'elementor': if (class_exists('\Elementor\Plugin')) return true; break; case 'contact-form-7': if (function_exists('wpcf7_plugin_path')) return true; break; } return false; } private function _get_plugins() { $instance = call_user_func(array(get_class($GLOBALS['tgmpa']), 'get_instance')); $plugins = array( 'all' => array(), // Meaning: all plugins which still have open actions. 'install' => array(), 'update' => array(), 'activate' => array(), ); foreach ($instance->plugins as $slug => $plugin) { if ($this->tecon_check_plugin_is_active($slug) && false === $instance->does_plugin_have_update($slug)) { // No need to display plugins if they are installed, up-to-date and active. continue; } else { $plugins['all'][$slug] = $plugin; if (!$instance->is_plugin_installed($slug)) { $plugins['install'][$slug] = $plugin; } else { if (false !== $instance->does_plugin_have_update($slug)) { $plugins['update'][$slug] = $plugin; } if ($instance->can_plugin_activate($slug)) { $plugins['activate'][$slug] = $plugin; } } } } return $plugins; } public function ajax_plugins() { if (!check_ajax_referer('envato_setup_nonce', 'wpnonce') || empty($_POST['slug'])) { wp_send_json_error(array('error' => 1, 'message' => esc_attr__('No Slug Found', 'dexolix'))); } $json = array(); // send back some json we use to hit up TGM $plugins = $this->_get_plugins(); // what are we doing with this plugin? foreach ($plugins['activate'] as $slug => $plugin) { if ($_POST['slug'] == $slug) { $json = array( 'url' => admin_url($this->tgmpa_url), 'plugin' => array($slug), 'tgmpa-page' => $this->tgmpa_menu_slug, 'plugin_status' => 'all', '_wpnonce' => wp_create_nonce('bulk-plugins'), 'action' => 'tgmpa-bulk-activate', 'action2' => -1, 'message' => esc_attr__('Activating Plugin', 'dexolix'), ); break; } } foreach ($plugins['update'] as $slug => $plugin) { if ($_POST['slug'] == $slug) { $json = array( 'url' => admin_url($this->tgmpa_url), 'plugin' => array($slug), 'tgmpa-page' => $this->tgmpa_menu_slug, 'plugin_status' => 'all', '_wpnonce' => wp_create_nonce('bulk-plugins'), 'action' => 'tgmpa-bulk-update', 'action2' => -1, 'message' => esc_attr__('Updating Plugin', 'dexolix'), ); break; } } foreach ($plugins['install'] as $slug => $plugin) { if ($_POST['slug'] == $slug) { $json = array( 'url' => admin_url($this->tgmpa_url), 'plugin' => array($slug), 'tgmpa-page' => $this->tgmpa_menu_slug, 'plugin_status' => 'all', '_wpnonce' => wp_create_nonce('bulk-plugins'), 'action' => 'tgmpa-bulk-install', 'action2' => -1, 'message' => esc_attr__('Installing Plugin', 'dexolix'), ); break; } } if ($json) { $json['hash'] = md5(serialize($json)); // used for checking if duplicates happen, move to next plugin wp_send_json($json); } else { wp_send_json(array('done' => 1, 'message' => esc_attr__('Success', 'dexolix'))); } exit; } public static function cleanFilePath($path) { $path = str_replace('', '', str_replace(array('\\', '\\\\', '//'), '/', $path)); if ($path[strlen($path) - 1] === '/') { $path = rtrim($path, '/'); } return $path; } } } add_action('after_setup_theme', 'teconce_plugins_setup_wizard', 10); if (!function_exists('teconce_plugins_setup_wizard')) : function teconce_plugins_setup_wizard() { Teconce_Plugins_Setup::get_instance(); } endif; ?>