OwlCyberSecurity - MANAGER
Edit File: envato-setup-export.php
<?php // This is the export file that writes json files // Your build process should probably exclude this file from the final theme zip, but it doesn't really matter. // Change line 100 where it has the hard coded: /../theme/images/stock/ path // This is the path where media files are copied to during export. // Change this to your theme folder images/stock/ path, whatever that may be. // The importer will look for local 'images/stock/*.jpg' files during import. // Also change the json export path near the bottom: theme/plugins/envato_setup/content/ $default_content = array(); $post_types = array('attachment', 'post', 'page', 'job', 'candidate', 'employer', 'package', 'faq'); foreach (get_post_types() as $post_type) { if (!in_array($post_type, $post_types)) { // which post types to ignore. $post_types[] = $post_type; } } $categories = get_categories(array('type' => '')); $taxonomies = get_taxonomies(); foreach ($post_types as $post_type) { if (in_array($post_type, array('revision', 'event', 'event-recurring'))) { continue; } // post types to ignore. $args = array('post_type' => $post_type, 'posts_per_page' => - 1); $args['post_status'] = array('publish', 'private', 'inherit'); if ($post_type == 'attachment') { } $post_datas = get_posts($args); if (!isset($default_content[$post_type])) { $default_content[$post_type] = array(); } $object = get_post_type_object($post_type); if ($object && !empty($object->labels->singular_name)) { $type_title = $object->labels->name; } else { $type_title = ucwords($post_type) . 's'; } foreach ($post_datas as $post_data) { $meta = get_post_meta($post_data->ID, '', true); if ($post_data->ID == 65) { } foreach ($meta as $meta_key => $meta_val) { if ( // which keys to nuke all the time in_array($meta_key, array('_location_id')) || ( // which keys we want to keep all the time, using strpos: strpos($meta_key, 'elementor') === false && strpos($meta_key, 'eyecix') === false && strpos($meta_key, 'vc_') === false && strpos($meta_key, 'wpb_') === false && strpos($meta_key, 'dtbwp_') === false && strpos($meta_key, '_slider') === false && // which post types we keep all meta values for: !in_array($post_type, array( 'nav_menu_item', 'location', 'event', 'page', 'post', 'job', 'candidate', 'employer', 'faq', 'package', 'product', 'wpcf7_contact_form', )) && // other meta keys we always want to keep: !in_array($meta_key, array( 'dtbwp_post_title_details', 'dtbwp_page_style', 'sliderlink', 'slidercolor', '_wp_attached_file', '_thumbnail_id', )) ) ) { unset($meta[$meta_key]); } else { $meta[$meta_key] = maybe_unserialize(get_post_meta($post_data->ID, $meta_key, true)); } } if ($post_data->ID == 2) { } // copy stock images into the images/stock/ folder for theme import. if ($post_type == 'attachment') { $file = get_attached_file($post_data->ID); if (is_file($file)) { if (filesize($file) > 1500000) { $image = wp_get_image_editor($file); if (!is_wp_error($image)) { list( $width, $height, $type, $attr ) = getimagesize($file); $image->resize(min($width, 1200), null, false); $image->save($file); } } $post_data->guid = wp_get_attachment_url($post_data->ID); if (function_exists('wp_jobsearch_demo_data_get_path') && is_dir(wp_jobsearch_demo_data_get_path('content/'))) { if (!is_dir(wp_jobsearch_demo_data_get_path('content/images/'))) { mkdir(wp_jobsearch_demo_data_get_path('content/images/'), 0755); } $img_dir = wp_jobsearch_demo_data_get_path('content/images/'); copy($file, $img_dir . basename($file)); } } // fix for incorrect GUID when renaming files with the rename plugin, causes import to bust. } $terms = array(); foreach ($taxonomies as $taxonomy) { $terms[$taxonomy] = wp_get_post_terms($post_data->ID, $taxonomy, array('fields' => 'all')); if ($terms[$taxonomy]) { foreach ($terms[$taxonomy] as $tax_id => $tax) { if (!empty($tax->term_id)) { $terms[$taxonomy][$tax_id]->meta = get_term_meta($tax->term_id); if (!empty($terms[$taxonomy][$tax_id]->meta)) { foreach ($terms[$taxonomy][$tax_id]->meta as $key => $val) { if (is_array($val) && count($val) == 1 && isset($val[0])) { $terms[$taxonomy][$tax_id]->meta[$key] = $val[0]; } } } } } } } $default_content[$post_type][] = array( 'type_title' => $type_title, 'post_id' => $post_data->ID, 'post_title' => $post_data->post_title, 'post_status' => $post_data->post_status, 'post_name' => $post_data->post_name, 'post_content' => $post_data->post_content, 'post_excerpt' => $post_data->post_excerpt, 'post_parent' => $post_data->post_parent, 'menu_order' => $post_data->menu_order, 'post_date' => $post_data->post_date, 'post_date_gmt' => $post_data->post_date_gmt, 'guid' => $post_data->guid, 'post_mime_type' => $post_data->post_mime_type, 'meta' => $meta, 'terms' => $terms, // 'other' => $post_data, ); } } // put certain content at very end. $nav = isset($default_content['nav_menu_item']) ? $default_content['nav_menu_item'] : array(); if ($nav) { unset($default_content['nav_menu_item']); $default_content['nav_menu_item'] = $nav; } // find the ID of our menu names so we can import them into default menu locations and also the widget positions below. $menus = get_terms('nav_menu'); $menu_ids = array(); foreach ($menus as $menu) { if ($menu->name == 'Main Menu') { $menu_ids['primary'] = $menu->term_id; } else if ($menu->name == 'Quick Links') { $menu_ids['footer_quick'] = $menu->term_id; } } // used for me to export my widget settings. $my_options = array(); // choose which custom options to load into defaults $all_options = wp_load_alloptions(); foreach ($all_options as $name => $value) { if (stristr($name, 'jobsearch_plugin_options') !== false) { $arr_value = maybe_unserialize($value); $my_options[$name] = json_encode($arr_value); } } $custom_fields = array(); foreach ($all_options as $name => $value) { if (stristr($name, 'jobsearch_custom_field_') !== false) { $custom_fields[$name] = $value; } } $dir = jobsearch_plugin_get_path('envato_setup/content/'); if (function_exists('wp_jobsearch_demo_data_get_path')) { $dir = wp_jobsearch_demo_data_get_path('content/'); } if (is_dir($dir)) { // which style are we writing to? if (isset($_GET['demo_path']) && $_GET['demo_path'] != '') { $dir .= $_GET['demo_path'] . '/'; if (!is_dir($dir)) { mkdir($dir, 0755); } } file_put_contents($dir . 'default.json', json_encode($default_content)); file_put_contents($dir . 'plugin_options.json', json_encode($my_options)); file_put_contents($dir . 'custom_fields.json', json_encode($custom_fields)); ?> <h1>Export Done:</h1> <?php } else { ?> <h1>Export Failed:</h1> <p>There is some error.</p> <?php }