File: /var/www/karjerosdiena.lt/wp-content/plugins/wp-jobsearch/envato_setup/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
}