Automattic\WooCommerce\Internal\Fulfillments
OrderFulfillmentsRestController::delete_fulfillment
Delete a specific fulfillment for the order.
Method of the class: OrderFulfillmentsRestController{}
Hooks from the method
Returns
WP_REST_Response. The deleted fulfillment, or an error if the request fails.
Usage
$OrderFulfillmentsRestController = new OrderFulfillmentsRestController(); $OrderFulfillmentsRestController->delete_fulfillment( $request );
- $request(WP_REST_Request) (required)
- The request object.
OrderFulfillmentsRestController::delete_fulfillment() OrderFulfillmentsRestController::delete fulfillment code WC 10.3.3
public function delete_fulfillment( WP_REST_Request $request ) {
$order_id = (int) $request->get_param( 'order_id' );
$fulfillment_id = (int) $request->get_param( 'fulfillment_id' );
$notify_customer = (bool) $request->get_param( 'notify_customer' );
// Delete the fulfillment for the order.
try {
$fulfillment = new Fulfillment( $fulfillment_id );
$this->validate_fulfillment( $fulfillment, $fulfillment_id, $order_id );
$fulfillment->delete();
} catch ( ApiException $ex ) {
return $this->prepare_error_response(
$ex->getErrorCode(),
$ex->getMessage(),
WP_Http::BAD_REQUEST
);
} catch ( \Exception $e ) {
return $this->prepare_error_response(
$e->getCode(),
$e->getMessage(),
WP_Http::BAD_REQUEST
);
}
if ( $fulfillment->get_is_fulfilled() && $notify_customer ) {
/**
* Trigger the fulfillment deleted notification.
*
* @since 10.1.0
*/
do_action( 'woocommerce_fulfillment_deleted_notification', $order_id, $fulfillment, wc_get_order( $order_id ) );
}
return new WP_REST_Response(
array(
'message' => __( 'Fulfillment deleted successfully.', 'woocommerce' ),
),
WP_Http::OK
);
}