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 }