Automattic\WooCommerce\StoreApi\Routes\V1
CartRemoveCoupon::get_route_post_response()
Handle the request and return a valid response for this endpoint.
Method of the class: CartRemoveCoupon{}
No Hooks.
Return
\WP_REST_Response
.
Usage
// protected - for code of main (parent) or child class $result = $this->get_route_post_response( $request );
- $request(\WP_REST_Request) (required)
- Request object.
CartRemoveCoupon::get_route_post_response() CartRemoveCoupon::get route post response code WC 9.6.1
protected function get_route_post_response( \WP_REST_Request $request ) { if ( ! wc_coupons_enabled() ) { throw new RouteException( 'woocommerce_rest_cart_coupon_disabled', esc_html__( 'Coupons are disabled.', 'woocommerce' ), 404 ); } $cart = $this->cart_controller->get_cart_instance(); $coupon_code = wc_format_coupon_code( $request['code'] ); $coupon = new \WC_Coupon( $coupon_code ); $discounts = new \WC_Discounts( $cart ); if ( $coupon->get_code() !== $coupon_code || is_wp_error( $discounts->is_coupon_valid( $coupon ) ) ) { throw new RouteException( 'woocommerce_rest_cart_coupon_error', esc_html__( 'Invalid coupon code.', 'woocommerce' ), 400 ); } if ( ! $this->cart_controller->has_coupon( $coupon_code ) ) { throw new RouteException( 'woocommerce_rest_cart_coupon_invalid_code', esc_html__( 'Coupon cannot be removed because it is not already applied to the cart.', 'woocommerce' ), 409 ); } $cart = $this->cart_controller->get_cart_instance(); $cart->remove_coupon( $coupon_code ); return rest_ensure_response( $this->schema->get_item_response( $cart ) ); }