[Back] <?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 ));
}