tabs = array( 'general_information' => __('General Information', 'blaize'), 'plugins_required' => __('Plugins Recommended', 'blaize'), 'import_demo' => __('Import Demo', 'blaize'), ); $this->plugins = array( 'blaize-companion' => array( 'slug' => 'blaize-companion', 'class' => 'Blaize_Companion', 'filename' => 'blaize-companion.php', ), 'contact-form-7' => array( 'slug' => 'contact-form-7', 'class' => 'WPCF7', 'filename' => 'wp-contact-form-7.php', ), 'newsletter' => array( 'slug' => 'newsletter', 'class' => 'Newsletter', 'filename' => 'plugin.php', ), 'siteorigin-panels' => array( 'slug' => 'siteorigin-panels', 'class' => 'SiteOrigin_Panels', 'filename' => 'siteorigin-panels.php', ), 'so-widgets-bundle' => array( 'slug' => 'so-widgets-bundle', 'class' => 'SiteOrigin_Widgets_Bundle', 'filename' => 'so-widgets-bundle.php', ), 'woocommerce' => array( 'slug' => 'woocommerce', 'class' => 'WooCommerce', 'filename' => 'woocommerce.php', ), ); /** Necessary Hooks **/ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_styles' ) ); add_action( 'admin_menu', array( $this, 'register_menu' ) ); /** Ajaxes **/ add_action( 'wp_ajax_plugin_installer', array( $this, 'plugin_installer_callback' ) ); add_action( 'wp_ajax_plugin_activator', array( $this, 'plugin_activate_callback' ) ); add_action( 'wp_ajax_plugin_deactivator', array( $this, 'plugin_deactivate_callback' ) ); } public function enqueue_styles() { wp_enqueue_script( 'welcome', get_template_directory_uri() . '/welcome/js/welcome.js', array('jquery') ); $localizes = array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'installer_nonce' => wp_create_nonce('plugin_installer_nonce'), 'activator_nonce' => wp_create_nonce('plugin_activator_nonce'), 'deactivator_nonce' => wp_create_nonce('plugin_deactivator_nonce'), 'installed_btn' => __('Activated', 'blaize'), 'deactivated_btn' => __('Deactivated', 'blaize'), ); wp_localize_script( 'welcome', 'welcomeObject', $localizes); wp_enqueue_style( 'welcome', get_template_directory_uri() . '/welcome/css/welcome.css' ); } public function register_menu() { add_theme_page( __('Welcome', 'blaize'), __('Welcome', 'blaize'), 'edit_theme_options', 'welcome', array($this, 'welcome_screen') ); } public function welcome_screen() { ?>
tabs)) : ?> tabs)) : ?>
$plugin_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 ) ) ); return $api; } /** Check For Icon **/ public function check_for_icon( $arr ) { if ( ! empty( $arr['svg'] ) ) { $plugin_icon_url = $arr['svg']; } elseif ( ! empty( $arr['2x'] ) ) { $plugin_icon_url = $arr['2x']; } elseif ( ! empty( $arr['1x'] ) ) { $plugin_icon_url = $arr['1x']; } else { $plugin_icon_url = $arr['default']; } return $plugin_icon_url; } /** Check if Plugin is active or not **/ public function get_plugin_status($plugin) { $folder_name = $plugin['slug']; $file_name = $plugin['filename']; $status = 'install'; $path = WP_PLUGIN_DIR.'/'.esc_attr($folder_name).'/'.esc_attr($file_name); if(file_exists( $path )) { $status = class_exists($plugin['class']) ? 'deactive' : 'active'; } return $status; return $status; } /** Generate Url for the Plugin Button **/ public function generate_plugin_install_btn($status, $plugin) { $folder_name = $plugin['slug']; $file_name = $plugin['filename']; $url = $btn = ''; switch ( $status ) { case 'install': return $btn = ''; break; case 'deactive': return $btn = ''.esc_html__('Deactivate', 'blaize').''; break; case 'active': return $btn = ''.esc_html__('Activate', 'blaize').''; break; } } public function plugin_installer_callback() { //var_dump(current_user_can('install_plugins')); die(); if ( ! current_user_can('install_plugins') ) { wp_die( esc_html__( 'Sorry, you are not allowed to install plugins on this site.', 'blaize' ) ); } $nonce = isset( $_REQUEST["nonce"] ) ? sanitize_text_field( wp_unslash( $_REQUEST["nonce"] ) ) : ''; $plugin = isset( $_REQUEST["plugin"] ) ? sanitize_text_field( wp_unslash( $_REQUEST["plugin"] ) ) : ''; $plugin_file = isset( $_REQUEST["plugin_file"] ) ? sanitize_text_field( wp_unslash( $_REQUEST["plugin_file"] ) ) : ''; // Check our nonce, if they don't match then bounce! if (! wp_verify_nonce( $nonce, 'plugin_installer_nonce' )) wp_die( esc_html__( 'Error - unable to verify nonce, please try again.', 'blaize') ); // Include required libs for installation require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php'; require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php'; // Get Plugin Info $api = $this->call_plugin_api($plugin); $skin = new WP_Ajax_Upgrader_Skin(); $upgrader = new Plugin_Upgrader( $skin ); $upgrader->install($api->download_link); $plugin_file = ABSPATH . 'wp-content/plugins/'.esc_attr($plugin).'/'.esc_attr($plugin_file); if($api->name) { if($plugin_file){ activate_plugin($plugin_file); echo "success"; die(); } } echo "fail"; die(); } public function plugin_activate_callback() { if ( ! current_user_can('install_plugins') ) wp_die( esc_html__( 'Sorry, you are not allowed to install plugins on this site.', 'blaize' ) ); $nonce = isset( $_REQUEST["nonce"] ) ? sanitize_text_field( wp_unslash( $_REQUEST["nonce"] ) ) : ''; $plugin = isset( $_REQUEST["plugin"] ) ? sanitize_text_field( wp_unslash( $_REQUEST["plugin"] ) ) : ''; $plugin_file = isset( $_REQUEST["plugin_file"] ) ? sanitize_text_field( wp_unslash( $_REQUEST["plugin_file"] ) ) : ''; // Check our nonce, if they don't match then bounce! if (! wp_verify_nonce( $nonce, 'plugin_activator_nonce' )) wp_die( esc_html__( 'Error - unable to verify nonce, please try again.', 'blaize') ); $plugin_file = ABSPATH . 'wp-content/plugins/'.esc_attr($plugin).'/'.esc_attr($plugin_file); if($plugin_file){ activate_plugin($plugin_file); echo "success"; die(); } echo "fail"; die(); } public function plugin_deactivate_callback() { if ( ! current_user_can('install_plugins') ) wp_die( esc_html__( 'Sorry, you are not allowed to install plugins on this site.', 'blaize' ) ); $nonce = isset($_REQUEST["nonce"]) ? sanitize_text_field( wp_unslash( $_REQUEST["nonce"] ) ) : ''; $plugin = isset($_REQUEST["plugin"]) ? sanitize_text_field( wp_unslash( $_REQUEST["plugin"] ) ) : ''; $plugin_file = isset($_REQUEST["plugin_file"]) ? sanitize_text_field( wp_unslash( $_REQUEST["plugin_file"] ) ) : ''; // Check our nonce, if they don't match then bounce! if (! wp_verify_nonce( $nonce, 'plugin_deactivator_nonce' )) wp_die( esc_html__( 'Error - unable to verify nonce, please try again.', 'blaize') ); $plugin_file = ABSPATH . 'wp-content/plugins/'.esc_attr($plugin).'/'.esc_attr($plugin_file); if($plugin_file){ deactivate_plugins($plugin_file); echo "success"; die(); } echo "fail"; die(); } } new Blaize_Welcome(); } if( class_exists('SWFT_Demo_Import') ) : $pagli_demo = new SWFT_Demo_Import; $pagli_demo->demos = array( 'corporate-demo' => array( 'title' => __('Corporate Demo', 'blaize'), 'xml_file' => get_template_directory() . '/welcome/demos/corporate-demo/content.xml', 'customizer_file' => get_template_directory() . '/welcome/demos/corporate-demo/customizer_options.dat', 'widget_file' => get_template_directory() . '/welcome/demos/corporate-demo/widgets.wie', 'preview_image' => get_template_directory_uri() . '/welcome/demos/corporate-demo/preview.png', 'preview_link' => 'http://demo.paglithemes.com/pagli/', 'menu' => array( 'Main Menu' => 'main-menu', ), 'home_page' => 'front-page', 'blog_page' => 'blogs', ), ); endif;