<?php add_action("wp_ajax_tmpcoder_get_recommended_plugins", "tmpcoder_get_recommended_plugins"); add_action("wp_ajax_nopriv_tmpcoder_get_recommended_plugins", "tmpcoder_get_recommended_plugins"); function tmpcoder_get_recommended_plugins(){ if (!isset($_POST['nonce']) || !wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['nonce'])), 'tmpcoder_get_plugins') ) { exit; // Get out of here, the nonce is rotten! } if ( ! is_user_logged_in() ){ esc_html_e("You must log in to site setup", 'spexo'); die(); } $tgmpaClass = $GLOBALS['tgmpa']; $plugins = array(); $next_step = __('Next', 'spexo'); $activated_plugin = []; if ( is_object($tgmpaClass) ){ if ( empty($tgmpaClass->plugins) ){ $tmpcoder_mainClass = new Tmpcoder_Main_Class(); $tmpcoder_mainClass->tmpcoder_require_plugins(); $tgmpaClass = $GLOBALS['tgmpa']; } if ( !empty($tgmpaClass->plugins) ) { foreach( $tgmpaClass->plugins as $plugKey => $plugin ){ $image = ''; $plugin_info = wp_remote_get('https://api.wordpress.org/plugins/info/1.0/'.$plugKey.'.json?fields=banners,icons'); if ( is_array( $plugin_info ) && ! is_wp_error( $plugin_info ) ) { $body = json_decode($plugin_info['body'], true); if ( isset($body['icons']) ){ if ( isset($body['icons']['svg']) ){ $image = $body['icons']['svg']; }else if ( isset($body['icons']['2x']) ){ $image = $body['icons']['2x']; }else if ( isset($body['icons']['1x']) ){ $image = $body['icons']['1x']; }else{ $image = $body['icons']['default']; } } } $plugin['image'] = $image; $plugin['link'] = 'https://wordpress.org/plugins/'. $plugin['slug']; // modify these variables with your new/old plugin values $plugin_slug = $plugin['slug']; $plugin_file_path = $plugin['file_path']; if (is_plugin_active($plugin_file_path)) { array_push($activated_plugin, $plugin_slug); } if ( tmpcoder_is_plugin_installed( $plugin_file_path ) && in_array($plugin_file_path, apply_filters('active_plugins', get_option('active_plugins'))) ){ $plugin['activated'] = true; }else if ( tmpcoder_is_plugin_installed( $plugin_file_path ) ) { $plugin['installed'] = true; $next_step = __('Install & Activate', 'spexo'); }else{ $next_step = __('Install & Activate', 'spexo'); } array_push($plugins, $plugin); } $skip_this = false; if (count($activated_plugin) == 3) { $skip_this = true; update_option(TMPCODER_THEME_SLUG.'_wizard_step', '2'); } } } if ( !empty($plugins) ){ update_option(TMPCODER_THEME_SLUG.'_wizard_step', '1'); wp_send_json_success( array( 'plugins'=> $plugins, 'message'=> __('Plugins getting successfully.','spexo'), 'next_step'=> $next_step, 'skip_this' => $skip_this ) ); }else{ $error = __('No recommended plugins found','spexo'); wp_send_json_error(array('message'=> $error )); } } add_action("wp_ajax_tmpcoder_install_recommended_plugins", "tmpcoder_install_recommended_plugins"); add_action("wp_ajax_nopriv_tmpcoder_install_recommended_plugins", "tmpcoder_install_recommended_plugins"); function tmpcoder_install_recommended_plugins(){ // Check if nonce is valid. if ( ! isset($_POST['_wpnonce']) || ! wp_verify_nonce(sanitize_text_field(wp_unslash ($_POST['_wpnonce'])), 'tmpcoder_install_plugins' ) ) { exit; } if ( ! is_user_logged_in() ){ esc_html_e("You must log in to site setup", 'spexo'); die(); } $plugins = ''; if ( isset($_POST['plugins']) && is_array($_POST['plugins']) ) { $plugins = array_map('sanitize_text_field',wp_unslash($_POST['plugins'])); } $tgmpaClass = $GLOBALS['tgmpa']; $error = array(); ob_start(); // default print off if ( is_object($tgmpaClass) ){ if ( empty($tgmpaClass->plugins) ){ $tmpcoder_mainClass = new Tmpcoder_Main_Class(); $tmpcoder_mainClass->tmpcoder_require_plugins(); $tgmpaClass = $GLOBALS['tgmpa']; } if ( !empty($tgmpaClass->plugins) ) { foreach( $tgmpaClass->plugins as $plugKey => $plugin ){ if ( isset($plugins[$plugKey]) && $plugins[$plugKey] == '1' ){ // modify these variables with your new/old plugin values $plugin_slug = $plugin['slug']; $plugin_file_path = $plugin['file_path']; // echo 'Check if new plugin is already installed - '; if ( tmpcoder_is_plugin_installed( $plugin_file_path ) ) { tmpcoder_update_plugin( $plugin_file_path ); $installed = true; } else { $plugin_zip = $tgmpaClass->get_download_url($plugin_slug); $installed = tmpcoder_install_plugin( $plugin_slug ); } if ( !is_wp_error( $installed ) && $installed ) { $plugin_file_path = tmpcoder_plugin_basefile_path($plugin_slug); // echo 'Activating new plugin.'; $activate = activate_plugin( $plugin_file_path ); if ( is_wp_error( $activate ) ){ $error[] = $plugin['name'].': '.$activate->get_error_message(); } } else { $error[] = $plugin['name']; } } } } } ob_end_clean(); echo " "; echo "00000"; if ( empty($error) ){ update_option(TMPCODER_THEME_SLUG.'_wizard_step', '2'); update_option('sastra_addons_wizard_page', 1); update_option('spexo_addons_wizard_page', 1); echo wp_json_encode( array('success'=> true, 'data' => array("message"=> __('All recommended plugins installed & activated successfully.','spexo') ) ) ); exit; }else{ $error = implode(', ', $error). __(' Could not install','spexo'); wp_send_json_error(array('message'=> $error )); } } add_action("wp_ajax_tmpcoder_get_pro_plugin_info", "tmpcoder_get_pro_plugin_info"); add_action("wp_ajax_nopriv_tmpcoder_get_pro_plugin_info", "tmpcoder_get_pro_plugin_info"); function tmpcoder_get_pro_plugin_info(){ if (!isset($_POST['nonce']) || !wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['nonce'])), 'tmpcoder_get_pro_addons_info') ) { exit; // Get out of here, the nonce is rotten! } if ( ! is_user_logged_in() ){ esc_html_e("You must log in to site setup", 'spexo'); die(); } $admin_url = admin_url('?saved=wizard'); if ( is_plugin_active( 'sastra-essential-addons-for-elementor/sastra-essential-addons-for-elementor.php' ) ) { $admin_url = admin_url('admin.php?page=tmpcoder-import-demo&saved=wizard'); } ob_start(); echo wp_kses_post(sprintf( /* translators: %s is License Activation Heading */ '<h2 class="wizard-heading">%s</h2>', __("Get Spexo Addons Pro", 'spexo'))); echo '<p class="wizard-title-text">'.esc_html('Unlock access to all our premium widgets and features.').'</p>'; echo '<ul class="tmpcoder-wizard-pro-features-list"> <li>'.esc_html('80+ Pro Widgets').'</li> <li>'.esc_html('75+ Pro Prebuilt Blocks').'</li> <li>'.esc_html('25+ Pro Prebuilt Sections').'</li> <li>'.esc_html('30+ Pro Prebuilt WebSites').'</li> </ul>'; echo "<a target='_blank' href='".esc_url(TMPCODER_PURCHASE_PRO_URL.'?ref=tmpcoder-theme-wizard')."' class='tmpcoder-get-pro-btn'>"; ?> <img src="<?php echo esc_url(get_template_directory_uri().'/assets/images/pro-icon.svg'); ?>"> <span><?php echo esc_html__( 'Get Pro Now', 'spexo' ); ?></span> <?php echo "</a>"; echo '<div class="next-step-action">'; echo '<a href='.esc_url($admin_url).' class="button button-primary next-step-btn">'.esc_html__('Done', 'spexo').'</a>'; echo '</div>'; $output = ob_get_contents(); ob_end_clean(); wp_send_json_success(array( 'data'=> $output )); }