- Timestamp:
- 11/03/2016 04:04:41 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/rest-api/class-wp-rest-request.php
r39091 r39109 652 652 * 653 653 * @since 4.4.0 654 * @since 4.7.0 Returns error instance if value cannot be decoded. 654 655 * @access protected 656 * @return true|WP_Error True if the JSON data was passed or no JSON data was provided, WP_Error if invalid JSON was passed. 655 657 */ 656 658 protected function parse_json_params() { 657 659 if ( $this->parsed_json ) { 658 return ;660 return true; 659 661 } 660 662 … … 665 667 666 668 if ( empty( $content_type ) || 'application/json' !== $content_type['value'] ) { 667 return ;669 return true; 668 670 } 669 671 … … 677 679 */ 678 680 if ( null === $params && ( ! function_exists( 'json_last_error' ) || JSON_ERROR_NONE !== json_last_error() ) ) { 679 return; 681 // Ensure subsequent calls receive error instance. 682 $this->parsed_json = false; 683 684 $error_data = array( 685 'status' => WP_Http::BAD_REQUEST, 686 'json_error_code' => json_last_error(), 687 'json_error_message' => json_last_error_msg(), 688 ); 689 return new WP_Error( 'rest_invalid_json', __( 'Invalid JSON body passed.' ), $error_data ); 680 690 } 681 691 682 692 $this->params['JSON'] = $params; 693 return true; 683 694 } 684 695 … … 842 853 */ 843 854 public function has_valid_params() { 855 // If JSON data was passed, check for errors. 856 $json_error = $this->parse_json_params(); 857 if ( is_wp_error( $json_error ) ) { 858 return $json_error; 859 } 860 844 861 $attributes = $this->get_attributes(); 845 862 $required = array();
Note: See TracChangeset
for help on using the changeset viewer.