Delete responses
This commit is contained in:
parent
e865ca1b71
commit
ccf3a939ed
|
@ -321,14 +321,21 @@ class OrderNotes extends AbstractController {
|
||||||
}
|
}
|
||||||
|
|
||||||
$request->set_param( 'context', 'edit' );
|
$request->set_param( 'context', 'edit' );
|
||||||
$response = $this->prepare_item_for_response( $note, $request );
|
$previous = $this->prepare_item_for_response( $note, $request );
|
||||||
|
$result = wc_delete_order_note( $note->comment_ID );
|
||||||
$result = wc_delete_order_note( $note->comment_ID );
|
|
||||||
|
|
||||||
if ( ! $result ) {
|
if ( ! $result ) {
|
||||||
return new \WP_Error( 'woocommerce_rest_cannot_delete', sprintf( __( 'The %s cannot be deleted.', 'woocommerce' ), 'order_note' ), array( 'status' => 500 ) );
|
return new \WP_Error( 'woocommerce_rest_cannot_delete', sprintf( __( 'The %s cannot be deleted.', 'woocommerce' ), 'order_note' ), array( 'status' => 500 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$response = new WP_REST_Response();
|
||||||
|
$response->set_data(
|
||||||
|
array(
|
||||||
|
'deleted' => true,
|
||||||
|
'previous' => $previous->get_data(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires after a order note is deleted or trashed via the REST API.
|
* Fires after a order note is deleted or trashed via the REST API.
|
||||||
*
|
*
|
||||||
|
|
|
@ -374,14 +374,21 @@ class ProductAttributes extends AbstractController {
|
||||||
}
|
}
|
||||||
|
|
||||||
$request->set_param( 'context', 'edit' );
|
$request->set_param( 'context', 'edit' );
|
||||||
$response = $this->prepare_item_for_response( $attribute, $request );
|
$previous = $this->prepare_item_for_response( $attribute, $request );
|
||||||
|
$deleted = wc_delete_attribute( $attribute->attribute_id );
|
||||||
$deleted = wc_delete_attribute( $attribute->attribute_id );
|
|
||||||
|
|
||||||
if ( false === $deleted ) {
|
if ( false === $deleted ) {
|
||||||
return new \WP_Error( 'woocommerce_rest_cannot_delete', __( 'The resource cannot be deleted.', 'woocommerce' ), array( 'status' => 500 ) );
|
return new \WP_Error( 'woocommerce_rest_cannot_delete', __( 'The resource cannot be deleted.', 'woocommerce' ), array( 'status' => 500 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$response = new WP_REST_Response();
|
||||||
|
$response->set_data(
|
||||||
|
array(
|
||||||
|
'deleted' => true,
|
||||||
|
'previous' => $previous->get_data(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires after a single attribute is deleted via the REST API.
|
* Fires after a single attribute is deleted via the REST API.
|
||||||
*
|
*
|
||||||
|
|
|
@ -676,12 +676,21 @@ class ProductVariations extends Products {
|
||||||
}
|
}
|
||||||
|
|
||||||
$request->set_param( 'context', 'edit' );
|
$request->set_param( 'context', 'edit' );
|
||||||
$response = $this->prepare_object_for_response( $object, $request );
|
|
||||||
|
|
||||||
// If we're forcing, then delete permanently.
|
// If we're forcing, then delete permanently.
|
||||||
if ( $force ) {
|
if ( $force ) {
|
||||||
|
$previous = $this->prepare_object_for_response( $object, $request );
|
||||||
|
|
||||||
$object->delete( true );
|
$object->delete( true );
|
||||||
$result = 0 === $object->get_id();
|
|
||||||
|
$result = 0 === $object->get_id();
|
||||||
|
$response = new WP_REST_Response();
|
||||||
|
$response->set_data(
|
||||||
|
array(
|
||||||
|
'deleted' => true,
|
||||||
|
'previous' => $previous->get_data(),
|
||||||
|
)
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
// If we don't support trashing for this type, error out.
|
// If we don't support trashing for this type, error out.
|
||||||
if ( ! $supports_trash ) {
|
if ( ! $supports_trash ) {
|
||||||
|
@ -707,6 +716,8 @@ class ProductVariations extends Products {
|
||||||
$object->delete();
|
$object->delete();
|
||||||
$result = 'trash' === $object->get_status();
|
$result = 'trash' === $object->get_status();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$response = $this->prepare_object_for_response( $object, $request );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! $result ) {
|
if ( ! $result ) {
|
||||||
|
@ -718,11 +729,6 @@ class ProductVariations extends Products {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete parent product transients.
|
|
||||||
if ( 0 !== $object->get_parent_id() ) {
|
|
||||||
wc_delete_product_transients( $object->get_parent_id() );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires after a single object is deleted or trashed via the REST API.
|
* Fires after a single object is deleted or trashed via the REST API.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1492,30 +1492,21 @@ class Products extends AbstractObjectsController {
|
||||||
}
|
}
|
||||||
|
|
||||||
$request->set_param( 'context', 'edit' );
|
$request->set_param( 'context', 'edit' );
|
||||||
$response = $this->prepare_object_for_response( $object, $request );
|
|
||||||
|
|
||||||
// If we're forcing, then delete permanently.
|
// If we're forcing, then delete permanently.
|
||||||
if ( $force ) {
|
if ( $force ) {
|
||||||
if ( $object->is_type( 'variable' ) ) {
|
$previous = $this->prepare_object_for_response( $object, $request );
|
||||||
foreach ( $object->get_children() as $child_id ) {
|
|
||||||
$child = wc_get_product( $child_id );
|
|
||||||
if ( ! empty( $child ) ) {
|
|
||||||
$child->delete( true );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// For other product types, if the product has children, remove the relationship.
|
|
||||||
foreach ( $object->get_children() as $child_id ) {
|
|
||||||
$child = wc_get_product( $child_id );
|
|
||||||
if ( ! empty( $child ) ) {
|
|
||||||
$child->set_parent_id( 0 );
|
|
||||||
$child->save();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$object->delete( true );
|
$object->delete( true );
|
||||||
$result = 0 === $object->get_id();
|
$result = 0 === $object->get_id();
|
||||||
|
|
||||||
|
$response = new WP_REST_Response();
|
||||||
|
$response->set_data(
|
||||||
|
array(
|
||||||
|
'deleted' => true,
|
||||||
|
'previous' => $previous->get_data(),
|
||||||
|
)
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
// If we don't support trashing for this type, error out.
|
// If we don't support trashing for this type, error out.
|
||||||
if ( ! $supports_trash ) {
|
if ( ! $supports_trash ) {
|
||||||
|
@ -1545,6 +1536,8 @@ class Products extends AbstractObjectsController {
|
||||||
$object->delete();
|
$object->delete();
|
||||||
$result = 'trash' === $object->get_status();
|
$result = 'trash' === $object->get_status();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$response = $this->prepare_object_for_response( $object, $request );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! $result ) {
|
if ( ! $result ) {
|
||||||
|
@ -1558,11 +1551,6 @@ class Products extends AbstractObjectsController {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete parent product transients.
|
|
||||||
if ( 0 !== $object->get_parent_id() ) {
|
|
||||||
wc_delete_product_transients( $object->get_parent_id() );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires after a single object is deleted or trashed via the REST API.
|
* Fires after a single object is deleted or trashed via the REST API.
|
||||||
*
|
*
|
||||||
|
|
|
@ -206,6 +206,11 @@ class ShippingZoneMethods extends AbstractShippingZonesController {
|
||||||
$instance_id = (int) $request['instance_id'];
|
$instance_id = (int) $request['instance_id'];
|
||||||
$force = $request['force'];
|
$force = $request['force'];
|
||||||
|
|
||||||
|
// We don't support trashing for this type, error out.
|
||||||
|
if ( ! $force ) {
|
||||||
|
return new WP_Error( 'woocommerce_rest_trash_not_supported', __( 'Shipping methods do not support trashing.', 'woocommerce' ), array( 'status' => 501 ) );
|
||||||
|
}
|
||||||
|
|
||||||
$methods = $zone->get_shipping_methods();
|
$methods = $zone->get_shipping_methods();
|
||||||
$method = false;
|
$method = false;
|
||||||
|
|
||||||
|
@ -226,23 +231,26 @@ class ShippingZoneMethods extends AbstractShippingZonesController {
|
||||||
}
|
}
|
||||||
|
|
||||||
$request->set_param( 'context', 'view' );
|
$request->set_param( 'context', 'view' );
|
||||||
$response = $this->prepare_item_for_response( $method, $request );
|
$previous = $this->prepare_item_for_response( $method, $request );
|
||||||
|
|
||||||
// Actually delete.
|
// Actually delete.
|
||||||
if ( $force ) {
|
$zone->delete_shipping_method( $instance_id );
|
||||||
$zone->delete_shipping_method( $instance_id );
|
$response = new WP_REST_Response();
|
||||||
} else {
|
$response->set_data(
|
||||||
return new \WP_Error( 'rest_trash_not_supported', __( 'Shipping methods do not support trashing.', 'woocommerce' ), array( 'status' => 501 ) );
|
array(
|
||||||
}
|
'deleted' => true,
|
||||||
|
'previous' => $previous,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires after a product review is deleted via the REST API.
|
* Fires after a method is deleted via the REST API.
|
||||||
*
|
*
|
||||||
* @param object $method
|
* @param object $method
|
||||||
* @param WP_REST_Response $response The response data.
|
* @param WP_REST_Response $response The response data.
|
||||||
* @param \WP_REST_Request $request The request sent to the API.
|
* @param \WP_REST_Request $request The request sent to the API.
|
||||||
*/
|
*/
|
||||||
do_action( 'rest_delete_product_review', $method, $response, $request );
|
do_action( 'woocommerce_rest_delete_shipping_zone_method', $method, $response, $request );
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
|
@ -211,14 +211,21 @@ class ShippingZones extends AbstractShippingZonesController {
|
||||||
|
|
||||||
$force = $request['force'];
|
$force = $request['force'];
|
||||||
|
|
||||||
$response = $this->get_item( $request );
|
// We don't support trashing for this type, error out.
|
||||||
|
if ( ! $force ) {
|
||||||
if ( $force ) {
|
return new WP_Error( 'woocommerce_rest_trash_not_supported', __( 'Shipping zones do not support trashing.', 'woocommerce' ), array( 'status' => 501 ) );
|
||||||
$zone->delete();
|
|
||||||
} else {
|
|
||||||
return new \WP_Error( 'rest_trash_not_supported', __( 'Shipping zones do not support trashing.', 'woocommerce' ), array( 'status' => 501 ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$previous = $this->get_item( $request );
|
||||||
|
$zone->delete();
|
||||||
|
$response = new WP_REST_Response();
|
||||||
|
$response->set_data(
|
||||||
|
array(
|
||||||
|
'deleted' => true,
|
||||||
|
'previous' => $previous->get_data(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -242,6 +242,9 @@ class TaxClasses extends AbstractController {
|
||||||
return new \WP_Error( 'woocommerce_rest_invalid_id', __( 'Invalid resource id.', 'woocommerce' ), array( 'status' => 400 ) );
|
return new \WP_Error( 'woocommerce_rest_invalid_id', __( 'Invalid resource id.', 'woocommerce' ), array( 'status' => 400 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$request->set_param( 'context', 'edit' );
|
||||||
|
$previous = $this->prepare_item_for_response( $tax_class, $request );
|
||||||
|
|
||||||
update_option( 'woocommerce_tax_classes', implode( "\n", $classes ) );
|
update_option( 'woocommerce_tax_classes', implode( "\n", $classes ) );
|
||||||
|
|
||||||
// Delete tax rate locations locations from the selected class.
|
// Delete tax rate locations locations from the selected class.
|
||||||
|
@ -262,8 +265,13 @@ class TaxClasses extends AbstractController {
|
||||||
// Delete tax rates in the selected class.
|
// Delete tax rates in the selected class.
|
||||||
$wpdb->delete( $wpdb->prefix . 'woocommerce_tax_rates', array( 'tax_rate_class' => $tax_class['slug'] ), array( '%s' ) );
|
$wpdb->delete( $wpdb->prefix . 'woocommerce_tax_rates', array( 'tax_rate_class' => $tax_class['slug'] ), array( '%s' ) );
|
||||||
|
|
||||||
$request->set_param( 'context', 'edit' );
|
$response = new WP_REST_Response();
|
||||||
$response = $this->prepare_item_for_response( $tax_class, $request );
|
$response->set_data(
|
||||||
|
array(
|
||||||
|
'deleted' => true,
|
||||||
|
'previous' => $previous->get_data(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires after a tax class is deleted via the REST API.
|
* Fires after a tax class is deleted via the REST API.
|
||||||
|
|
|
@ -463,13 +463,19 @@ class Webhooks extends AbstractController {
|
||||||
}
|
}
|
||||||
|
|
||||||
$request->set_param( 'context', 'edit' );
|
$request->set_param( 'context', 'edit' );
|
||||||
$response = $this->prepare_item_for_response( $webhook, $request );
|
$previous = $this->prepare_item_for_response( $webhook, $request );
|
||||||
$result = $webhook->delete( true );
|
$result = $webhook->delete( true );
|
||||||
|
|
||||||
if ( ! $result ) {
|
if ( ! $result ) {
|
||||||
/* translators: %s: post type */
|
/* translators: %s: post type */
|
||||||
return new \WP_Error( 'woocommerce_rest_cannot_delete', sprintf( __( 'The %s cannot be deleted.', 'woocommerce' ), $this->post_type ), array( 'status' => 500 ) );
|
return new WP_Error( 'woocommerce_rest_cannot_delete', sprintf( __( 'The %s cannot be deleted.', 'woocommerce' ), $this->post_type ), array( 'status' => 500 ) );
|
||||||
}
|
}
|
||||||
|
$response = new WP_REST_Response();
|
||||||
|
$response->set_data(
|
||||||
|
array(
|
||||||
|
'deleted' => true,
|
||||||
|
'previous' => $previous->get_data(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires after a single item is deleted or trashed via the REST API.
|
* Fires after a single item is deleted or trashed via the REST API.
|
||||||
|
@ -478,7 +484,7 @@ class Webhooks extends AbstractController {
|
||||||
* @param WP_REST_Response $response The response data.
|
* @param WP_REST_Response $response The response data.
|
||||||
* @param \WP_REST_Request $request The request sent to the API.
|
* @param \WP_REST_Request $request The request sent to the API.
|
||||||
*/
|
*/
|
||||||
do_action( "woocommerce_rest_delete_webhook_object", $webhook, $response, $request );
|
do_action( 'woocommerce_rest_delete_webhook_object', $webhook, $response, $request );
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue