Current Path : /storage/v11800/affypharma/public_html/wp-content/plugins/auxin-elements/includes/classes/ |
Linux v11800 5.3.0-1023-aws #25~18.04.1-Ubuntu SMP Fri Jun 5 15:19:18 UTC 2020 aarch64
|
Current File : /storage/v11800/affypharma/public_html/wp-content/plugins/auxin-elements/includes/classes/class-auxin-welcome.php |
<?php
// no direct access allowed
if ( ! defined('ABSPATH') ) exit;
/**
* Auxin_Welcome class
*/
class Auxin_Welcome extends Auxin_Welcome_Base {
/**
* Current step
*
* @var string
*/
protected $step = '';
/** @var array Steps for the setup wizard */
protected $steps = array();
/**
* TGMPA instance storage
*
* @var object
*/
protected $tgmpa_instance;
/**
* TGMPA Menu slug
*
* @var string
*/
protected $tgmpa_menu_slug = 'tgmpa-install-plugins';
/**
* TGMPA Menu url
*
* @var string
*/
protected $tgmpa_url = 'themes.php?page=tgmpa-install-plugins';
/**
* Plugin filters
*
* @var array
*/
protected $plugin_filters = array();
/**
* Holds the current instance of the theme manager
*
*/
protected static $instance = null;
/**
* Retrieves class instance
*
* @return Auxin_Welcome
*/
public static function get_instance() {
if ( ! self::$instance ) {
self::$instance = new self;
}
return self::$instance;
}
/**
* Constructor
*/
public function __construct() {
parent::__construct();
$this->init_globals();
$this->init_actions();
}
/**
* Setup the class globals.
*
*/
public function init_globals() {
$this->page_slug = 'auxin-welcome';
$this->parent_slug = 'auxin-welcome';
}
/**
* Setup the hooks, actions and filters.
*
*/
public function init_actions() {
// Call the parent method
parent::init_actions();
if ( current_user_can( 'manage_options' ) ) {
// Disable redirect for "related posts for WordPress" plugin
update_option('rp4wp_do_install', 0, false );
// Disable redirect for the "WooCommerce" plugin
delete_transient( '_wc_activation_redirect' );
// Disable redirect for Phlox Pro plugin
remove_action( 'init', 'auxpro_redirect_to_welcome_page_on_first_activation' );
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 );
}
if( ! class_exists( 'Auxin_Demo_Importer' ) ){
require_once( 'class-auxin-demo-importer.php' );
}
// Get instance of Auxin_Demo_Importer Class
Auxin_Demo_Importer::get_instance();
// add_action( 'admin_enqueue_scripts' , array( $this, 'enqueue_scripts' ) );
add_filter( 'tgmpa_load' , array( $this, 'tgmpa_load' ), 10, 1 );
add_action( 'wp_ajax_aux_setup_plugins' , array( $this, 'ajax_plugins' ) );
add_action( 'wp_ajax_aux_ajax_uninstall', array( $this, 'ajax_uninstall') );
add_action( 'wp_ajax_aux_ajax_lightbox' , array( $this, 'ajax_lightbox') );
add_action( 'wp_ajax_aux_step_manager' , array( $this, 'step_manager' ) );
if( isset( $_POST['action'] ) && $_POST['action'] === "aux_setup_plugins" && wp_doing_ajax() ) {
add_filter( 'wp_redirect', '__return_false', 999 );
}
Auxin_Welcome_Sections::get_instance()->page_slug = $this->page_slug;
Auxin_Welcome_Sections::get_instance()->welcome = $this;
}
}
/**
* Adds a constant class names to body on wizard page
*/
public function add_body_class( $classes ){
$classes = parent::add_body_class( $classes );
if( $this->current_tab( 'importer', 'plugins' ) ){
$classes .= ' auxin-wizard-panel';
// Add PRO selector, for some probable custom styles
if( defined('THEME_PRO' ) && THEME_PRO ) {
$classes .= ' auxin-wizard-pro';
}
}
return $classes;
}
/**
* Enqueue admin scripts
*
*/
public function enqueue_scripts() {}
/**
* Check for TGMPA load
*
*/
public function tgmpa_load( $status ) {
return is_admin() || current_user_can( 'install_themes' );
}
/**
* Get configured TGMPA instance
*
*/
public function get_tgmpa_instanse() {
$this->tgmpa_instance = call_user_func( array( get_class( $GLOBALS['tgmpa'] ), 'get_instance' ) );
}
/**
* Update $tgmpa_menu_slug and $tgmpa_parent_slug from TGMPA instance
*
*/
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_id . '_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_id . '_theme_setup_wizard_tgmpa_url', $tgmpa_parent_slug . '?page=' . $this->tgmpa_menu_slug );
}
/**
* Register the admin menu
*
* @return void
*/
public function register_admin_menu() {
$menu_args = $this->get_admin_menu_args();
/* Register root setting menu
/*-----------------------------*/
add_menu_page(
$menu_args['title'], // [Title] The title to be displayed on the corresponding page for this menu
$menu_args['name'], // [Text] The text to be displayed for this actual menu item
$menu_args['compatibility'],
$this->page_slug, // [ID/slug] The unique ID - that is, the slug - for this menu item
array( $this, 'render'), // [Callback] The name of the function to call when rendering the menu for this page
'', // icon_url
3 // [Position] The position in the menu order this menu should appear 3 means after dashboard
);
/* Add a menu separator
/*-----------------------------*/
add_menu_page(
'',
'',
'read',
'wp-menu-separator',
'',
'',
4
);
$this->add_submenus();
}
/**
* Add submenu for admin menu
*
* @return void
*/
protected function add_submenus(){
global $submenu;
$menu_args = $this->get_admin_menu_args();
$sections = $this->get_sections();
if( empty( $sections ) ){
return;
}
foreach ( $sections as $section_id => $section ) {
if( ! empty( $section['add_admin_menu'] ) && $section['add_admin_menu'] ){
if( ! empty( $section['url'] ) ){
$submenu[ $this->page_slug ][] = array(
$section['label'],
$menu_args['compatibility'],
esc_url( $section['url'] )
);
} else {
add_submenu_page(
$this->page_slug,
$section['label'],
$section['label'],
$menu_args['compatibility'],
$this->get_page_rel_tab( $section_id )
);
}
}
}
if( isset( $submenu[ $this->page_slug ]['0'] ) ){
$submenu[ $this->page_slug ]['0']['0'] = __( 'Dashboard', 'auxin-elements' );
}
unset( $submenu[ $this->page_slug ]['1'] );
}
/*-----------------------------------------------------------------------------------*/
/* Start Setup Wizard
/*-----------------------------------------------------------------------------------*/
/**
* Retrieves the welcome page relative path
*
* @return string Page relative path
*/
public function get_page_rel_path(){
return 'admin.php?page=' . $this->page_slug;
}
/**
* Display Alert Message
*/
public function display_alerts( $message_body = '', $class_name = '' ){
?>
<div class="aux-alert <?php echo esc_attr( $class_name ); ?>">
<p>
<?php
if( empty($message_body ) ) {
echo sprintf("<strong>%s</strong> %s", esc_html__( 'Note:', 'auxin-elements' ), esc_html__( 'You are recommended to install Phlox exclusive plugins in order to enable all features.', 'auxin-elements' ) );
} else {
echo wp_kses_post( $message_body );
}
?>
</p>
</div>
<?php
}
/**
* Collect the plugin filters
*
* @return array plugin filters
*/
private function get_plugins_categories_localized(){
if( empty( $this->plugin_filters ) ){
$this->plugin_filters = apply_filters( 'auxin_admin_welcome_plugins_categories_localized', array() );
}
return $this->plugin_filters;
}
/**
* Collect all plugin categories from bundled plugins
*
* @return array plugin categories
*/
private function get_plugins_categories( $all_plugins ){
$plugin_categories = array();
foreach ( $all_plugins as $slug => $plugin ) {
$filter_terms = '';
if( ! empty( $plugin['categories'] ) ){
if( is_array( $plugin['categories'] ) ){
$plugin_categories = array_merge( $plugin_categories, $plugin['categories'] );
}
}
}
return array_unique( $plugin_categories );
}
/*-----------------------------------------------------------------------------------*/
/* Third step (Plugin installation)
/*-----------------------------------------------------------------------------------*/
public function setup_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' ) ), 'aux-setup' );
$custom_list = isset( $_GET['items'] ) && ! empty( $_GET['items'] ) ? explode( ',', auxin_sanitize_input( $_GET['items'] ) ) : array();
$plugins = $this->get_plugins( $custom_list );
// copied from TGM
$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;
}
$embeds_plugins_desc = array(
'js_composer' => 'Drag and drop page builder for WordPress. Take full control over your WordPress site, build any layout you can imagine – no programming knowledge required.',
'Ultimate_VC_Addons' => 'Includes Visual Composer premium addon elements like Icon, Info Box, Interactive Banner, Flip Box, Info List & Counter. Best of all - provides A Font Icon Manager allowing users to upload / delete custom icon fonts.',
'masterslider' => 'Master Slider is the most advanced responsive HTML5 WordPress slider plugin with touch swipe navigation that works smoothly on devices too.',
'depicter' => 'Make animated and interactive sliders and carousels which work smoothly across devices.',
'go_pricing' => 'The New Generation Pricing Tables. If you like traditional Pricing Tables, but you would like get much more out of it, then this rodded product is a useful tool for you.',
'waspthemes-yellow-pencil' => 'The most advanced visual CSS editor. Customize any page in real-time without coding.',
'auxin-the-news' => 'Publish news easily and beautifully with Phlox theme.',
'auxin-pro-tools' => 'Premium features for Phlox theme.',
'auxin-shop' => 'Make a shop in easiest way using phlox theme.',
'envato-market' => 'WP Theme Updater based on the Envato WordPress Toolkit Library and Pixelentity class from ThemeForest forums.'
);
/* If we arrive here, we have the filesystem */
?>
<div class="aux-setup-content">
<div class="aux-section-content-box">
<?php if( ! isset( $_GET['view'] ) || $_GET['view'] !== 'abstract' ) : ?>
<h3 class="aux-content-title"><?php esc_html_e('Recommended Plugins', 'auxin-elements' ); ?></h3>
<p style="margin-bottom:0;"><?php echo wp_sprintf( esc_html__( 'The following is a list of best integrated plugins for %s theme, you can install them from here and add or remove them later on WordPress plugins page.', 'auxin-elements' ), THEME_NAME_I18N );?></p>
<p><?php esc_html_e( 'We recommend you to install only the plugins under "Essential" tab, and avoid installing all of plugins.', 'auxin-elements' ); ?></p>
<?php endif; ?>
<div class="aux-plugins-step aux-has-required-plugins aux-fadein-animation">
<?php
if ( count( $plugins['all'] ) ) {
$plugin_categories = $this->get_plugins_categories( $plugins['all'] );
$plugin_categories_localized = $this->get_plugins_categories_localized();
// -----------------------------------------------------
?>
<div class="aux-table">
<section class="auxin-list-table">
<?php if( ! isset( $_GET['view'] ) || $_GET['view'] !== 'abstract' ) : ?>
<div class="aux-isotope-filters aux-filters aux-underline aux-clearfix aux-togglable aux-clearfix aux-center">
<div class="aux-select-overlay"></div>
<ul>
<li data-filter="all"><a href="#" class="aux-selected"><span data-select="<?php esc_attr_e('Recent', 'auxin-elements'); ?>"><?php esc_attr_e('Recent', 'auxin-elements'); ?></span></a></li>
<?php
foreach ( $plugin_categories_localized as $filter_slug => $filter_label ) {
if( in_array( $filter_slug, $plugin_categories ) ){
echo '<li data-filter="'. esc_attr( $filter_slug . '-plugins' ) .'"><a href="#"><span data-select="'. esc_attr( $filter_label ) .'">'. esc_html( $filter_label ) .'</span></a></li>';
}
}
?>
</ul>
</div>
<?php endif; ?>
<header class="aux-table-heading aux-table-row aux-clearfix">
<div id="cb" class="manage-column aux-column-cell column-cb check-column">
<label class="screen-reader-text" for="cb-select-all"><?php esc_html_e( 'Select All', 'auxin-elements' ); ?></label>
<input id="cb-select-all" type="checkbox" style="display:none;">
</div>
<div class="manage-column aux-column-cell column-thumbnail"></div>
<div scope="col" id="name" class="manage-column aux-column-cell column-name"><?php esc_html_e( 'Name', 'auxin-elements' ); ?></div>
<div scope="col" id="description" class="manage-column aux-column-cell column-description"><?php esc_html_e( 'Description', 'auxin-elements' ); ?></div>
<div scope="col" id="status" class="manage-column aux-column-cell column-status"><?php esc_html_e( 'Status', 'auxin-elements' ); ?></div>
<div scope="col" id="version" class="manage-column aux-column-cell column-version"><?php esc_html_e( 'Version', 'auxin-elements' ); ?></div>
</header>
<div class="aux-wizard-plugins aux-table-body aux-isotope-plugins-list aux-clearfix">
<?php
foreach ( $plugins['all'] as $slug => $plugin ) {
// Collect plugin filters for current item
$filter_terms = '';
if( ! empty( $plugin['categories'] ) ){
if( is_array( $plugin['categories'] ) ){
foreach ( $plugin['categories'] as $category ) {
$filter_terms .= $category . '-plugins ';
}
}
}
if( $this->tgmpa_instance->is_plugin_installed( $slug ) ) {
$plugin_data = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin['file_path'] );
} else {
$plugin_data = $this->get_plugin_data_by_slug( $slug );
}
?>
<div class="aux-plugin aux-table-row aux-iso-item <?php echo esc_attr( $filter_terms ); ?>" data-slug="<?php echo esc_attr( $slug ); ?>">
<div scope="row" class="check-column aux-column-cell">
<input class="aux-check-column" name="plugin[]" value="<?php echo esc_attr( $slug ); ?>" type="checkbox">
<div class="spinner"></div>
</div>
<div class="thumbnail column-thumbnail aux-column-cell" data-colname="Thumbnail">
<?php
if ( isset( $plugin['wp-image-name'] ) ) {
$thumbnail = "https://ps.w.org/{$plugin['slug']}/assets/" . $plugin['wp-image-name'];
} else {
$thumbnail = "https://ps.w.org/{$plugin['slug']}/assets/icon-128x128.png";
}
if( isset( $plugin['thumbnail'] ) ){
if( 'custom' == $plugin['thumbnail'] ){
$thumbnail = AUXELS_ADMIN_URL . '/assets/images/welcome/' . $plugin['slug'] . '-plugin.png';
} elseif( 'default' === $plugin['thumbnail'] ){
$thumbnail = AUXELS_ADMIN_URL . '/assets/images/welcome/def-plugin.png';
} elseif( ! empty( $plugin['thumbnail'] ) ){
$thumbnail = $plugin['thumbnail'];
}
}
?>
<img src="<?php echo esc_url( $thumbnail ); ?>" width="64" height="64" />
</div>
<div class="name column-name aux-column-cell" data-colname="Plugin"><?php echo esc_html( $plugin['name'] ); ?></div>
<div class="description column-description aux-column-cell" data-colname="Description">
<?php
$description = '';
if( isset( $plugin_data['Description'] ) ) {
$description = $plugin_data['Description'];
} else if ( isset( $embeds_plugins_desc[ $plugin['slug'] ] ) ){
$description = $embeds_plugins_desc[ $plugin['slug'] ];
}
if( $description ){
echo '<p>'. wp_kses_post( $description ) .'</p>';
}
if ( ! empty( $plugin['badge'] ) ) {
echo '<span class="aux-label aux-exclusive-label">' . esc_html( $plugin['badge'] ) . '</span>';
}
?>
</div>
<div class="status column-status aux-column-cell" data-colname="Status">
<span>
<?php
if ( isset( $plugins['install'][ $slug ] ) ) {
echo esc_html__( 'Not Installed', 'auxin-elements' );
} elseif ( isset( $plugins['activate'][ $slug ] ) ) {
echo esc_html__( 'Not Activated', 'auxin-elements' );
}
?>
</span>
</div>
<div class="version column-version aux-column-cell" data-colname="Version">
<?php if( isset( $plugin_data['Version'] ) ) { ?>
<span><?php echo esc_html( $plugin_data['Version'] ); ?></span>
<?php } ?>
</div>
</div>
<?php } ?>
</div>
</section>
</div>
<div class="clear"></div>
<div class="aux-sticky">
<div class="aux-setup-actions step">
<a href="#"
class="aux-button aux-primary install-plugins disabled"
data-callback="install_plugins"><?php esc_html_e( 'Install Plugins', 'auxin-elements' ); ?></a>
<?php wp_nonce_field( 'aux-setup' ); ?>
</div>
</div>
<?php
} else { ?>
<?php $this->display_alerts( esc_html__( 'Good news! All plugins are already installed and up to date. Please continue.', 'auxin-elements' ) , 'success' ); ?>
<?php
} ?>
</div>
</div>
</div>
<?php
}
/**
* Output the tgmpa plugins list
*/
private function get_plugins( $custom_list = array() ) {
$plugins = array(
'all' => array(), // Meaning: all plugins which still have open actions.
'install' => array(),
'update' => array(),
'activate' => array(),
);
foreach ( $this->tgmpa_instance->plugins as $slug => $plugin ) {
if( ! empty( $custom_list ) && ! in_array( $slug, $custom_list ) ){
// This condition is for custom requests lists
continue;
} elseif( $this->tgmpa_instance->is_plugin_active( $slug ) && false === $this->tgmpa_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 ( ! $this->tgmpa_instance->is_plugin_installed( $slug ) ) {
$plugins['install'][ $slug ] = $plugin;
} else {
if ( false !== $this->tgmpa_instance->does_plugin_have_update( $slug ) ) {
$plugins['update'][ $slug ] = $plugin;
}
if ( $this->tgmpa_instance->can_plugin_activate( $slug ) ) {
$plugins['activate'][ $slug ] = $plugin;
}
}
}
}
return $plugins;
}
/**
* Returns the plugin data from WP.org API
*/
private function get_plugin_data_by_slug( $slug = '' ) {
if ( empty( $slug ) ) {
return false;
}
$key = sanitize_key( 'auxin_plugin_data_'.$slug );
if ( false === ( $plugins = auxin_get_transient( $key ) ) ) {
$args = array(
'slug' => $slug,
'fields' => array(
'short_description' => true
)
);
$response = wp_remote_post(
'http://api.wordpress.org/plugins/info/1.0/',
array(
'body' => array(
'action' => 'plugin_information',
'request' => serialize( (object) $args )
)
)
);
$data = unserialize( wp_remote_retrieve_body( $response ) );
$plugins = is_object( $data ) ? array( 'Description' => $data->short_description , 'Version' => $data->version ) : false;
// Set transient for next time... keep it for 24 hours
auxin_set_transient( $key, $plugins, 24 * HOUR_IN_SECONDS );
}
return $plugins;
}
/**
* Plugins AJAX Process
*/
public function ajax_plugins() {
// Inputs validations
if ( ! check_ajax_referer( 'aux_setup_nonce', 'wpnonce' ) || ! isset( $_POST['slug'] ) || empty( $_POST['slug'] ) ) {
wp_send_json_error( array( 'message' => esc_html__( 'No Slug Found', 'auxin-elements' ) ) );
}
$request = 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 ( $slug === 'related-posts-for-wp' ) {
update_option( 'rp4wp_do_install', false );
}
if ( $_POST['slug'] == $slug ) {
$request = 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_html__( 'Activating', 'auxin-elements' ),
);
break;
}
}
foreach ( $plugins['update'] as $slug => $plugin ) {
if ( $_POST['slug'] == $slug ) {
$request = 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_html__( 'Updating', 'auxin-elements' ),
);
break;
}
}
foreach ( $plugins['install'] as $slug => $plugin ) {
if ( $_POST['slug'] == $slug ) {
$request = 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_html__( 'Installing', 'auxin-elements' ),
);
break;
}
}
if ( ! empty( $request ) ) {
$request['hash'] = md5( serialize( $request ) ); // used for checking if duplicates happen, move to next plugin
wp_send_json_success( $request );
}
wp_send_json_success( array( 'message' => esc_html__( 'Activated', 'auxin-elements' ) ) );
}
/*-----------------------------------------------------------------------------------*/
/* Online Demo Importer
/*-----------------------------------------------------------------------------------*/
public function setup_templates(){
$template_list = $this->get_demo_list( 'templates' );
// Create subjects group by type
$subjects_group = array();
if( $template_list ){
foreach ( $template_list['templates'] as $key => $args ) {
// Convert subject JSON to Array
$categoryStack = json_decode( $args['subject'], true );
// Set group type
if( ! isset( $subjects_group[ $args['type'] ] ) ) {
$subjects_group[ $args['type'] ] = array();
}
// Pass items to group type
$subjects_group[ $args['type'] ] = array_unique( array_merge( $subjects_group[ $args['type'] ], $categoryStack ), SORT_REGULAR );
}
}
$activeIsoGroup = get_option( 'aux_isotope_group_templates_kit', 'page' );
?>
<div class="aux-setup-template">
<div class="aux-fadein-animation">
<div class="aux-isotope-filters aux-filters aux-underline aux-clearfix aux-togglable aux-clearfix aux-center">
<div class="aux-isotope-group-wrapper">
<span>Pages</span>
<input type="checkbox" class="aux-isotope-group aux_switch" data-nonce="<?php echo wp_create_nonce( 'aux-iso-group' ); ?>" value="1" <?php checked( 1, $activeIsoGroup === 'page' ? 0 : 1, true ); ?> />
<span>Sections</span>
</div>
<div class="aux-isotope-filters-wrapper">
<?php
foreach ( $subjects_group as $type => $subjects ) {
?>
<ul class="aux-group-filter aux-grouping-<?php echo esc_attr( $type ); ?> <?php echo $activeIsoGroup !== $type ? 'aux-iso-hidden' : ''; ?>">
<li data-filter="all"><a href="#" class="aux-selected"><span data-select="<?php esc_attr_e('Recent', 'auxin-elements'); ?>"><?php esc_html_e('Recent', 'auxin-elements'); ?></span></a></li>
<?php
foreach ( $subjects as $filter_label ) {
$filter_data = preg_replace( '/[^A-Za-z0-9\-]/', '', wp_specialchars_decode( $filter_label ) );
echo '<li data-filter="'. esc_attr( strtolower( str_replace( ' ', '-', $filter_data ) . '-subject' ) ) .'"><a href="#"><span data-select="'. esc_attr( $filter_label ) .'">'. esc_html( $filter_label ) .'</span></a></li>';
}
?>
</ul>
<?php
}
?>
</div>
<div class="aux-isotope-search-wrapper">
<input type="text" placeholder="<?php echo esc_html__( 'Search Templates', 'auxin-elements' ); ?>" class="aux-isotope-search">
</div>
</div>
<div class="aux-templates-list aux-grid-list aux-isotope-templates" data-search-filter="true" data-grouping="<?php echo esc_attr( $activeIsoGroup ); ?> ">
<?php
if( ! is_array( $template_list['templates'] ) ){
echo '<p class="aux-grid-item grid_12">'. esc_html__( 'An error occurred while downloading the list of templates. Please try again later.' ) .'</p>';
} else {
foreach ( $template_list['templates'] as $key => $args ) {
// Collect plugin filters for current item
$filter_categories = '';
if( ! empty( $args['subject'] ) ){
$categories = json_decode( $args['subject'], true );
foreach ( $categories as $num => $category ) {
$category_decode = preg_replace( '/[^A-Za-z0-9\-]/', '', wp_specialchars_decode( $category ) );
$filter_categories .= strtolower( str_replace( ' ', '-', $category_decode ) . '-subject ' );
}
}
$filter_tags = '';
if( ! empty( $args['tags'] ) ){
$categories = json_decode( $args['tags'], true );
foreach ( $categories as $num => $tags ) {
$filter_tags .= strtolower( str_replace( ' ', '-', $tags ) . '-tag ' );
}
}
// Check demo license
$is_demo_allowed = auxin_is_activated() || ! $args['is_pro'];
echo '<div data-template-type="'. esc_attr( $args['type'] ) .'" class="aux-grid-item aux-iso-item grid_3 aux-grouping-'.esc_attr( $args['type'] ).' '.esc_attr( $filter_categories ).' '.esc_attr( $filter_tags ).'">';
echo '<div class="aux-grid-item-inner">';
echo '<div class="aux-grid-template-media">';
echo '<img class="template_thumbnail aux-preload aux-blank" data-src='.esc_url( $args['thumbnail'] ).' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">';
if( ! $is_demo_allowed ) {
echo '<img class="premium_badge" alt="This is a premium demo" src="'. esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/pro-badge.png' ) .'">';
}
echo '</div>';
?>
<div class="aux-grid-item-footer">
<h3 class="aux-item-title"><?php echo esc_html( $args['title'] ); ?></h3>
<div class="aux-grid-item-buttons aux-clearfix">
<?php
$template_status = 'import';
$more_btn_class = 'hide';
if( $is_demo_allowed ) {
$color_class = " aux-open-modal aux-import-template aux-has-next-action aux-iconic-action aux-green2";
$btn_label = __( 'Download', 'auxin-elements' );
$import_btn_url = add_query_arg( array( 'action' => 'aux_ajax_lightbox', 'type' => 'progress' , 'nonce' => wp_create_nonce( 'aux-open-lightbox' ) ), admin_url( 'admin-ajax.php' ) );
if( ! empty( $args['plugins'] ) ) {
$plugins = $this->get_plugins( json_decode( $args['plugins'], true ) );
if( ! empty( $plugins['all'] ) ) {
$color_class = " aux-open-modal aux-import-template aux-iconic-action aux-green2";
$import_btn_url = add_query_arg( array( 'action' => 'aux_ajax_lightbox', 'key' => $key, 'type' => 'plugins' , 'nonce' => wp_create_nonce( 'aux-open-lightbox' ) ), admin_url( 'admin-ajax.php' ) );
}
}
if( false !== auxin_get_transient( sanitize_key( "auxin_template_kit_{$args['type']}_data_for_origin_id_{$args['id']}" ) ) ) {
$template_status = 'copy';
$btn_label = __( 'Copy to clipboard', 'auxin-elements' );
$color_class = " aux-copy-template aux-iconic-action aux-orange";
$import_btn_url = '#';
$more_btn_class = '';
}
} else {
$color_class = " aux-blue aux-pro-demo aux-locked-demo aux-iconic-action";
$btn_label = __( 'Unlock', 'auxin-elements' );
$import_btn_url = esc_url( 'http://phlox.pro/go-pro/?utm_source=phlox-welcome&utm_medium=phlox-free&utm_campaign=phlox-go-pro&utm_content=template-unlock&utm_term='. $args['id'] );
if( defined('THEME_PRO' ) && THEME_PRO ){
$color_class .= " aux-ajax-open-modal";
$import_btn_url = add_query_arg( array( 'action' => 'auxin_display_actvation_form', 'nonce' => wp_create_nonce( 'aux-activation-form' ) ), admin_url( 'admin-ajax.php' ) );
}
}
?>
<a target="_blank" href="<?php echo esc_url( add_query_arg( array( 'action' => 'aux_ajax_lightbox', 'type' => 'preview', 'preview' => $args['preview'], 'nonce' => wp_create_nonce( 'aux-open-lightbox' ) ), admin_url( 'admin-ajax.php' ) ) ) ?>"
class="aux-wl-button aux-open-modal aux-outline aux-round aux-transparent aux-large aux-preview"><?php esc_html_e( 'Preview', 'auxin-elements' ); ?></a>
<a href="<?php echo esc_url( $import_btn_url ); ?>"
class="aux-wl-button aux-outline aux-round aux-large <?php echo esc_attr( $color_class ); ?>"
data-template-id="<?php echo esc_attr( $args['id'] ); ?>"
data-template-type="<?php echo esc_attr( $args['type'] ); ?>"
data-template-page-tmpl="<?php echo esc_attr( $args['page_tmpl'] ); ?>"
data-template-title="<?php echo esc_attr( $args['title'] ); ?>"
data-status-type="<?php echo esc_attr( $template_status ); ?>"
data-nonce="<?php echo wp_create_nonce( 'aux-template-manager' ); ?>"
><span><?php echo esc_html( $btn_label ); ?></span></a>
<a href="#" class="aux-more-button <?php echo esc_attr( $more_btn_class ) ;?>">
<img src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/more.svg' ); ?>" width="4" height="18" />
</a>
<ul class="aux-more-items">
<li>
<a href="<?php echo esc_url( add_query_arg( array( 'action' => 'aux_ajax_lightbox', 'type' => 'progress' , 'nonce' => wp_create_nonce( 'aux-open-lightbox' ) ), admin_url( 'admin-ajax.php' ) ) ); ?>"
class="aux-open-modal aux-has-next-action"
data-template-id="<?php echo esc_attr( $args['id'] ); ?>"
data-template-type="<?php echo esc_attr( $args['type'] ); ?>"
data-template-page-tmpl="<?php echo esc_attr( $args['page_tmpl'] ); ?>"
data-template-title="<?php echo esc_attr( $args['title'] ); ?>"
data-status-type="create_my_template"
data-nonce="<?php echo wp_create_nonce( 'aux-template-manager' ); ?>"
><span><?php echo esc_html__( 'Save to my templates', 'auxin-elements' ); ?></span></a>
</li>
<li>
<a href="<?php echo esc_url( add_query_arg( array( 'action' => 'aux_ajax_lightbox', 'type' => 'progress' , 'nonce' => wp_create_nonce( 'aux-open-lightbox' ) ), admin_url( 'admin-ajax.php' ) ) ); ?>"
class="aux-open-modal aux-has-next-action"
data-template-id="<?php echo esc_attr( $args['id'] ); ?>"
data-template-type="<?php echo esc_attr( $args['type'] ); ?>"
data-template-page-tmpl="<?php echo esc_attr( $args['page_tmpl'] ); ?>"
data-status-type="create_new_page"
data-template-title="<?php echo esc_attr( $args['title'] ); ?>"
data-nonce="<?php echo wp_create_nonce( 'aux-template-manager' ); ?>"
><span><?php echo esc_html__( 'Create new page', 'auxin-elements' ); ?></span></a>
</li>
</ul>
</div>
</div>
</div>
<?php
echo '</div>';
}
}
?>
</div>
<div class="clear"></div>
</div>
</div>
<?php
}
/*-----------------------------------------------------------------------------------*/
/* Online Demo Importer
/*-----------------------------------------------------------------------------------*/
public function setup_importer() {
// Get the available demos list from Averta API
$demo_list = $this->get_demo_list();
// Get last imported demo data
$last_demo_imported = get_option( 'auxin_last_imported_demo' );
?>
<div class="aux-setup-content">
<div class="aux-demo-importer-step aux-fadein-animation">
<div class="aux-isotope-filters aux-filters aux-underline aux-clearfix aux-togglable aux-clearfix aux-center">
<?php
$categories_list = [];
foreach ( $demo_list['items'] as $key => $args ) {
if ( !empty( $args['category'] ) && $args['category'] != "[]" ) {
$categories = str_replace( '"', '', substr( $args['category'], 1, -1 ) );
} else {
$categories = '';
}
$categories_array = explode( ',', $categories );
foreach ( $categories_array as $index => $category ) {
$categories_list[ $category ] = isset( $categories_list[ $category ] ) ? ++$categories_list[ $category ] : 1;
}
}
?>
<ul class="aux-group-filter">
<li data-filter="all"><a href="#" class="aux-selected"><span data-select="<?php esc_attr_e('All Templates', 'auxin-elements'); ?>"><?php esc_html_e('All Templates', 'auxin-elements'); ?><span>(<?php echo count( $demo_list['items']);?>)</span></span></a></li>
<?php
// move shop category to second position
$categories_list = auxin_array_insert_after( $categories_list, key( $categories_list ), [ "Shop" => $categories_list['Shop'] ] );
$categories_list = array_map( "unserialize", array_unique( array_map( "serialize", $categories_list ) ) );
foreach ( $categories_list as $category => $demos_count ) {
$filter = strtolower( preg_replace( '/[^A-Za-z0-9\-]/', '', wp_specialchars_decode( $category ) ) );
if ( empty( $filter ) ) {
continue;
}
echo '<li data-filter="'. esc_attr( $filter ) .'-subject"><a href="#"><span data-select="'. esc_attr( $filter ) .'">'. esc_html( $category ) .'<span>(' . esc_html( $demos_count ) . ')</span></span></a></li>';
}
?>
</ul>
<div class="aux-isotope-search-wrapper">
<input type="text" placeholder="<?php echo esc_html__( 'Search Templates', 'auxin-elements' ); ?>" class="aux-isotope-search">
</div>
</div>
<div class="aux-demo-list aux-grid-list aux-isotope-list" data-search-filter="true">
<?php
if( ! is_array( $demo_list ) ){
echo '<p class="aux-grid-item grid_12">'. esc_html__( 'An error occurred while downloading the list of demo sites. Please try again later.' ) .'</p>';
} else {
foreach ( $demo_list['items'] as $key => $args ) {
// Checking the last imported demo...
$is_active_demo = ! empty( $last_demo_imported ) && $last_demo_imported['id'] == $args['id'] ? 'aux-last-imported-demo' : '';
// Check demo license
$is_demo_allowed = auxin_is_activated() || !$args['is_pro'];
if ( !empty( $args['category'] ) && $args['category'] != "[]" ) {
$categories = str_replace( '"', '', substr( $args['category'], 1, -1 ) );
} else {
$categories = '';
}
$categories_array = explode( ',', $categories );
foreach( $categories_array as $cat_key => $category ) {
$categories_array[ $cat_key ] = strtolower( preg_replace( '/[^A-Za-z0-9\-]/', '', wp_specialchars_decode( $category ) ) );
}
$categories_class = implode( '-subject ', $categories_array );
$categories_class = !empty( $categories_class ) ? $categories_class . '-subject' : '';
if ( !empty( $args['tags'] ) && $args['tags'] != "[]" ) {
$tags = str_replace( '"', '', substr( $args['tags'], 1, -1 ) );
} else {
$tags = '';
}
$tags_array = explode( ',', $tags );
foreach( $tags_array as $tag_key => $tag ) {
$tags_array[ $tag_key ] = strtolower( preg_replace( '/[^A-Za-z0-9\-]/', '', wp_specialchars_decode( $tag ) ) );
}
$tags_class = implode( '-tag ', $tags_array );
$tags_class = !empty( $tags_class ) ? $tags_class . '-tag' : '';
echo '<div data-demo-id="demo-'. esc_attr( $args['id'] ) .'" class="aux-grid-item aux-iso-item grid_4 '. esc_attr( $is_active_demo ) . ' ' . esc_attr( $categories_class ) . ' ' . esc_attr( $tags_class ) . '">';
echo '<div class="aux-grid-item-inner">';
echo '<div class="aux-grid-item-media">';
echo '<img class="demo_thumbnail aux-preload aux-blank" data-src='. esc_url( $args['thumbnail'] ) .' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">';
if( ! $is_demo_allowed ) {
echo '<img class="premium_badge" alt="This is a premium demo" src="'. esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/pro-badge.png' ) .'">';
}
echo '</div>';
?>
<div class="aux-grid-item-footer">
<h3><?php echo esc_html( $args['title'] ); ?></h3>
<div class="aux-grid-item-buttons aux-clearfix">
<?php
if( $is_demo_allowed ) {
$color_class = $is_active_demo ? " aux-open-modal aux-import-demo aux-iconic-action aux-uninstall aux-orange" : " aux-open-modal aux-import-demo aux-iconic-action aux-green2";
$btn_label = $is_active_demo ? __( 'Uninstall', 'auxin-elements' ) : __( 'Import', 'auxin-elements' );
$import_type = $is_active_demo ? 'uninstall' : 'install';
$import_btn_url = add_query_arg( array( 'action' => 'aux_ajax_lightbox', 'key' => $key, 'type' => $import_type , 'nonce' => wp_create_nonce( 'aux-open-lightbox' ) ), admin_url( 'admin-ajax.php' ) );
} else {
$color_class = " aux-blue aux-pro-demo aux-locked-demo aux-iconic-action";
$btn_label = __( 'Unlock', 'auxin-elements' );
$import_btn_url = 'http://phlox.pro/go-pro/?utm_source=phlox-welcome&utm_medium=phlox-free&utm_campaign=phlox-go-pro&utm_content=demo-unlock&utm_term='. $args['id'];
if( defined('THEME_PRO' ) && THEME_PRO ){
$color_class .= " aux-ajax-open-modal";
$import_btn_url = add_query_arg( array( 'action' => 'auxin_display_actvation_form', 'nonce' => wp_create_nonce( 'aux-activation-form' ) ), admin_url( 'admin-ajax.php' ) );
}
}
?>
<a target="_blank" href="<?php echo esc_url( $import_btn_url ); ?>"
class="aux-wl-button aux-outline aux-round aux-large <?php echo esc_attr( $color_class ); ?>" data-demo-key="<?php echo esc_html( $key );?>"><?php echo esc_html( $btn_label ); ?></a>
<a target="_blank" href="<?php echo ! empty( $args['url'] ) ? esc_url( $args['url'] .'&utm_term='.$args['id'] ) : '#'; ?>"
class="aux-wl-button aux-outline aux-round aux-transparent aux-large aux-preview"><?php esc_html_e( 'Preview', 'auxin-elements' ); ?></a>
</div>
</div>
</div>
<?php
echo '</div>';
}
}
?>
</div>
<div class="clear"></div>
</div>
</div>
<?php
}
/**
* Parse the demos list API
*/
public function get_demo_list( $type = 'demos', $url = 'https://demo.phlox.pro/api/v2/info/', $sanitize_key = 'auxin_cache_demo_library_items' ) {
if( $type === 'templates' ){
$url = 'https://library.phlox.pro/info-api/';
$sanitize_key = 'auxin_cache_template_library_items';
}
$key = sanitize_key( $sanitize_key );
if ( ( false === $data = auxin_get_transient( $key ) ) || isset( $_GET['flush_transient'] ) ) {
$response = wp_remote_post( $url );
if ( ! is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) === 200 ) {
$response = wp_remote_retrieve_body( $response );
} else {
$error_message = "Something went wrong while connecting ($url): " . $response->get_error_message();
echo '<div class="aux-admin-info-box aux-admin-info-warn aux-admin-welcome-info">' . esc_html( $error_message ) . '</div>';
// if cUrl timeout error was thrown, increase the timeout to 15. Default is 5.
if( false !== strpos( $error_message, 'cURL error 28') ){
set_theme_mod('increasing_curl_timeout_is_required', 15);
}
if ( wp_doing_ajax() ){
die();
} else {
return;
}
}
// translate the JSON into Array
$data = json_decode( $response, true );
if( ! is_array( $data ) ){
if ( wp_doing_ajax() ){
die();
} else {
return;
}
}
// Add transient
auxin_set_transient( $key, $data, 24 * HOUR_IN_SECONDS );
}
return $data;
}
/*-----------------------------------------------------------------------------------*/
/* Step setup_updates
/*-----------------------------------------------------------------------------------*/
public function setup_updates(){
$last_update = auxin_get_update_list();
$has_response = isset( $last_update->total_updates ) ? $last_update->total_updates : false;
?>
<div class="aux-setup-content">
<div class="aux-updates-step aux-section-content-box">
<?php
if( ! $has_response ){
?>
<h3 class="aux-content-title"><?php esc_html_e('You have already the latest version.', 'auxin-elements' ); ?></h3>
<?php
} else {
?>
<h3 class="aux-content-title"><?php esc_html_e('New updates are available.', 'auxin-elements' ); ?></h3>
<p><?php esc_html_e( 'The following items require update, click update button to update them to the latest version.', 'auxin-elements' ); ?></p>
<?php
}
?>
<div class="aux-fadein-animation">
<?php
if( ! $has_response ){
$this->display_alerts( sprintf(
'%s %s %s',
esc_html__( 'Last checked ', 'auxin-elements' ),
$last_update->last_checked,
esc_html__( 'ago', 'auxin-elements' )
) , 'success' );
} else {
echo '<div class="aux-update-items">';
if( isset( $last_update->themes ) && is_array( $last_update->themes ) ) {
?>
<ul class="aux-update-list aux-update-themes">
<?php
foreach ( $last_update->themes as $stylesheet => $args ) {
$theme = wp_get_theme( $stylesheet );
?>
<li class="aux-item" data-key="<?php echo esc_attr( $stylesheet ); ?>" data-type="themes">
<label class="aux-control">
<?php echo esc_html( $theme->get( 'Name' ) ); ?>
<div class="aux-indicator"></div>
<input name="theme[]" value="<?php echo esc_attr( $stylesheet ); ?>" type="hidden">
</label>
<div class="aux-status column-status">
<span class="update">
<?php echo esc_html__( 'Ready to update', 'auxin-elements' ); ?>
</span>
</div>
</li>
<?php
}
?>
</ul>
<?php
}
if( isset( $last_update->plugins ) && is_array( $last_update->plugins ) ) {
?>
<div class="aux-headers">
<span>Plugin Name</span>
<span>Status</span>
</div>
<ul class="aux-update-list aux-update-plugins">
<?php
foreach ( $last_update->plugins as $path => $args ) {
$plugin = get_plugin_data( WP_PLUGIN_DIR . '/' . $path );
?>
<li class="aux-item" data-key="<?php echo esc_attr( $path ); ?>" data-type="plugins">
<label class="aux-control">
<?php echo esc_html( $plugin['Name'] ); ?>
<div class="aux-indicator"></div>
<input name="plugin[]" value="<?php echo esc_attr( $path ); ?>" type="hidden">
</label>
<div class="aux-status column-status">
<span class="update">
<?php echo esc_html__( 'Ready to update', 'auxin-elements' ); ?>
</span>
</div>
</li>
<?php
}
?>
</ul>
<?php
}
echo '</div>';
}
?>
</div>
<div class="aux-sticky">
<div class="aux-setup-actions step">
<?php if( $has_response ){ ?>
<a href="#"
class="aux-button aux-primary aux-install-updates" data-nonce="<?php echo esc_attr( wp_create_nonce( 'auxin-start-upgrading' ) ); ?>"><?php esc_html_e( 'Update Now', 'auxin-elements' ); ?></a>
<?php } ?>
<a href="<?php echo esc_url( self_admin_url( 'admin.php?page=auxin-welcome&tab=updates&force-check=1' ) ); ?>"
class="aux-button aux-outline"><?php esc_html_e( 'Check Again', 'auxin-elements' ); ?></a>
</div>
</div>
<div class="clear"></div>
</div>
</div>
<?php
}
/*-----------------------------------------------------------------------------------*/
/* Step manager in modal
/*-----------------------------------------------------------------------------------*/
/**
* This function will removing the last imported demo
*/
public function ajax_uninstall( $request_id = false, $nonce = '', $next_step = '' ){
// Check Security Token
if ( empty( $nonce ) ) {
if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'aux-demo-uninstall' ) ) {
// This nonce is not valid.
wp_send_json_error( esc_html__( 'Security Token Error!', 'auxin-elements' ) );
}
} else {
if ( ! wp_verify_nonce( $nonce, 'aux-step-manager' ) ) {
// This nonce is not valid.
wp_send_json_error( esc_html__( 'Security Token Error!', 'auxin-elements' ) );
}
}
// Checking the Active Demo ID with requested one
$last_demo = get_option( 'auxin_last_imported_demo' );
$request_id = empty( $request_id ) && isset( $_POST['id'] ) ? sanitize_text_field( $_POST['id'] ) : $request_id;
if( ! $request_id || ! $last_demo || $last_demo['id'] != $request_id ) {
wp_send_json_error( esc_html__( 'You can\'t remove this demo.', 'auxin-elements' ) );
}
// call WPDB class instance
global $wpdb;
// Remove Attachments
$attachments = get_posts( array(
'post_type' => 'attachment',
'posts_per_page' => -1,
'post_status' => 'inherit',
'meta_key' => 'auxin_import_id'
) );
if ( $attachments ) {
foreach ( $attachments as $attachment ) {
wp_delete_attachment( $attachment->ID, true );
}
}
// Remove Posts
$posts = get_posts( array(
'post_type' => 'any',
'posts_per_page' => -1,
'post_status' => 'any',
'meta_key' => 'auxin_import_post'
) );
if ( $posts ) {
foreach ( $posts as $post ) {
wp_delete_post( $post->ID, true );
}
}
// Remove imported templates
$posts = get_posts( array(
'post_type' => 'elementor_library',
'posts_per_page' => -1,
'post_status' => 'any',
'meta_key' => 'auxin_import_post'
) );
if ( $posts ) {
// bypass elementor confirm question for deleting imported kit
$_GET['force_delete_kit'] = 1;
foreach ( $posts as $post ) {
wp_delete_post( $post->ID );
}
$kit = Elementor\Plugin::$instance->kits_manager->get_active_kit();
if ( !$kit->get_id() ) {
$created_default_kit = Elementor\Plugin::$instance->kits_manager->create_default();
if ( $created_default_kit ) {
update_option( Elementor\Core\Kits\Manager::OPTION_ACTIVE, $created_default_kit );
}
}
}
// Remove Menus
$menus = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}options WHERE option_name LIKE '%auxin_demo_importer_menu_origin_id_%'", OBJECT );
foreach ($menus as $key => $menu) {
if( is_numeric( $menu->option_value ) ) {
wp_delete_nav_menu( $menu->option_value );
}
}
// Remove Options
delete_option( THEME_ID.'_theme_options' );
update_option( 'show_on_front', 'page' );
update_option( 'page_on_front', '0' );
remove_theme_mod('custom_css_string');
remove_theme_mod('custom_css_array');
remove_theme_mod('custom_logo');
remove_theme_mod('font_subsets');
// Remove all active widgets
update_option( 'sidebars_widgets', array( 'array_version' => 3 ) );
// Disable all demo plugins other than auxin plugins...
$data = $this->get_demo_list();
$uninstall_demo = [];
foreach( $data['items'] as $item ) {
if ( $item['id'] == $request_id ) {
$uninstall_demo = $item;
break;
}
}
$demo_plugins = isset( $uninstall_demo['plugins'] ) ? $uninstall_demo['plugins'] : '';
if( ! empty( $demo_plugins ) ) {
$demo_plugins = str_replace( '"', '', $demo_plugins );
$demo_plugins = str_replace( '\\', '', $demo_plugins );
$demo_plugins = explode( ',' , trim( $demo_plugins, '[]') );
$active_plugins = get_option( 'active_plugins' );
foreach ( $active_plugins as $key => $name ) {
if ( strpos( $name, 'auxin' ) !== false ) {
continue;
}
foreach( $demo_plugins as $plugin_key => $plugin ) {
if( ( strpos( $name, $plugin ) === 0 || strpos( $name, $plugin ) ) && $plugin != 'elementor' ){
unset( $active_plugins[$key] );
}
}
}
update_option( 'active_plugins', $active_plugins );
}
// Remove Additional CSS data
wp_update_custom_css_post('');
// Stores css content in custom css file
auxin_save_custom_css();
// Stores JavaScript content in custom js file
auxin_save_custom_js();
// And finally remove the last imported demo info
delete_option( 'auxin_last_imported_demo' );
if ( !empty( $nonce ) ) {
return $this->step_manager( $next_step );
}
ob_start();
?>
<div class="aux-setup-demo-content aux-content-col aux-step-import-completed">
<img src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/completed.svg' ); ?>" />
<div><h2 class="aux-step-import-title"><?php esc_html_e( 'Done!', 'auxin-elements' ); ?></h2></div>
<p class="aux-step-description"><?php esc_html_e( "Demo has been successfully uninstalled.", 'auxin-elements' ); ?></p>
</div>
<div class="aux-setup-demo-actions">
<div class="aux-return-back">
<a href="<?php echo esc_url( home_url() ); ?>" class="aux-button aux-round aux-green aux-medium" target="_blank">
<?php esc_html_e( 'Preview', 'auxin-elements' ); ?>
</a>
<a href="#" class="aux-button aux-outline aux-round aux-transparent aux-medium aux-pp-close">
<?php esc_html_e( 'Close', 'auxin-elements' ); ?>
</a>
</div>
</div>
<?php
// Return Success Notification
wp_send_json_success( array(
'button' => __( 'Import', 'auxin-elements' ),
'url' => add_query_arg( array( 'action' => 'aux_ajax_lightbox', 'key' => sanitize_text_field( $_POST['key'] ), 'type' => 'install' , 'nonce' => wp_create_nonce( 'aux-open-lightbox' ) ), admin_url( 'admin-ajax.php' ) ),
'markup' => ob_get_clean(),
) );
}
/**
* Ajax modal box
*/
public function ajax_lightbox() {
if ( ! isset( $_GET['nonce'] ) || ! wp_verify_nonce( $_GET['nonce'], 'aux-open-lightbox' ) ) {
// This nonce is not valid.
wp_die( esc_html__( 'Security Token Error!', 'auxin-elements' ) );
}
$type = isset( $_GET['type'] ) ? sanitize_text_field( $_GET['type'] ) : 'progress';
ob_start();
if( $type == 'progress' ) {
echo sprintf( '<div class="aux-template-lightbox"><div class="aux-modal-item aux-default-modal clearfix aux-steps-col">%s</div></div>', $this->progress_step( array(), '' ) );
wp_die( ob_get_clean() );
}
if( $type == 'preview' ) {
if( isset( $_GET['preview'] ) ){
echo sprintf( '<div class="aux-template-lightbox aux-preview-lightbox"><div class="clearfix"><img class="aux-preview-image" src="%s" /><div class="aux-template-actions"><a href="#" class="aux-button aux-medium aux-outline aux-transparent aux-pp-close">%s</a></div></div></div>', esc_url( $_GET['preview'] ), esc_html__( 'Close', 'auxin-elements' ) );
wp_die( ob_get_clean() );
}
}
if( $type == 'plugins' ) {
$data = $this->get_demo_list( 'templates' );
$args = $data['templates'][ sanitize_text_field( $_GET['key'] ) ];
$args = array(
'plugins' => $args['plugins'],
'next_action' => 'template_manager'
);
echo sprintf( '<div class="aux-template-lightbox"><div class="aux-modal-item aux-default-modal clearfix aux-has-required-plugins aux-steps-col">%s</div></div>', $this->second_step( $args, '5' ) );
wp_die( ob_get_clean() );
}
$data = $this->get_demo_list();
if( ! isset( $_GET['key'] ) || empty( $data['items'] ) || ! array_key_exists( $_GET['key'] , $data['items'] ) ) {
wp_die( esc_html__( 'An Error Occurred!', 'auxin-elements' ) );
}
$args = $data['items'][ sanitize_text_field( $_GET['key'] ) ];
if( $type == 'install' ) :
?>
<div id="demo-<?php echo esc_attr( $args['id'] ); ?>" class="aux-demo-lightbox">
<div class="aux-modal-item clearfix aux-has-required-plugins">
<div class="grid_5 no-gutter aux-media-col" style="background-image: url(<?php echo esc_url( $args['screen'] ); ?>);" >
</div>
<div class="grid_7 no-gutter aux-steps-col">
<div class="aux-setup-demo-content aux-content-col aux-step-import-notice">
<img src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/import-notice.svg' ); ?>" />
<div><h2 class="aux-step-import-title aux-iconic-title"><?php esc_html_e( 'Notice', 'auxin-elements' ); ?></h2></div>
<p class="aux-step-description">
<?php esc_html_e( "For better and faster result, it's recommended to install the demo on a clean WordPress website.", 'auxin-elements' ); ?>
</p>
</div>
<div class="aux-setup-demo-actions">
<div class="aux-return-back">
<a href="#" data-next-step="2" class="aux-button aux-next-step aux-primary aux-medium" data-args="<?php echo htmlspecialchars( wp_json_encode( $args ), ENT_QUOTES, 'UTF-8' ); ?>" data-step-nonce="<?php echo wp_create_nonce( 'aux-step-manager' ); ?>">
<?php esc_html_e( 'Continue', 'auxin-elements' ); ?>
</a>
<a href="#" class="aux-button aux-outline aux-round aux-transparent aux-medium aux-pp-close">
<?php esc_html_e( 'Cancel', 'auxin-elements' ); ?>
</a>
</div>
</div>
</div>
</div>
</div>
<?php
else :
?>
<div id="demo-<?php echo esc_attr( $args['id'] ); ?>" class="aux-demo-lightbox">
<div class="aux-modal-item clearfix aux-has-required-plugins">
<div class="grid_5 no-gutter aux-media-col" style="background-image: url(<?php echo esc_url( $args['screen'] ); ?>);" >
</div>
<div class="grid_7 no-gutter aux-steps-col">
<div class="aux-setup-demo-content aux-content-col aux-step-import-notice">
<img src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/warning.png' ); ?>" />
<div><h2 class="aux-step-import-title aux-iconic-title"><?php esc_html_e( 'Warning!', 'auxin-elements' ); ?></h2></div>
<p class="aux-step-description">
<?php esc_html_e( "This process will erase all images, posts and settings of this demo...", 'auxin-elements' ); ?>
</p>
</div>
<div class="aux-setup-demo-actions">
<div class="aux-return-back">
<a href="#" class="aux-button aux-uninstall-demo aux-red aux-medium" data-demo-plugins="<?php echo htmlspecialchars( wp_json_encode( $args['plugins'] ), ENT_QUOTES, 'UTF-8' ); ?>" data-demo-id="<?php echo esc_attr( $args['id'] ); ?>" data-demo-nonce="<?php echo wp_create_nonce( 'aux-demo-uninstall' ); ?>" data-demo-confirm="<?php esc_html_e( 'Are you sure you want to uninstall this demo?', 'auxin-elements' ); ?>">
<?php esc_html_e( 'Uninstall', 'auxin-elements' ); ?>
</a>
<a href="#" class="aux-button aux-outline aux-round aux-transparent aux-medium aux-pp-close">
<?php esc_html_e( 'Cancel', 'auxin-elements' ); ?>
</a>
</div>
<div class="aux-progress hide">
<div class="aux-big">
<div class="aux-progress-bar aux-progress-info aux-progress-active" data-percent="100" style="transition: none; width: 100%;">
<span class="aux-progress-label"><?php esc_html_e( 'Please wait, this may take several minutes ..', 'auxin-elements' ); ?></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
endif;
wp_die( ob_get_clean() );
}
public function step_manager( $next_step = '' ) {
$next_step = empty( $next_step ) ? sanitize_text_field( $_POST['next_step'] ) : $next_step;
$nonce = sanitize_text_field( $_POST['nonce'] );
$args = auxin_sanitize_input( $_POST['args'] );
$steps = array(
'1' => array(
'method' => 'first_step',
'next' => '2'
),
'2' => array(
'method' => 'second_step',
'next' => '6'
),
'3' => array(
'method' => 'third_step',
'next' => '4'
),
'4' => array(
'method' => 'fourth_step',
'next' => ''
),
'5' => array(
'method' => 'progress_step',
'next' => ''
),
'6' => array(
'method' => 'remove_watermark_step',
'next' => '7'
),
'7' => array(
'method' => 'envato_elements_step',
'next' => '3'
),
'8' => array(
'method' => 'verify_envato_elements_step',
'next' => '9'
),
'9' => array(
'method' => 'envato_elements_success_step',
'next' => '3'
),
'10' => array(
'method' => 'uninstall_demo_through_wizard',
'next' => '2'
)
);
if ( ! wp_verify_nonce( $nonce, 'aux-step-manager' ) ) {
// This nonce is not valid.
wp_send_json_error( esc_html__( 'An error occurred!', 'auxin-elements' ) );
} elseif( ! $next_step || $steps[$next_step]['method'] == '' ){
wp_send_json_error( esc_html__( 'Method not exist!', 'auxin-elements' ) );
}
wp_send_json_success(
array(
'markup' => call_user_func( array( $this, $steps[$next_step]['method'] ), $args, $steps[$next_step]['next'] )
)
);
}
public function first_step( array $args, $next_step ) {
ob_start();
?>
<div class="aux-setup-demo-content aux-content-col">
<h2><?php esc_html_e( 'Required Plugins for this demo.', 'auxin-elements' ); ?></h2>
<p class="aux-step-description">
<?php esc_html_e( "For better and faster install process it's recommended to install demo on a clean WordPress website.", 'auxin-elements' ); ?>
</p>
</div>
<div class="aux-setup-demo-actions">
<div class="aux-return-back">
<a href="#" data-next-step="<?php echo esc_attr( $next_step ); ?>" class="aux-button aux-next-step aux-primary aux-medium" data-args="<?php echo htmlspecialchars( wp_json_encode($args), ENT_QUOTES, 'UTF-8' ); ?>" data-step-nonce="<?php echo wp_create_nonce( 'aux-step-manager' ); ?>">
<?php esc_html_e( 'Continue', 'auxin-elements' ); ?>
</a>
<a href="#" class="aux-button aux-outline aux-round aux-transparent aux-medium aux-pp-close">
<?php esc_html_e( 'Cancel', 'auxin-elements' ); ?>
</a>
</div>
</div>
<?php
return ob_get_clean();
}
public function second_step( array $args, $next_step ) {
$last_demo_imported = get_option( 'auxin_last_imported_demo' );
$is_active_demo = ! empty( $last_demo_imported ) && $last_demo_imported['id'];
if ( $is_active_demo ) {
return $this->uninstall_step( $last_demo_imported['id'], $args );
}
// Goto next step, if no required plugins found
if( ! isset( $args['plugins'] ) ) {
return call_user_func( array( $this, 'remove_watermark_step' ), $args, '7' );
}
$plugins_list = json_decode( stripslashes( $args['plugins'] ), true );
$plugins = $this->get_plugins( $plugins_list );
$has_plugin_required = ! empty( $plugins_list ) && ! empty( $plugins['all'] );
if( $has_plugin_required ) :
$next_step = Auxels_Envato_Elements::get_instance()->is_envato_element_enabled() ? '3' : $next_step;
ob_start();
?>
<div class="aux-setup-demo-content aux-content-col aux-install-plugins">
<h2><?php esc_html_e( 'Required Plugins for this demo.', 'auxin-elements' ); ?></h2>
<p class="aux-step-description"><?php esc_html_e( 'The following plugins are required to be installed for this demo.', 'auxin-elements' ); ?></p>
<ul class="aux-wizard-plugins">
<?php
foreach ( $plugins['all'] as $slug => $plugin ) { ?>
<li class="aux-plugin" data-slug="<?php echo esc_attr( $slug ); ?>">
<label class="aux-control aux-checkbox">
<?php echo esc_html( $plugin['name'] ); ?>
<input name="plugin[]" value="<?php echo esc_attr($slug); ?>" type="checkbox" checked>
<div class="aux-indicator"></div>
</label>
<div class="status column-status">
<?php
$keys = $class = '';
if ( isset( $plugins['install'][ $slug ] ) ) {
$keys = __( 'Ready to install', 'auxin-elements' );
$class = 'install';
}
if ( isset( $plugins['activate'][ $slug ] ) ) {
$keys = __( 'Not activated', 'auxin-elements' );
$class = 'activate';
}
if ( isset( $plugins['update'][ $slug ] ) ) {
$keys = __( 'Ready to update', 'auxin-elements' );
$class = 'update';
}
?>
<span class="<?php echo esc_attr( $class ); ?>">
<?php echo esc_html( $keys ); ?>
</span>
<div class="spinner"></div>
</div>
</li>
<?php
}
?>
</ul>
</div>
<div class="aux-setup-demo-actions">
<div class="aux-return-back">
<a href="#"
class="aux-button aux-medium install-plugins aux-primary"
data-callback="install_plugins"
data-next-step="<?php echo esc_attr( $next_step ); ?>"
data-args="<?php echo htmlspecialchars( wp_json_encode($args), ENT_QUOTES, 'UTF-8' ); ?>"
data-step-nonce="<?php echo wp_create_nonce( 'aux-step-manager' ); ?>"
data-next-action="<?php echo isset( $args['next_action'] ) ? esc_attr( $args['next_action'] ) : false; ?>"
><?php esc_html_e( 'Install Plugins', 'auxin-elements' ); ?></a>
<a href="#" class="aux-button aux-outline aux-round aux-transparent aux-medium aux-pp-close">
<?php esc_html_e( 'Cancel', 'auxin-elements' ); ?>
</a>
</div>
</div>
<?php
return ob_get_clean();
else :
return Auxels_Envato_Elements::get_instance()->is_envato_element_enabled() ? call_user_func( array( $this, 'third_step' ), $args, '4' ) : call_user_func( array( $this, 'remove_watermark_step' ), $args, '7' ) ;
return ;
endif;
}
public function uninstall_step( $demo_id, array $args ) {
$data = $this->get_demo_list();
$items = $data['items'];
foreach( $items as $item ) {
if ( $item['id'] == $demo_id ) {
$uninstall_args = $item;
break;
}
}
$args['plugins'] = stripslashes( $args['plugins'] );
$args['tags'] = stripslashes( $args['tags'] );
$args['category'] = stripslashes( $args['category'] );
ob_start();
?>
<div class="aux-setup-demo-content aux-content-col aux-step-import-notice aux-uninstall-demo-content">
<img src="<?php echo esc_url( $uninstall_args['screen'] ); ?>" />
<div class="aux-installed-template">Installed Template</div>
<div><h2 class="aux-step-import-title aux-iconic-title"><?php esc_html_e( 'You already have installed template!', 'auxin-elements' ); ?></h2></div>
<p class="aux-step-description">
<?php esc_html_e( "For better and faster install proccess it's recommanded to install demo on a clean wordpress website.", 'auxin-elements' ); ?>
</p>
</div>
<div class="aux-setup-demo-actions">
<div class="aux-return-back">
<a href="#"
class="aux-button aux-next-step aux-red aux-medium"
data-next-step="10"
data-args="<?php echo htmlspecialchars( wp_json_encode($args), ENT_QUOTES, 'UTF-8' ); ?>"
data-demo-plugins="<?php echo htmlspecialchars( wp_json_encode( $args['plugins'] ), ENT_QUOTES, 'UTF-8' ); ?>"
data-demo-id="<?php echo esc_attr( $demo_id ); ?>"
data-step-nonce="<?php echo wp_create_nonce( 'aux-step-manager' ); ?>">
<?php esc_html_e( 'Unistall Template', 'auxin-elements' ); ?>
</a>
<a href="#" class="aux-button aux-outline aux-round aux-transparent aux-medium aux-pp-close">
<?php esc_html_e( 'Cancel', 'auxin-elements' ); ?>
</a>
</div>
<div class="aux-progress hide">
<div class="aux-big">
<div class="aux-progress-bar aux-progress-info aux-progress-active" data-percent="100" style="transition: none; width: 100%;">
<span class="aux-progress-label"><?php esc_html_e( 'Please wait, this may take several minutes ..', 'auxin-elements' ); ?></span>
</div>
</div>
</div>
</div>
<?php
return ob_get_clean();
}
public function uninstall_demo_through_wizard() {
return $this->ajax_uninstall( sanitize_text_field( $_POST['demo_id'] ), sanitize_text_field( $_POST['nonce'] ), '2' );
}
public function third_step( array $args, $next_step ) {
ob_start();
?>
<div class="aux-setup-demo-content aux-content-col aux-install-demos">
<h2><?php esc_html_e( 'Import Demo Content of Phlox Theme.' ); ?></h2>
<form id="aux-import-data-<?php echo esc_attr( $args['id'] ); ?>" class="aux-import-parts">
<div class="complete aux-border is-checked">
<label class="aux-control aux-radio">
<?php esc_html_e( 'Complete pre-build Website', 'auxin-elements' ); ?>
<input type="radio" name="import" value="complete" checked="checked" />
<div class="aux-indicator"></div>
</label>
<label class="aux-control aux-checkbox">
<?php esc_html_e( 'Import media (images, videos, etc.)', 'auxin-elements' ); ?>
<input type="checkbox" name="import-media" checked="checked" />
<div class="aux-indicator"></div>
</label>
</div>
<div class="custom aux-border">
<label class="aux-control aux-radio">
<?php esc_html_e( 'Selected Data Only', 'auxin-elements' ); ?>
<input type="radio" name="import" value="custom" />
<div class="aux-indicator"></div>
</label>
<div class="one_half no-gutter">
<label class="aux-control aux-checkbox">
<?php esc_html_e( 'Posts/Pages', 'auxin-elements' ); ?>
<input type="checkbox" name="posts" />
<div class="aux-indicator"></div>
</label>
<label class="aux-control aux-checkbox">
<?php esc_html_e( 'Media', 'auxin-elements' ); ?>
<input type="checkbox" name="media" />
<div class="aux-indicator"></div>
</label>
<label class="aux-control aux-checkbox">
<?php esc_html_e( 'Widgets', 'auxin-elements' ); ?>
<input type="checkbox" name="widgets" />
<div class="aux-indicator"></div>
</label>
</div>
<div class="one_half no-gutter right-half">
<label class="aux-control aux-checkbox">
<?php esc_html_e( 'Menus', 'auxin-elements' ); ?>
<input type="checkbox" name="menus" />
<div class="aux-indicator"></div>
</label>
<label class="aux-control aux-checkbox">
<?php esc_html_e( 'Theme Options', 'auxin-elements' ); ?>
<input type="checkbox" name="options" />
<div class="aux-indicator"></div>
</label>
<label class="aux-control aux-checkbox">
<?php esc_html_e( 'MasterSlider (If Available)', 'auxin-elements' ); ?>
<input type="checkbox" name="masterslider" />
<div class="aux-indicator"></div>
</label>
</div>
</div>
</form>
</div>
<div class="aux-setup-demo-content aux-content-col aux-install-demos-waiting hide">
<img src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/importing-cloud.svg' ); ?>" />
<h2><?php esc_html_e( 'Importing Demo Content is in Progress...' ); ?></h2>
<p class="aux-step-description"><?php esc_html_e( 'This process may take 5 to 10 minutes to complete, please do not close or refresh this page.', 'auxin-elements' ); ?></p>
</div>
<div class="aux-setup-demo-actions">
<div class="aux-return-back">
<a href="#"
class="aux-button aux-install-demo aux-medium aux-primary button-next"
data-nonce="<?php echo wp_create_nonce( 'aux-import-demo-' . $args['id'] ); ?>"
data-import-id="<?php echo esc_attr( $args['id'] ); ?>"
data-callback="install_demos"
data-next-step="<?php echo esc_attr( $next_step ); ?>"
data-args="<?php echo htmlspecialchars( wp_json_encode($args), ENT_QUOTES, 'UTF-8' ); ?>"
data-step-nonce="<?php echo wp_create_nonce( 'aux-step-manager' ); ?>"
><?php esc_html_e( 'Import Content', 'auxin-elements' ); ?></a>
<a href="#" class="aux-button aux-outline aux-round aux-transparent aux-medium aux-pp-close">
<?php esc_html_e( 'Cancel', 'auxin-elements' ); ?>
</a>
</div>
<div class="aux-progress hide">
<div class="aux-big">
<div class="aux-progress-bar aux-progress-info aux-progress-active" data-percent="100" style="transition: none; width: 100%;">
<span class="aux-progress-label"><?php esc_html_e( 'Please wait, this may take several minutes ..', 'auxin-elements' ); ?></span>
</div>
</div>
</div>
</div>
<?php
return ob_get_clean();
}
public function fourth_step( array $args, $next_step ) {
ob_start();
?>
<div class="aux-setup-demo-content aux-content-col aux-step-import-completed">
<img src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/completed.svg' ); ?>" />
<div><h2 class="aux-step-import-title"><?php esc_html_e( 'Congratulations!' ); ?></h2></div>
<p class="aux-step-description"><?php esc_html_e( "Demo has been successfully imported.", 'auxin-elements' ); ?></p>
</div>
<div class="aux-setup-demo-actions">
<div class="aux-return-back">
<a href="<?php echo esc_url( self_admin_url('customize.php') ); ?>" class="aux-button aux-primary aux-medium" target="_blank">
<?php esc_html_e( 'Customize', 'auxin-elements' ); ?>
</a>
<a href="<?php echo home_url(); ?>" class="aux-button aux-round aux-green aux-medium" target="_blank">
<?php esc_html_e( 'Preview', 'auxin-elements' ); ?>
</a>
<a href="#" class="aux-button aux-outline aux-round aux-transparent aux-medium aux-pp-close">
<?php esc_html_e( 'Close', 'auxin-elements' ); ?>
</a>
</div>
</div>
<?php
return ob_get_clean();
}
public function progress_step( array $args, $next_step ) {
ob_start();
?>
<h3 class="aux-loading-title"><?php esc_html_e( 'Importing page content ...', 'auxin-elements' ); ?></h3>
<div class="aux-progress">
<div class="aux-big">
<div class="aux-progress-bar aux-progress-info aux-progress-active" data-percent="100" style="transition: none; width: 100%;"></div>
</div>
</div>
<?php
return ob_get_clean();
}
public function remove_watermark_step( array $args, $next_step ) {
ob_start();
?>
<div class="aux-setup-demo-content aux-content-col aux-step-remove-watermark">
<div class="aux-watermark">
<div class="locked">
<img src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/watermark-2.png' ); ?>" />
<img class="lock-icon" src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/lock-icon.svg' ); ?>" />
</div>
<div class="unlocked">
<img src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/watermark.png' ); ?>" />
<img class="check-icon" src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/check.svg' ); ?>" />
</div>
</div>
<h2 class="aux-step-import-title"><?php esc_html_e( 'Remove Watermarks?', 'auxin-elements' ); ?></h2>
<p class="aux-step-description"><?php esc_html_e( "Some images in this demo are copyrighted and watermarked, you can remove watermarks by authorizing your Envato Elements subscription.", 'auxin-elements' ); ?></p>
<?php
$skip_watermark_step = '3';
?>
</div>
<div class="aux-setup-demo-actions">
<div class="aux-return-back">
<a href="#"
class="aux-button aux-medium aux-primary aux-next-step"
data-callback="envato_elements_step"
data-next-step="<?php echo esc_attr( $next_step ); ?>"
data-args="<?php echo htmlspecialchars( wp_json_encode($args), ENT_QUOTES, 'UTF-8' ); ?>"
data-step-nonce="<?php echo wp_create_nonce( 'aux-step-manager' ); ?>"
data-next-action="<?php echo isset( $args['next_action'] ) ? esc_attr( $args['next_action'] ) : false; ?>"
><?php esc_html_e( 'Remove Watermarks', 'auxin-elements' ); ?></a>
<a href="#" data-next-step="<?php echo esc_attr( $skip_watermark_step ); ?>" class="aux-button aux-next-step aux-outline aux-round aux-transparent aux-medium aux-skip" data-args="<?php echo htmlspecialchars( wp_json_encode($args), ENT_QUOTES, 'UTF-8' ); ?>" data-step-nonce="<?php echo wp_create_nonce( 'aux-step-manager' ); ?>">
<?php esc_html_e( 'Skip', 'auxin-elements' ); ?>
</a>
</div>
</div>
<?php
return ob_get_clean();
}
public function envato_elements_step( array $args, $next_step ) {
ob_start();
?>
<div class="aux-setup-demo-content aux-content-col aux-step-envato-elements">
<img src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/envato_elements.svg' ); ?>" />
<h2 class="aux-step-import-title"><?php esc_html_e( 'Remove watermarks by authorizing your Envato Elements subscription', 'auxin-elements' ); ?></h2>
<p class="aux-step-description"><?php esc_html_e( "By subscribing to Envato Elements you will have access to unlimited premium stock images, icons, graphical assets, videos and more.", 'auxin-elements' ); ?></p>
<a href="http://avt.li/elements" class="aux-button aux-primary aux-medium aux-explore-envato" target="_blank">
<?php esc_html_e( 'Explore and Subscribe', 'auxin-elements' ); ?>
</a>
<p><?php esc_html_e( 'Already an Envato Elements member?', 'auxin-elements' ); ?> <a href="#" class="aux-next-step" data-next-step="8" data-args="<?php echo htmlspecialchars( wp_json_encode($args), ENT_QUOTES, 'UTF-8' ); ?>" data-step-nonce="<?php echo wp_create_nonce( 'aux-step-manager' ); ?>"><?php esc_html_e( 'Activate here', 'auxin-elements' );?></a> </p>
</div>
<div class="aux-setup-demo-actions">
<div class="aux-return-back">
<a href="#" data-next-step="<?php echo esc_attr( $next_step ); ?>" class="aux-button aux-next-step aux-outline aux-round aux-transparent aux-medium" data-args="<?php echo htmlspecialchars( wp_json_encode($args), ENT_QUOTES, 'UTF-8' ); ?>" data-step-nonce="<?php echo wp_create_nonce( 'aux-step-manager' ); ?>">
<?php esc_html_e( 'Skip', 'auxin-elements' ); ?>
</a>
</div>
</div>
<?php
return ob_get_clean();
}
public function verify_envato_elements_step( array $args, $next_step) {
ob_start();
?>
<div class="aux-setup-demo-content aux-content-col aux-step-envato-elements aux-step-verify-envato-elements">
<img src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/activation.svg' ); ?>" />
<h2 class="aux-step-import-title"><?php esc_html_e( 'Verify Your Envato Elements Subscription', 'auxin-elements' ); ?></h2>
<p class="aux-step-description"><?php esc_html_e( "Enter your token below to verify your Subscription", 'auxin-elements' ); ?></p>
<div class="token-wrapper">
<input type="text" class="token-field" placeholder="<?php esc_attr_e( 'Enter token here', 'auxin-elements' ); ?>">
<p class="result"></p>
</div>
<div class="aux-info-links">
<?php
$token_link = Auxels_Envato_Elements::get_instance()->get_token_url();
?>
<a href="<?php echo esc_url( $token_link ); ?>" target="_blank" class="aux-generate-token" ><?php esc_html_e( 'How to generate a token ?', 'auxin-elements' );?></a>
<a href="http://avt.li/elements" target="_blank" class="aux-subscription" ><?php esc_html_e( 'Don\'t have subscription?', 'auxin-elements' );?></a>
</div>
</div>
<div class="aux-setup-demo-actions">
<div class="aux-return-back">
<a href="#"
class="aux-button aux-medium aux-primary button-next aux-verify-elements-token"
data-next-step="<?php echo esc_attr( $next_step ); ?>"
data-args="<?php echo htmlspecialchars( wp_json_encode($args), ENT_QUOTES, 'UTF-8' ); ?>"
data-step-nonce="<?php echo wp_create_nonce( 'aux-step-manager' ); ?>"
><?php esc_html_e( 'Verify Token', 'auxin-elements' ); ?></a>
<a href="#"
class="aux-button aux-outline aux-round aux-transparent aux-medium aux-next-step aux-skip"
data-next-step="3"
data-args="<?php echo htmlspecialchars( wp_json_encode($args), ENT_QUOTES, 'UTF-8' ); ?>"
data-step-nonce="<?php echo wp_create_nonce( 'aux-step-manager' );?>">
<?php esc_html_e( 'Skip', 'auxin-elements' ); ?>
</a>
</div>
</div>
<?php
return ob_get_clean();
}
public function envato_elements_success_step( array $args, $next_step) {
ob_start();
?>
<div class="aux-setup-demo-content aux-content-col aux-step-envato-elements-success aux-step-import-notice">
<img src="<?php echo esc_url( AUXELS_ADMIN_URL . '/assets/images/welcome/completed.svg' ); ?>" />
<h2 class="aux-step-import-title"><?php esc_html_e( 'Succeed', 'auxin-elements' ); ?></h2>
<p class="aux-step-description"><?php esc_html_e( "Congratulations! you have successfully authorized your Envato Elements subscription.", 'auxin-elements' ); ?></p>
</div>
<div class="aux-setup-demo-actions">
<div class="aux-return-back">
<a href="#"
class="aux-button aux-medium aux-primary button-next aux-next-step"
data-next-step="<?php echo esc_attr( $next_step ); ?>"
data-args="<?php echo htmlspecialchars( wp_json_encode($args), ENT_QUOTES, 'UTF-8' ); ?>"
data-step-nonce="<?php echo wp_create_nonce( 'aux-step-manager' ); ?>"
><?php esc_html_e( 'Continue', 'auxin-elements' ); ?></a>
</div>
</div>
<?php
return ob_get_clean();
}
}