Changeset 51059
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/rest-api/endpoints/class-wp-rest-widgets-controller.php
r50995 r51059 284 284 * @since 5.8.0 285 285 * 286 * @global array $wp_registered_widget_updates The registered widget update functions. 287 * 286 288 * @param WP_REST_Request $request Full details about the request. 287 289 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. 288 290 */ 289 291 public function delete_item( $request ) { 292 global $wp_registered_widget_updates; 293 290 294 $widget_id = $request['id']; 291 295 $sidebar_id = wp_find_widgets_sidebar( $widget_id ); … … 302 306 303 307 if ( $request['force'] ) { 304 $prepared = $this->prepare_item_for_response( compact( 'widget_id', 'sidebar_id' ), $request ); 308 $response = $this->prepare_item_for_response( compact( 'widget_id', 'sidebar_id' ), $request ); 309 310 $parsed_id = wp_parse_widget_id( $widget_id ); 311 $id_base = $parsed_id['id_base']; 312 313 $original_post = $_POST; 314 $original_request = $_REQUEST; 315 316 $_POST = array( 317 'sidebar' => $sidebar_id, 318 "widget-$id_base" => array(), 319 'the-widget-id' => $widget_id, 320 'delete_widget' => '1', 321 ); 322 $_REQUEST = $_POST; 323 324 $callback = $wp_registered_widget_updates[ $id_base ]['callback']; 325 $params = $wp_registered_widget_updates[ $id_base ]['params']; 326 327 if ( is_callable( $callback ) ) { 328 ob_start(); 329 call_user_func_array( $callback, $params ); 330 ob_end_clean(); 331 } 332 333 $_POST = $original_post; 334 $_REQUEST = $original_request; 335 305 336 wp_assign_widget_to_sidebar( $widget_id, '' ); 306 $prepared->set_data( 337 338 $response->set_data( 307 339 array( 308 340 'deleted' => true, 309 'previous' => $ prepared->get_data(),341 'previous' => $response->get_data(), 310 342 ) 311 343 ); 312 344 } else { 313 345 wp_assign_widget_to_sidebar( $widget_id, 'wp_inactive_widgets' ); 314 $prepared = $this->prepare_item_for_response( 346 347 $response = $this->prepare_item_for_response( 315 348 array( 316 349 'sidebar_id' => 'wp_inactive_widgets', … … 321 354 } 322 355 323 return $ prepared;356 return $response; 324 357 } 325 358 -
trunk/tests/phpunit/tests/rest-api/rest-widgets-controller.php
r51029 r51059 1305 1305 $response = rest_do_request( '/wp/v2/widgets/text-1' ); 1306 1306 $this->assertEquals( 404, $response->get_status() ); 1307 1308 $this->assertArrayNotHasKey( 'text-1', get_option( 'sidebars_widgets' )['sidebar-1'] ); 1309 $this->assertArrayNotHasKey( 1, get_option( 'widget_text' ) ); 1307 1310 } 1308 1311
Note: See TracChangeset
for help on using the changeset viewer.