Plugin Updates
This commit is contained in:
@@ -141,6 +141,7 @@ abstract class WP_REST_Meta_Fields {
|
||||
*/
|
||||
public function update_value( $meta, $object_id ) {
|
||||
$fields = $this->get_registered_fields();
|
||||
$error = new WP_Error();
|
||||
|
||||
foreach ( $fields as $meta_key => $args ) {
|
||||
$name = $args['name'];
|
||||
@@ -163,35 +164,38 @@ abstract class WP_REST_Meta_Fields {
|
||||
$current = get_metadata( $this->get_meta_type(), $object_id, $meta_key, true );
|
||||
|
||||
if ( is_wp_error( rest_validate_value_from_schema( $current, $args['schema'] ) ) ) {
|
||||
return new WP_Error(
|
||||
$error->add(
|
||||
'rest_invalid_stored_value',
|
||||
/* translators: %s: Custom field key. */
|
||||
sprintf( __( 'The %s property has an invalid stored value, and cannot be updated to null.' ), $name ),
|
||||
array( 'status' => 500 )
|
||||
);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$result = $this->delete_meta_value( $object_id, $meta_key, $name );
|
||||
if ( is_wp_error( $result ) ) {
|
||||
return $result;
|
||||
$error->merge_from( $result );
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( ! $args['single'] && is_array( $value ) && count( array_filter( $value, 'is_null' ) ) ) {
|
||||
return new WP_Error(
|
||||
$error->add(
|
||||
'rest_invalid_stored_value',
|
||||
/* translators: %s: Custom field key. */
|
||||
sprintf( __( 'The %s property has an invalid stored value, and cannot be updated to null.' ), $name ),
|
||||
array( 'status' => 500 )
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
||||
$is_valid = rest_validate_value_from_schema( $value, $args['schema'], 'meta.' . $name );
|
||||
if ( is_wp_error( $is_valid ) ) {
|
||||
$is_valid->add_data( array( 'status' => 400 ) );
|
||||
return $is_valid;
|
||||
$error->merge_from( $is_valid );
|
||||
continue;
|
||||
}
|
||||
|
||||
$value = rest_sanitize_value_from_schema( $value, $args['schema'] );
|
||||
@@ -203,10 +207,15 @@ abstract class WP_REST_Meta_Fields {
|
||||
}
|
||||
|
||||
if ( is_wp_error( $result ) ) {
|
||||
return $result;
|
||||
$error->merge_from( $result );
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $error->has_errors() ) {
|
||||
return $error;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user