From 84207a7e8420376fc157daf324a17769b0b395b7 Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Thu, 16 Apr 2009 21:55:35 +0000 Subject: [PATCH] Show proper error when adding a custom field without a value, props scohoust, fixes #7541 git-svn-id: https://develop.svn.wordpress.org/trunk@10957 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/admin-ajax.php | 10 ++++++---- wp-admin/includes/post.php | 5 ++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/wp-admin/admin-ajax.php b/wp-admin/admin-ajax.php index 070285ccf7..a64813c403 100644 --- a/wp-admin/admin-ajax.php +++ b/wp-admin/admin-ajax.php @@ -770,7 +770,7 @@ case 'add-meta' : if ( isset($_POST['metakeyselect']) || isset($_POST['metakeyinput']) ) { if ( !current_user_can( 'edit_post', $pid ) ) die('-1'); - if ( '#NONE#' == $_POST['metakeyselect'] && empty($_POST['metakeyinput']) ) + if ( isset($_POST['metakeyselect']) && '#NONE#' == $_POST['metakeyselect'] && empty($_POST['metakeyinput']) ) die('1'); if ( $pid < 0 ) { $now = current_time('timestamp', 1); @@ -784,12 +784,13 @@ case 'add-meta' : ) ); $x->send(); } - $mid = add_meta( $pid ); + if ( !$mid = add_meta( $pid ) ) + die(__('Please provide a custom field value.')); } else { die('0'); } } else if ( !$mid = add_meta( $pid ) ) { - die('0'); + die(__('Please provide a custom field value.')); } $meta = get_post_meta_by_id( $mid ); @@ -811,7 +812,8 @@ case 'add-meta' : if ( !current_user_can( 'edit_post', $meta->post_id ) ) die('-1'); if ( !$u = update_meta( $mid, $key, $value ) ) - die('1'); // We know meta exists; we also know it's unchanged (or DB error, in which case there are bigger problems). + die('0'); // We know meta exists; we also know it's unchanged (or DB error, in which case there are bigger problems). + $key = stripslashes($key); $value = stripslashes($value); $x = new WP_Ajax_Response( array( diff --git a/wp-admin/includes/post.php b/wp-admin/includes/post.php index 7f8b23c2d2..c38be1f6a6 100644 --- a/wp-admin/includes/post.php +++ b/wp-admin/includes/post.php @@ -677,10 +677,13 @@ function update_meta( $meta_id, $meta_key, $meta_value ) { if ( in_array($meta_key, $protected) ) return false; + if ( '' === trim( $meta_value ) ) + return false; + $post_id = $wpdb->get_var( $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_id = %d", $meta_id) ); wp_cache_delete($post_id, 'post_meta'); - $meta_value = maybe_serialize( stripslashes( $meta_value )); + $meta_value = maybe_serialize( stripslashes( $meta_value ) ); $meta_id = (int) $meta_id; $data = compact( 'meta_key', 'meta_value' );