Ejemplo n.º 1
0
/**
 * Get builder content based on the submitted panels_data.
 */
function siteorigin_panels_ajax_builder_content()
{
    header('content-type: text/html');
    if (!current_user_can('edit_post', $_POST['post_id'])) {
        wp_die();
    }
    if (empty($_POST['post_id']) || empty($_POST['panels_data'])) {
        echo '';
        wp_die();
    }
    // echo the content
    $panels_data = json_decode(wp_unslash($_POST['panels_data']), true);
    $panels_data['widgets'] = siteorigin_panels_process_raw_widgets($panels_data['widgets']);
    $panels_data = siteorigin_panels_styles_sanitize_all($panels_data);
    echo siteorigin_panels_render(intval($_POST['post_id']), false, $panels_data);
    wp_die();
}
Ejemplo n.º 2
0
/**
 * Save the panels data
 *
 * @param $post_id
 * @param $post
 *
 * @action save_post
 */
function siteorigin_panels_save_post($post_id, $post)
{
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    if (empty($_POST['_sopanels_nonce']) || !wp_verify_nonce($_POST['_sopanels_nonce'], 'save')) {
        return;
    }
    if (!current_user_can('edit_post', $post_id)) {
        return;
    }
    if (!isset($_POST['panels_data'])) {
        return;
    }
    if (!wp_is_post_revision($post_id)) {
        $panels_data = json_decode(wp_unslash($_POST['panels_data']), true);
        $panels_data['widgets'] = siteorigin_panels_process_raw_widgets($panels_data['widgets']);
        $panels_data = siteorigin_panels_styles_sanitize_all($panels_data);
        if (!empty($panels_data['widgets']) || !empty($panels_data['grids'])) {
            update_post_meta($post_id, 'panels_data', $panels_data);
        } else {
            // There are no widgets or rows, so delete the panels data
            delete_post_meta($post_id, 'panels_data');
        }
    } else {
        // When previewing, we don't need to wp_unslash the panels_data post variable.
        $panels_data = json_decode(wp_unslash($_POST['panels_data']), true);
        $panels_data['widgets'] = siteorigin_panels_process_raw_widgets($panels_data['widgets']);
        $panels_data = siteorigin_panels_styles_sanitize_all($panels_data);
        // Because of issue #20299, we are going to save the preview into a different variable so we don't overwrite the actual data.
        // https://core.trac.wordpress.org/ticket/20299
        if (!empty($panels_data['widgets'])) {
            update_post_meta($post_id, '_panels_data_preview', $panels_data);
        } else {
            delete_post_meta($post_id, '_panels_data_preview');
        }
    }
}
Ejemplo n.º 3
0
/**
 * Save the panels data
 *
 * @param $post_id
 * @param $post
 *
 * @action save_post
 */
function siteorigin_panels_save_post($post_id, $post)
{
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    $nonce = filter_input(INPUT_POST, '_sopanels_nonce', FILTER_SANITIZE_STRING);
    if (!wp_verify_nonce($nonce, 'save')) {
        return;
    }
    if (!current_user_can('edit_post', $post_id)) {
        return;
    }
    $request = filter_input_array(INPUT_POST, array('panels_data' => FILTER_DEFAULT));
    if (!wp_is_post_revision($post_id)) {
        $panels_data = json_decode($request['panels_data'], true);
        $panels_data['widgets'] = siteorigin_panels_process_raw_widgets($panels_data['widgets']);
        $panels_data = siteorigin_panels_styles_sanitize_all($panels_data);
        if (!empty($panels_data['widgets'])) {
            update_post_meta($post_id, 'panels_data', $panels_data);
        } else {
            // There are no widgets, so delete the panels data.
            delete_post_meta($post_id, 'panels_data');
        }
    } else {
        // When previewing, we don't need to wp_unslash the panels_data post variable.
        $panels_data = json_decode($request['panels_data'], true);
        $panels_data['widgets'] = siteorigin_panels_process_raw_widgets($panels_data['widgets']);
        $panels_data = siteorigin_panels_styles_sanitize_all($panels_data);
        // Because of issue #20299, we are going to save the preview into a different variable so we don't overwrite the actual data.
        // https://core.trac.wordpress.org/panels_data/20299
        if (!empty($panels_data['widgets'])) {
            update_post_meta($post_id, '_panels_data_preview', $panels_data);
        }
    }
}