/** * Simple output of a JSON'd string of the widget data */ function layers_create_export_file() { $layers_migrator = new Layers_Widget_Migrator(); // Make sur a post ID exists or return if (!isset($_GET['post'])) { return; } // Get the post ID $post_id = $_GET['post']; $post = get_post($post_id); $widget_data = json_encode($layers_migrator->export_data($post)); $filesize = strlen($widget_data); // Headers to prompt "Save As" header('Content-Type: application/json'); header('Content-Disposition: attachment; filename=' . $post->post_name . '-' . date('Y-m-d') . '.json'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . $filesize); // Clear buffering just in case @ob_end_clean(); flush(); // Output file contents die($widget_data); // Stop execution wp_redirect(admin_url('post.php?post=' . $post->ID . '&action=edit')); }
function layers_backup_page_sidebars_widgets($page = NULL, $no_revisions = FALSE) { // If the migrator class does not exist, then force load the migrator.php file if (!class_exists('Layers_Widget_Migrator')) { require get_template_directory() . '/core/helpers/migrator.php'; } // Prep the migrator $migrator = new Layers_Widget_Migrator(); if (NULL == $page || !is_object($page)) { return; } $raw_export_data = $migrator->export_data($page); $export_data = $migrator->page_widget_data($page); if (!empty($export_data)) { // Create a hash key so that we can know if this page is unique or not if ('' == get_post_meta($page->ID, '_layers_hash', true)) { $page_hash_key = 'layers_page_' . md5($page->post_name . '-' . $page->ID); update_post_meta($page->ID, '_layers_hash', $page_hash_key, false); } else { $page_hash_key = get_post_meta($page->ID, '_layers_hash', true); } // Save the raw widget data $page_raw_widget_data = array('post_id' => $page->ID, 'post_hash' => $page_hash_key, 'post_title' => esc_attr($page->post_title), 'widget_data' => $raw_export_data); // Generate the post content $post = (array) $page; $post['post_content_filtered'] = serialize($page_raw_widget_data); $post['post_content'] = layers_get_builder_page_content($page->ID); // Update the backup post & get the revision ID $post_id = wp_update_post($post); $revisions = wp_get_post_revisions($page->ID, array('posts_per_page' => 1)); $latest_revision = reset($revisions); // Add widget order field update_post_meta($page->ID, '_layers_widget_order', $migrator->page_widgets_as_content($export_data), true); add_metadata('post', $latest_revision->ID, '_layers_widget_order', $migrator->page_widgets_as_content($export_data), true); $return = array('post_id' => $post_id, 'revision_id' => $latest_revision->ID); return $return; } }