Automattic\WooCommerce\StoreApi\Routes\V1

AbstractCartRoute::load_cart_session │ protected │ WC 1.0

Load the cart session before handling responses.

Method of the class: AbstractCartRoute{}

No Hooks.

Returns

null. Nothing (null).

Usage

// protected - for code of main (parent) or child class
$result = $this->load_cart_session( $request );
$request(WP_REST_Request) (required)
Request object.

AbstractCartRoute::load_cart_session() code WC 11.2.2

protected function load_cart_session( \WP_REST_Request $request ) {
	if ( WC()->cart instanceof \WC_Cart && ! \WC_Cart_Session::are_updates_enabled_for_cart( WC()->cart ) ) {
		throw new \RuntimeException( 'The cart is unavailable after its session failed to load.' );
	}

	try {
		if ( $this->has_cart_token( $request ) ) {
			// Overrides the core session class.
			add_filter(
				'woocommerce_session_handler',
				function () {
					return SessionHandler::class;
				}
			);
		}
		$this->cart_controller->load_cart();
	} catch ( \Throwable $error ) {
		if ( WC()->cart instanceof \WC_Cart ) {
			\WC_Cart_Session::set_updates_enabled_for_cart( WC()->cart, false );
		}

		throw $error;
	}

	$this->cart_controller->normalize_cart();
}