コード例 #1
0
function tdr_save_local_key_value_pair()
{
    // Initialize
    $tdr_product = new Thunder_Plugin_Products();
    // Setup request return info for client callback
    $return_array = array('message' => '', 'confirm_message' => '', 'confirm_request' => false, 'error' => '', 'confirmation_key' => '');
    // Check javascript client script version
    if ($_POST['client_version'] != 0.1) {
        $return_array['error'] = 'Your browser has an old version of the page loaded. Please try refreshing your page or clearing your browser cache, then try again.';
    } else {
        // Parse Data
        $key_value_pairs = $_POST['key_value_json'];
        $key_value_pairs = stripslashes($key_value_pairs);
        $key_value_pairs = json_decode($key_value_pairs, true);
        $save_changes = true;
        // Save changes unless revoked below (no data &&& no confirmation)
        if (empty($key_value_pairs)) {
            // Check for confirmation key
            if (!isset($_POST['confirmation_key'])) {
                $return_array['confirm_request'] = true;
                $return_array['confirm_message'] = 'No data was received. If you wanted to clear the data in this section, please confirm.';
                $save_changes = false;
            }
            // Else will proceed
        }
        if ($save_changes) {
            // Ensure meta_id is valid (exists)
            $meta_id = esc_html($_POST['meta_id']);
            $meta_array = $tdr_product->define_custom_meta_types();
            $meta_id_valid = false;
            foreach ($meta_array as $meta_entry) {
                if ($tdr_product->underscore($meta_entry['uuid']) == $meta_id) {
                    $meta_id_valid = true;
                }
            }
            if (!$meta_id_valid) {
                $return_array['error'] = 'The submission request contained tampered information.';
            } else {
                // Need to get post id for ajax calling post
                $post_id = $_POST['post_id'];
                $meta_value = get_post_meta($post_id, $meta_id, true);
                // JSON Encode the meta
                $new_meta_value = json_encode($key_value_pairs);
                /* If there the new meta value is blank but an old value existed, delete it. */
                if ('' == $new_meta_value && $meta_value) {
                    delete_post_meta($post_id, $meta_id, $meta_value);
                } else {
                    update_post_meta($post_id, $meta_id, $new_meta_value);
                }
                //	echo('Nice. We have found json that has ' . count( $key_value_json ) . ' pairs');
                //	echo('Nice. You are on post ' . $post_id);
                $return_array['message'] = 'Your changes have been saved';
            }
        }
    }
    $return_json = json_encode($return_array);
    echo $return_json;
    die;
    // this is required to return a proper result
}