%PDF- %PDF-
Direktori : /var/www/html/buggydubrovnik.com/wp-content/plugins/coming-soon/app/ |
Current File : /var/www/html/buggydubrovnik.com/wp-content/plugins/coming-soon/app/setup-wizard.php |
<?php /** * Complete Setup Wizard */ function seedprod_lite_complete_setup_wizard() { if ( check_ajax_referer( 'seedprod_lite_complete_setup_wizard' ) ) { if ( ! current_user_can( apply_filters( 'seedprod_lpage_capability', 'edit_others_posts' ) ) ) { wp_send_json_error(); } $wizard_id = isset( $_POST['wizard_id'] ) ? wp_unslash( $_POST['wizard_id'] ) : null; // get the wizard data with id and token $site_token = get_option( 'seedprod_token' ); $data = array( 'wizard_id' => $wizard_id, 'site_token' => $site_token, ); $headers = array(); // Build the headers of the request. $headers = wp_parse_args( $headers, array( 'Accept' => 'application/json', ) ); $url = SEEDPROD_API_URL . 'get-wizard-data'; $response = wp_remote_post( $url, array( 'body' => $data, 'headers' => $headers, ) ); $status_code = wp_remote_retrieve_response_code( $response ); // manually install code if error if ( is_wp_error( $response ) ) { $response = array( 'status' => 'false', 'ip' => seedprod_lite_get_ip(), 'msg' => $response->get_error_message(), ); wp_send_json( $response ); } if ( 200 !== $status_code ) { $response = array( 'status' => 'false', 'ip' => seedprod_lite_get_ip(), 'msg' => $response['response']['message'], ); wp_send_json( $response ); } $body = wp_remote_retrieve_body( $response ); if ( ! empty( $body ) ) { $body = json_decode( $body ); } // store the wizard id and data locally $onboarding = $body->onboarding; // store the wizard verify plugins update_option('seedprod_verify_wizard_options',$onboarding->options); // set tracking if they have opted in if(!empty($onboarding->allow_usagetracking)){ update_option( 'seedprod_allow_usage_tracking', true ); } // free templates if(!empty($onboarding->email)){ update_option( 'seedprod_free_templates_subscribed', true ); } // get template type that was setup in the onboarding $type = 'lp'; if ( !empty( $onboarding->sp_type ) ) { $type = $onboarding->sp_type; } // create a landoing page if($type == 'lp' || $type == 'cs' || $type == 'mm' || $type == 'p404' || $type == 'loginp' ){ // install themplate $cpt = 'page'; // seedprod ctp types $cpt_types = array( 'cs', 'mm', 'p404', 'header', 'footer', 'part', 'page'); if (in_array($type, $cpt_types)) { $cpt = 'seedprod'; } // base page settings require_once SEEDPROD_PLUGIN_PATH . 'resources/data-templates/basic-page.php'; $basic_settings = json_decode( $seedprod_basic_lpage , true ); $basic_settings['is_new'] = true; $basic_settings['page_type'] = $type; // slug if ('cs' == $type) { $slug = 'sp-cs'; $lpage_name = $slug; $basic_settings['no_conflict_mode'] = true; } if ('mm' == $type) { $slug = 'sp-mm'; $lpage_name = $slug; $basic_settings['no_conflict_mode'] = true; } if ('p404' == $type) { $slug = 'sp-p404'; $lpage_name = $slug; $basic_settings['no_conflict_mode'] = true; } if ('loginp' == $type) { $slug = 'sp-login'; $lpage_name = $slug; $basic_settings['no_conflict_mode'] = true; } // insert page code $code = ''; if(!empty($onboarding->code)){ $code = base64_decode($onboarding->code); } $code = json_decode( $code , true ); // merge in code if(!empty($slug)){ $basic_settings['post_title'] = $slug; $basic_settings['post_name'] = $slug; } $basic_settings['template_id'] = intval($onboarding->template_id); if ( 99999 != $onboarding->template_id ) { unset( $basic_settings['document'] ); if ( is_array( $code ) ) { $new_settings = $basic_settings + $code; } } $id = wp_insert_post( array( 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_content' => '', 'post_status' => 'draft', 'post_title' => 'seedprod', 'post_type' => $cpt, 'post_name' => $slug, 'post_content_filtered' => wp_json_encode($new_settings), 'meta_input' => array( '_seedprod_page' => true, '_seedprod_page_uuid' => wp_generate_uuid4(), '_seedprod_page_template_type' => $type, ), ), true ); // update pointer // record coming soon page_id if ( 'cs' == $type ) { update_option( 'seedprod_coming_soon_page_id', $id ); } if ( 'mm' == $type ) { update_option( 'seedprod_maintenance_mode_page_id', $id ); } if ( 'p404' == $type ) { update_option( 'seedprod_404_page_id', $id ); } if ( 'loginp' == $type ) { update_option( 'seedprod_login_page_id', $id ); } // If landing page set a temp name if ( 'lp' == $type ) { if ( is_numeric( $id ) ) { $lpage_name = esc_html__( 'New Page', 'coming-soon' ) . " (ID #$id)"; } else { $lpage_name = esc_html__( 'New Page', 'coming-soon' ); } } wp_update_post( array( 'ID' => $id, 'post_title' => $lpage_name, ) ); } // install theme if theme is the type if ($type == 'websitebuilder' || $type == 'woocommerce') { $template_id = $onboarding->template_id; seedprod_lite_theme_import( $template_id ); } // install plugins $reponse = array( 'status' => 'true', 'type' => $type, 'id' => $id, 'options'=> $onboarding->options, ); wp_send_json_success($reponse); } } // Install Plugins Request During Setup // function seedprod_lite_complete_setup_wizard_plugins(){ // if( !empty( $_GET['site_token'] ) ){ // $site_token = get_option( 'seedprod_token' ); // if( $_GET['site_token'] == $site_token ){ // if ( !empty( $_GET['seedprod_verify'] ) ) { // $seedprod_verify = json_decode( wp_unslash( urldecode( $_GET['seedprod_verify'] ) ) ); // // if we get here see what plugins the user wants to install // $paths_map = array( // 'rafflepress' => 'rafflepress/rafflepress.php', // 'allinoneseo' => 'all-in-one-seo-pack/all_in_one_seo_pack.php', // 'ga' => 'google-analytics-for-wordpress/googleanalytics.php', // 'wpforms' => 'wpforms-lite/wpforms.php', // 'optinmonster' => 'optinmonster/optin-monster-wp-api.php', // ); // $options = get_option('seedprod_verify_wizard_options'); // if ( ! empty( $options ) ) { // $options = json_decode( $options ); // foreach($options as $p){ // if(in_array($p,$seedprod_verify)){ // if(!empty($paths_map[$p])){ // $plugin = $paths_map[$p]; // error_log($plugin); // } // } // } // } // exit(); // } // } // } // } // add_action( 'init', 'seedprod_lite_complete_setup_wizard_plugins' ); function seedprod_lite_install_addon_setup(){ // Run a security check. check_ajax_referer( 'seedprod_lite_install_addon_setup', 'nonce' ); // Check for permissions. if ( ! current_user_can( 'install_plugins' ) ) { wp_send_json_error(); } // if we get here see what plugins the user wants to install $paths_map = array( 'rafflepress' => array('slug'=>'rafflepress/rafflepress.php','url'=>'https://downloads.wordpress.org/plugin/rafflepress.zip'), 'allinoneseo' => array('slug'=>'all-in-one-seo-pack/all_in_one_seo_pack.php','url'=>'https://downloads.wordpress.org/plugin/all-in-one-seo-pack.zip'), 'ga' => array('slug'=>'google-analytics-for-wordpress/googleanalytics.php','url'=>'https://downloads.wordpress.org/plugin/google-analytics-for-wordpress.zip'), 'wpforms' => array('slug'=>'wpforms-lite/wpforms.php','url'=>'https://downloads.wordpress.org/plugin/wpforms-lite.zip'), 'optinmonster' => array('slug'=>'optinmonster/optin-monster-wp-api.php','url'=>'https://downloads.wordpress.org/plugin/optinmonster.zip'), ); $options = get_option('seedprod_verify_wizard_options'); $options = json_decode( $options ); // this allows us to do one at a time if (isset($_POST['plugin'])) { $plugin = sanitize_text_field( wp_unslash( $_POST['plugin'] ) ); $options = array($plugin); } $install_plugins = array(); $all_plugins = get_plugins(); // purge options to make sure we don't install plugin with conflicts if(in_array('allinoneseo',$options)){ if( isset($all_plugins['all-in-one-seo-pack/all_in_one_seo_pack.php']) || isset($all_plugins['all-in-one-seo-pack-pro/all_in_one_seo_pack.php']) || isset($all_plugins['seo-by-rank-math/rank-math.php']) || isset($all_plugins['wordpress-seo/wp-seo.php']) || isset($all_plugins['wordpress-seo-premium/wp-seo-premium.php']) || isset($all_plugins['autodescription/autodescription.php']) ){ if (($key = array_search('allinoneseo', $options)) !== false) { unset($options[$key]); } } } if(in_array('rafflepress',$options)){ if( isset($all_plugins['rafflepress/rafflepress.php']) || isset($all_plugins['rafflepress-pro/rafflepress-pro.php']) ){ if (($key = array_search('rafflepress', $options)) !== false) { unset($options[$key]); } } } if(in_array('wpforms',$options)){ if( isset($all_plugins['wpforms-lite/wpforms.php']) || isset($all_plugins['wpforms/wpforms.php']) ){ if (($key = array_search('wpforms', $options)) !== false) { unset($options[$key]); } } } if(in_array('monsterinsights',$options)){ if( isset($all_plugins['google-analytics-for-wordpress/googleanalytics.php']) || isset($all_plugins['google-analytics-premium/googleanalytics-premium.php']) ){ if (($key = array_search('monsterinsights', $options)) !== false) { unset($options[$key]); } } } // install plugins if ( ! empty( $options ) ) { foreach($options as $p){ if(!empty($paths_map[$p])){ $plugin = $paths_map[$p]['slug']; $download_url = $paths_map[$p]['url']; global $hook_suffix; // Set the current screen to avoid undefined notices. set_current_screen(); // Prepare variables. $method = ''; $url = add_query_arg( array( 'page' => 'seedprod_lite', ), admin_url( 'admin.php' ) ); $url = esc_url( $url ); // Start output bufferring to catch the filesystem form if credentials are needed. $creds = request_filesystem_credentials( $url, $method, false, false, null ); if ( false === $creds ) { wp_send_json_error(); } // If we are not authenticated, make it happen now. if ( ! WP_Filesystem( $creds ) ) { request_filesystem_credentials( $url, $method, true, false, null ); $form = ob_get_clean(); return; } // We do not need any extra credentials if we have gotten this far, so let's install the plugin. require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; global $wp_version; if ( version_compare( $wp_version, '5.3.0' ) >= 0 ) { require_once SEEDPROD_PLUGIN_PATH . 'app/includes/skin53.php'; } else { require_once SEEDPROD_PLUGIN_PATH . 'app/includes/skin.php'; } // Create the plugin upgrader with our custom skin. ob_start(); $installer = new Plugin_Upgrader( new SeedProd_Skin() ); $installer->install( $download_url ); $output = ob_get_clean(); // Flush the cache and return the newly installed plugin basename. wp_cache_flush(); if ( $installer->plugin_info() ) { $plugin_basename = $installer->plugin_info(); $install_plugins[] = $plugin_basename; } } } } // activate plugins foreach($install_plugins as $ip){ activate_plugin($ip, '', false, true); } wp_send_json_success($install_plugins); }