function fusion_importer() { global $wpdb; if (current_user_can('manage_options') && isset($_GET['import_data_content'])) { if (!defined('WP_LOAD_IMPORTERS')) { define('WP_LOAD_IMPORTERS', true); } // we are loading importers if (!class_exists('WP_Importer')) { // if main importer class doesn't exist $wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php'; include $wp_importer; } if (!class_exists('WP_Import')) { // if WP importer doesn't exist $wp_import = get_template_directory() . '/framework/plugins/importer/wordpress-importer.php'; include $wp_import; } if (class_exists('WP_Importer') && class_exists('WP_Import')) { // check for main import class and wp import class $importer = new WP_Import(); /* First Import Posts, Pages, Portfolio Content, FAQ, Images, Menus */ $theme_xml = get_template_directory() . '/framework/plugins/importer/data/avada.xml.gz'; $importer->fetch_attachments = true; ob_start(); $importer->import($theme_xml); ob_end_clean(); /* Import Woocommerce if WooCommerce Exists */ if (class_exists('Woocommerce')) { $importer = new WP_Import(); $theme_xml = get_template_directory() . '/framework/plugins/importer/data/wooproducts.xml.gz'; $importer->fetch_attachments = true; ob_start(); $importer->import($theme_xml); ob_end_clean(); // Set pages $woopages = array('woocommerce_shop_page_id' => 'Shop', 'woocommerce_cart_page_id' => 'Cart', 'woocommerce_checkout_page_id' => 'Checkout', 'woocommerce_pay_page_id' => 'Checkout → Pay', 'woocommerce_thanks_page_id' => 'Order Received', 'woocommerce_myaccount_page_id' => 'My Account', 'woocommerce_edit_address_page_id' => 'Edit My Address', 'woocommerce_view_order_page_id' => 'View Order', 'woocommerce_change_password_page_id' => 'Change Password', 'woocommerce_logout_page_id' => 'Logout', 'woocommerce_lost_password_page_id' => 'Lost Password'); foreach ($woopages as $woo_page_name => $woo_page_title) { $woopage = get_page_by_title($woo_page_title); if ($woopage->ID) { update_option($woo_page_name, $woopage->ID); // Front Page } } // We no longer need to install pages delete_option('_wc_needs_pages'); delete_transient('_wc_activation_redirect'); // Flush rules after install flush_rewrite_rules(); } // Set imported menus to registered theme locations $locations = get_theme_mod('nav_menu_locations'); // registered menu locations in theme $menus = wp_get_nav_menus(); // registered menus if ($menus) { foreach ($menus as $menu) { // assign menus to theme locations if ($menu->name == 'Main') { $locations['main_navigation'] = $menu->term_id; } else { if ($menu->name == '404') { $locations['404_pages'] = $menu->term_id; } else { if ($menu->name == 'Top') { $locations['top_navigation'] = $menu->term_id; } } } } } set_theme_mod('nav_menu_locations', $locations); // set menus to locations // Import Theme Options $theme_options_txt = get_template_directory_uri() . '/framework/plugins/importer/data/theme_options.txt'; // theme options data file $theme_options_txt = wp_remote_get($theme_options_txt); $data = unserialize(base64_decode($theme_options_txt['body'])); update_option(OPTIONS, $data); // update theme options // Add sidebar widget areas $sidebars = array('ContactSidebar' => 'Contact Sidebar', 'FAQ' => 'FAQ', 'HomepageSidebar' => 'Home Page Sidebar', 'Portfolio' => 'Portfolio'); update_option('sbg_sidebars', $sidebars); foreach ($sidebars as $sidebar) { $sidebar_class = avada_name_to_class($sidebar); register_sidebar(array('name' => $sidebar, 'id' => 'avada-custom-sidebar-' . strtolower($sidebar_class), 'before_widget' => '<div id="%1$s" class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<div class="heading"><h3>', 'after_title' => '</h3></div>')); } // Add data to widgets $widgets_json = get_template_directory_uri() . '/framework/plugins/importer/data/widget_data.json'; // widgets data file $widgets_json = wp_remote_get($widgets_json); $widget_data = $widgets_json['body']; $import_widgets = fusion_import_widget_data($widget_data); // Import Layerslider if (function_exists('layerslider_import_sample_slider')) { // if layerslider is activated $ls_txt = get_template_directory_uri() . '/framework/plugins/importer/data/layerslider.txt'; // layerslider data file $ls_txt = wp_remote_get($ls_txt); $data = json_decode(base64_decode($ls_txt['body']), true); avada_import_sample_slider($data); // update theme options // Get all sliders // Table name $table_name = $wpdb->prefix . "layerslider"; // Get sliders $sliders = $wpdb->get_results("SELECT * FROM {$table_name}\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE flag_hidden = '0' AND flag_deleted = '0'\n\t\t\t\t\t\t\t\t\t\t\t\t\tORDER BY date_c ASC"); if (!empty($sliders)) { foreach ($sliders as $key => $item) { $slides[$item->id] = $item->name; } } if ($slides) { foreach ($slides as $key => $val) { $slides_array[$val] = $key; } } // Assign LayerSlider $lspage = get_page_by_title('Layer Slider'); if ($lspage->ID && $slides_array['Avada Full Width']) { update_post_meta($lspage->ID, 'pyre_slider', $slides_array['Avada Full Width']); } } // Import Revslider if (class_exists('UniteFunctionsRev')) { // if revslider is activated $rev_directory = get_template_directory() . '/framework/plugins/importer/data/revsliders/'; // layerslider data dir foreach (glob($rev_directory . '*.txt') as $filename) { // get all files from revsliders data dir $filename = basename($filename); $rev_files[] = get_template_directory_uri() . '/framework/plugins/importer/data/revsliders/' . $filename; } foreach ($rev_files as $rev_file) { // finally import rev slider data files $get_file = wp_remote_get($rev_file); $arrSlider = unserialize($get_file['body']); $sliderParams = $arrSlider["params"]; if (isset($sliderParams["background_image"])) { $sliderParams["background_image"] = UniteFunctionsWPRev::getImageUrlFromPath($sliderParams["background_image"]); } $json_params = json_encode($sliderParams); $arrInsert = array(); $arrInsert["params"] = $json_params; $arrInsert["title"] = UniteFunctionsRev::getVal($sliderParams, "title", "Slider1"); $arrInsert["alias"] = UniteFunctionsRev::getVal($sliderParams, "alias", "slider1"); $wpdb->insert(GlobalsRevSlider::$table_sliders, $arrInsert); $sliderID = mysql_insert_id(); //create all slides $arrSlides = $arrSlider["slides"]; foreach ($arrSlides as $slide) { $params = $slide["params"]; $layers = $slide["layers"]; //convert params images: if (isset($params["image"])) { $params["image"] = UniteFunctionsWPRev::getImageUrlFromPath($params["image"]); } //convert layers images: foreach ($layers as $key => $layer) { if (isset($layer["image_url"])) { $layer["image_url"] = UniteFunctionsWPRev::getImageUrlFromPath($layer["image_url"]); $layers[$key] = $layer; } } //create new slide $arrCreate = array(); $arrCreate["slider_id"] = $sliderID; $arrCreate["slide_order"] = $slide["slide_order"]; $arrCreate["layers"] = json_encode($layers); $arrCreate["params"] = json_encode($params); $wpdb->insert(GlobalsRevSlider::$table_slides, $arrCreate); } } } // Set reading options $homepage = get_page_by_title('Home Version 13'); $posts_page = get_page_by_title('Blog Large'); if ($homepage->ID && $posts_page->ID) { update_option('show_on_front', 'page'); update_option('page_on_front', $homepage->ID); // Front Page update_option('page_for_posts', $posts_page->ID); // Blog Page } // finally redirect to success page wp_redirect(admin_url('themes.php?page=optionsframework&imported=success#of-option-generaloptions')); } } }
function fusion_importer() { global $wpdb; if ( current_user_can( 'manage_options' ) && isset( $_GET['import_data_content'] ) ) { if ( !defined('WP_LOAD_IMPORTERS') ) define('WP_LOAD_IMPORTERS', true); // we are loading importers if ( ! class_exists( 'WP_Importer' ) ) { // if main importer class doesn't exist $wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php'; include $wp_importer; } if ( ! class_exists('WP_Import') ) { // if WP importer doesn't exist $wp_import = get_template_directory() . '/framework/plugins/importer/wordpress-importer.php'; include $wp_import; } if ( class_exists( 'WP_Importer' ) && class_exists( 'WP_Import' ) ) { // check for main import class and wp import class $importer = new WP_Import(); /* First Import Posts, Pages, Portfolio Content, FAQ, Images, Menus */ $theme_xml = get_template_directory() . '/framework/plugins/importer/data/avada.xml.gz'; $importer->fetch_attachments = true; ob_start(); $importer->import($theme_xml); ob_end_clean(); /* Import Woocommerce if WooCommerce Exists */ if( class_exists('Woocommerce') ) { $importer = new WP_Import(); $theme_xml = get_template_directory() . '/framework/plugins/importer/data/wooproducts.xml.gz'; $importer->fetch_attachments = true; ob_start(); $importer->import($theme_xml); ob_end_clean(); // Set pages $woopages = array( 'woocommerce_shop_page_id' => 'Shop', 'woocommerce_cart_page_id' => 'Cart', 'woocommerce_checkout_page_id' => 'Checkout', 'woocommerce_pay_page_id' => 'Checkout → Pay', 'woocommerce_thanks_page_id' => 'Order Received', 'woocommerce_myaccount_page_id' => 'My Account', 'woocommerce_edit_address_page_id' => 'Edit My Address', 'woocommerce_view_order_page_id' => 'View Order', 'woocommerce_change_password_page_id' => 'Change Password', 'woocommerce_logout_page_id' => 'Logout', 'woocommerce_lost_password_page_id' => 'Lost Password' ); foreach($woopages as $woo_page_name => $woo_page_title) { $woopage = get_page_by_title( $woo_page_title ); if($woopage->ID) { update_option($woo_page_name, $woopage->ID); // Front Page } } // We no longer need to install pages delete_option( '_wc_needs_pages' ); delete_transient( '_wc_activation_redirect' ); // Flush rules after install flush_rewrite_rules(); } // Set imported menus to registered theme locations $locations = get_theme_mod( 'nav_menu_locations' ); // registered menu locations in theme $menus = wp_get_nav_menus(); // registered menus if($menus) { foreach($menus as $menu) { // assign menus to theme locations if( $menu->name == 'Main' ) { $locations['main_navigation'] = $menu->term_id; } else if( $menu->name == '404' ) { $locations['404_pages'] = $menu->term_id; } else if( $menu->name == 'Top' ) { $locations['top_navigation'] = $menu->term_id; } } } set_theme_mod( 'nav_menu_locations', $locations ); // set menus to locations // Import Theme Options $theme_options_txt = get_template_directory_uri() . '/framework/plugins/importer/data/theme_options.txt'; // theme options data file $theme_options_txt = wp_remote_get( $theme_options_txt ); $data = unserialize( base64_decode( $theme_options_txt['body']) ); update_option( OPTIONS, $data ); // update theme options // Add sidebar widget areas $sidebars = array( 'ContactSidebar' => 'Contact Sidebar', 'FAQ' => 'FAQ', 'HomepageSidebar' => 'Home Page Sidebar', 'Portfolio' => 'Portfolio' ); update_option( 'sbg_sidebars', $sidebars ); foreach( $sidebars as $sidebar ) { $sidebar_class = avada_name_to_class( $sidebar ); register_sidebar(array( 'name'=>$sidebar, 'id' => 'avada-custom-sidebar-' . strtolower( $sidebar_class ), 'before_widget' => '<div id="%1$s" class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<div class="heading"><h3>', 'after_title' => '</h3></div>', )); } // Add data to widgets $widgets_json = get_template_directory_uri() . '/framework/plugins/importer/data/widget_data.json'; // widgets data file $widgets_json = wp_remote_get( $widgets_json ); $widget_data = $widgets_json['body']; $import_widgets = fusion_import_widget_data( $widget_data ); // Import Layerslider if( function_exists( 'layerslider_import_sample_slider' ) ) { // if layerslider is activated $ls_txt = get_template_directory_uri() . '/framework/plugins/importer/data/layerslider.txt'; // layerslider data file $ls_txt = wp_remote_get( $ls_txt ); $data = json_decode( base64_decode( $ls_txt['body'] ), true ); avada_import_sample_slider( $data ); // update theme options // Get all sliders // Table name $table_name = $wpdb->prefix . "layerslider"; // Get sliders $sliders = $wpdb->get_results( "SELECT * FROM $table_name WHERE flag_hidden = '0' AND flag_deleted = '0' ORDER BY date_c ASC" ); if(!empty($sliders)): foreach($sliders as $key => $item): $slides[$item->id] = $item->name; endforeach; endif; if($slides){ foreach($slides as $key => $val){ $slides_array[$val] = $key; } } // Assign LayerSlider $lspage = get_page_by_title( 'Layer Slider' ); if($lspage->ID && $slides_array['Avada Full Width']) { update_post_meta($lspage->ID, 'pyre_slider', $slides_array['Avada Full Width']); } } // Import Revslider if( class_exists('UniteFunctionsRev') ) { // if revslider is activated $rev_directory = get_template_directory() . '/framework/plugins/importer/data/revsliders/'; // layerslider data dir foreach( glob( $rev_directory . '*.zip' ) as $filename ) { // get all files from revsliders data dir $filename = basename($filename); $rev_files[] = get_template_directory() . '/framework/plugins/importer/data/revsliders/' . $filename ; } foreach( $rev_files as $rev_file ) { // finally import rev slider data files /*$get_file = wp_remote_get( $rev_file ); $arrSlider = unserialize( $get_file['body'] ); $sliderParams = $arrSlider["params"]; if(isset($sliderParams["background_image"])) { $sliderParams["background_image"] = UniteFunctionsWPRev::getImageUrlFromPath($sliderParams["background_image"]); } $json_params = json_encode($sliderParams); $arrInsert = array(); $arrInsert["params"] = $json_params; $arrInsert["title"] = UniteFunctionsRev::getVal($sliderParams, "title","Slider1"); $arrInsert["alias"] = UniteFunctionsRev::getVal($sliderParams, "alias","slider1"); $wpdb->insert(GlobalsRevSlider::$table_sliders, $arrInsert); $sliderID = mysql_insert_id(); //create all slides $arrSlides = $arrSlider["slides"]; foreach($arrSlides as $slide){ $params = $slide["params"]; $layers = $slide["layers"]; //convert params images: if(isset($params["image"])) { $params["image"] = UniteFunctionsWPRev::getImageUrlFromPath($params["image"]); } //convert layers images: foreach($layers as $key=>$layer){ if(isset($layer["image_url"])){ $layer["image_url"] = UniteFunctionsWPRev::getImageUrlFromPath($layer["image_url"]); $layers[$key] = $layer; } } //create new slide $arrCreate = array(); $arrCreate["slider_id"] = $sliderID; $arrCreate["slide_order"] = $slide["slide_order"]; $arrCreate["layers"] = json_encode($layers); $arrCreate["params"] = json_encode($params); $wpdb->insert(GlobalsRevSlider::$table_slides,$arrCreate);*/ $filepath = $rev_file; //if(file_exists($filepath) == false) //UniteFunctionsRev::throwError("Import file not found!!!"); //check if zip file or fallback to old, if zip, check if all files exist $zip = new ZipArchive; $importZip = $zip->open($filepath, ZIPARCHIVE::CREATE); if($importZip === true){ //true or integer. If integer, its not a correct zip file //check if files all exist in zip $slider_export = $zip->getStream('slider_export.txt'); $custom_animations = $zip->getStream('custom_animations.txt'); $dynamic_captions = $zip->getStream('dynamic-captions.css'); $static_captions = $zip->getStream('static-captions.css'); //if(!$slider_export) UniteFunctionsRev::throwError("slider_export.txt does not exist!"); //if(!$custom_animations) UniteFunctionsRev::throwError("custom_animations.txt does not exist!"); //if(!$dynamic_captions) UniteFunctionsRev::throwError("dynamic-captions.css does not exist!"); //if(!$static_captions) UniteFunctionsRev::throwError("static-captions.css does not exist!"); $content = ''; $animations = ''; $dynamic = ''; $static = ''; while (!feof($slider_export)) $content .= fread($slider_export, 1024); if($custom_animations){ while (!feof($custom_animations)) $animations .= fread($custom_animations, 1024); } if($dynamic_captions){ while (!feof($dynamic_captions)) $dynamic .= fread($dynamic_captions, 1024); } if($static_captions){ while (!feof($static_captions)) $static .= fread($static_captions, 1024); } fclose($slider_export); if($custom_animations){ fclose($custom_animations); } if($dynamic_captions){ fclose($dynamic_captions); } if($static_captions){ fclose($static_captions); } //check for images! }else{ //check if fallback //get content array $content = @file_get_contents($filepath); } if($importZip === true){ //we have a zip $db = new UniteDBRev(); //update/insert custom animations $animations = @unserialize($animations); if(!empty($animations)){ foreach($animations as $key => $animation){ //$animation['id'], $animation['handle'], $animation['params'] $exist = $db->fetch(GlobalsRevSlider::$table_layer_anims, "handle = '".$animation['handle']."'"); if(!empty($exist)){ //update the animation, get the ID if($updateAnim == "true"){ //overwrite animation if exists $arrUpdate = array(); $arrUpdate['params'] = stripslashes(json_encode(str_replace("'", '"', $animation['params']))); $db->update(GlobalsRevSlider::$table_layer_anims, $arrUpdate, array('handle' => $animation['handle'])); $id = $exist['0']['id']; }else{ //insert with new handle $arrInsert = array(); $arrInsert["handle"] = 'copy_'.$animation['handle']; $arrInsert["params"] = stripslashes(json_encode(str_replace("'", '"', $animation['params']))); $id = $db->insert(GlobalsRevSlider::$table_layer_anims, $arrInsert); } }else{ //insert the animation, get the ID $arrInsert = array(); $arrInsert["handle"] = $animation['handle']; $arrInsert["params"] = stripslashes(json_encode(str_replace("'", '"', $animation['params']))); $id = $db->insert(GlobalsRevSlider::$table_layer_anims, $arrInsert); } //and set the current customin-oldID and customout-oldID in slider params to new ID from $id $content = str_replace(array('customin-'.$animation['id'], 'customout-'.$animation['id']), array('customin-'.$id, 'customout-'.$id), $content); } //dmp(__("animations imported!",REVSLIDER_TEXTDOMAIN)); }else{ //dmp(__("no custom animations found, if slider uses custom animations, the provided export may be broken...",REVSLIDER_TEXTDOMAIN)); } //overwrite/append static-captions.css if(!empty($static)){ if($updateStatic == "true"){ //overwrite file RevOperations::updateStaticCss($static); }else{ //append $static_cur = RevOperations::getStaticCss(); $static = $static_cur."\n".$static; RevOperations::updateStaticCss($static); } } //overwrite/create dynamic-captions.css //parse css to classes $dynamicCss = UniteCssParserRev::parseCssToArray($dynamic); if(is_array($dynamicCss) && $dynamicCss !== false && count($dynamicCss) > 0){ foreach($dynamicCss as $class => $styles){ //check if static style or dynamic style $class = trim($class); if((strpos($class, ':hover') === false && strpos($class, ':') !== false) || //before, after strpos($class," ") !== false || // .tp-caption.imageclass img or .tp-caption .imageclass or .tp-caption.imageclass .img strpos($class,".tp-caption") === false || // everything that is not tp-caption (strpos($class,".") === false || strpos($class,"#") !== false) || // no class -> #ID or img strpos($class,">") !== false){ //.tp-caption>.imageclass or .tp-caption.imageclass>img or .tp-caption.imageclass .img continue; } //is a dynamic style if(strpos($class, ':hover') !== false){ $class = trim(str_replace(':hover', '', $class)); $arrInsert = array(); $arrInsert["hover"] = json_encode($styles); $arrInsert["settings"] = json_encode(array('hover' => 'true')); }else{ $arrInsert = array(); $arrInsert["params"] = json_encode($styles); } //check if class exists $result = $db->fetch(GlobalsRevSlider::$table_css, "handle = '".$class."'"); if(!empty($result)){ //update $db->update(GlobalsRevSlider::$table_css, $arrInsert, array('handle' => $class)); }else{ //insert $arrInsert["handle"] = $class; $db->insert(GlobalsRevSlider::$table_css, $arrInsert); } } //dmp(__("dynamic styles imported!",REVSLIDER_TEXTDOMAIN)); }else{ //dmp(__("no dynamic styles found, if slider uses dynamic styles, the provided export may be broken...",REVSLIDER_TEXTDOMAIN)); } } $content = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $content); //clear errors in string $arrSlider = @unserialize($content); $sliderParams = $arrSlider["params"]; if(isset($sliderParams["background_image"])) $sliderParams["background_image"] = UniteFunctionsWPRev::getImageUrlFromPath($sliderParams["background_image"]); $json_params = json_encode($sliderParams); //new slider $arrInsert = array(); $arrInsert["params"] = $json_params; $arrInsert["title"] = UniteFunctionsRev::getVal($sliderParams, "title","Slider1"); $arrInsert["alias"] = UniteFunctionsRev::getVal($sliderParams, "alias","slider1"); $sliderID = $wpdb->insert(GlobalsRevSlider::$table_sliders,$arrInsert); $sliderID = $wpdb->insert_id; //-------- Slides Handle ----------- //create all slides $arrSlides = $arrSlider["slides"]; $alreadyImported = array(); foreach($arrSlides as $slide){ $params = $slide["params"]; $layers = $slide["layers"]; //convert params images: if(isset($params["image"])){ //import if exists in zip folder if(trim($params["image"]) !== ''){ if($importZip === true){ //we have a zip, check if exists $image = $zip->getStream('images/'.$params["image"]); if(!$image){ echo $params["image"].' not found!<br>'; }else{ if(!isset($alreadyImported['zip://'.$filepath."#".'images/'.$params["image"]])){ $importImage = UniteFunctionsWPRev::import_media('zip://'.$filepath."#".'images/'.$params["image"], $sliderParams["alias"].'/'); if($importImage !== false){ $alreadyImported['zip://'.$filepath."#".'images/'.$params["image"]] = $importImage['path']; $params["image"] = $importImage['path']; } }else{ $params["image"] = $alreadyImported['zip://'.$filepath."#".'images/'.$params["image"]]; } } } } $params["image"] = UniteFunctionsWPRev::getImageUrlFromPath($params["image"]); } //convert layers images: foreach($layers as $key=>$layer){ if(isset($layer["image_url"])){ //import if exists in zip folder if(trim($layer["image_url"]) !== ''){ if($importZip === true){ //we have a zip, check if exists $image_url = $zip->getStream('images/'.$layer["image_url"]); if(!$image_url){ echo $layer["image_url"].' not found!<br>'; }else{ if(!isset($alreadyImported['zip://'.$filepath."#".'images/'.$layer["image_url"]])){ $importImage = UniteFunctionsWPRev::import_media('zip://'.$filepath."#".'images/'.$layer["image_url"], $sliderParams["alias"].'/'); if($importImage !== false){ $alreadyImported['zip://'.$filepath."#".'images/'.$layer["image_url"]] = $importImage['path']; $layer["image_url"] = $importImage['path']; } }else{ $layer["image_url"] = $alreadyImported['zip://'.$filepath."#".'images/'.$layer["image_url"]]; } } } } $layer["image_url"] = UniteFunctionsWPRev::getImageUrlFromPath($layer["image_url"]); $layers[$key] = $layer; } } //create new slide $arrCreate = array(); $arrCreate["slider_id"] = $sliderID; $arrCreate["slide_order"] = $slide["slide_order"]; $arrCreate["layers"] = json_encode($layers); $arrCreate["params"] = json_encode($params); $wpdb->insert(GlobalsRevSlider::$table_slides,$arrCreate); //} } } } // Set reading options $homepage = get_page_by_title( 'Home Version 13' ); $posts_page = get_page_by_title( 'Blog Large' ); if($homepage->ID && $posts_page->ID) { update_option('show_on_front', 'page'); update_option('page_on_front', $homepage->ID); // Front Page update_option('page_for_posts', $posts_page->ID); // Blog Page } // finally redirect to success page wp_redirect( admin_url( 'themes.php?page=optionsframework&imported=success#of-option-generaloptions' ) ); } } }