Automattic\WooCommerce\StoreApi\Routes\V1

CartApplyCoupon::get_route_post_response()protectedWC 1.0

Handle the request and return a valid response for this endpoint.

Method of the class: CartApplyCoupon{}

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.

CartApplyCoupon::get_route_post_response() code WC 9.4.2

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 );
	}

	$coupon_code = wc_format_coupon_code( wp_unslash( $request['code'] ) );

	try {
		$this->cart_controller->apply_coupon( $coupon_code );
	} catch ( \WC_REST_Exception $e ) {
		throw new RouteException( $e->getErrorCode(), $e->getMessage(), $e->getCode() ); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
	}

	return rest_ensure_response( $this->schema->get_item_response( $this->cart_controller->get_cart_for_response() ) );
}