Automattic\WooCommerce\StoreApi\Routes\V1
CartRemoveCoupon::get_route_post_response()
Handle the request and return a valid response for this endpoint.
Метод класса: CartRemoveCoupon{}
Хуков нет.
Возвращает
\WP_REST_Response
.
Использование
// protected - в коде основоного (родительского) или дочернего класса $result = $this->get_route_post_response( $request );
- $request(\WP_REST_Request) (обязательный)
- Request object.
Код CartRemoveCoupon::get_route_post_response() CartRemoveCoupon::get route post response WC 8.7.0
protected function get_route_post_response( \WP_REST_Request $request ) { if ( ! wc_coupons_enabled() ) { throw new RouteException( 'woocommerce_rest_cart_coupon_disabled', __( '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 ); if ( $coupon->get_code() !== $coupon_code || ! $coupon->is_valid() ) { throw new RouteException( 'woocommerce_rest_cart_coupon_error', __( 'Invalid coupon code.', 'woocommerce' ), 400 ); } if ( ! $this->cart_controller->has_coupon( $coupon_code ) ) { throw new RouteException( 'woocommerce_rest_cart_coupon_invalid_code', __( '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 ); $cart->calculate_totals(); return rest_ensure_response( $this->schema->get_item_response( $cart ) ); }