Automattic\WooCommerce\StoreApi\Schemas\V1
CartSchema::get_item_response()
Convert a woo cart into an object suitable for the response.
Method of the class: CartSchema{}
No Hooks.
Return
Array
.
Usage
$CartSchema = new CartSchema(); $CartSchema->get_item_response( $cart );
- $cart(\WC_Cart) (required)
- Cart class instance.
CartSchema::get_item_response() CartSchema::get item response code WC 9.5.1
public function get_item_response( $cart ) { $controller = new CartController(); // Get cart errors first so if recalculations are performed, it's reflected in the response. $cart_errors = $this->get_cart_errors( $cart ); // The core cart class will not include shipping in the cart totals if `show_shipping()` returns false. This can // happen if an address is required, or through the use of hooks. This tracks if shipping has actually been // calculated so we can avoid returning costs and rates prematurely. $has_calculated_shipping = $cart->show_shipping(); // Get shipping packages to return in the response from the cart. $shipping_packages = $has_calculated_shipping ? $controller->get_shipping_packages() : []; // Get visible cross sells products. $cross_sells = array_filter( array_map( 'wc_get_product', $cart->get_cross_sells() ), 'wc_products_array_filter_visible' ); return [ 'items' => $this->get_item_responses_from_schema( $this->item_schema, $cart->get_cart() ), 'coupons' => $this->get_item_responses_from_schema( $this->coupon_schema, $cart->get_applied_coupons() ), 'fees' => $this->get_item_responses_from_schema( $this->fee_schema, $cart->get_fees() ), 'totals' => (object) $this->prepare_currency_response( $this->get_totals( $cart ) ), 'shipping_address' => (object) $this->shipping_address_schema->get_item_response( wc()->customer ), 'billing_address' => (object) $this->billing_address_schema->get_item_response( wc()->customer ), 'needs_payment' => $cart->needs_payment(), 'needs_shipping' => $cart->needs_shipping(), 'payment_requirements' => $this->extend->get_payment_requirements(), 'has_calculated_shipping' => $has_calculated_shipping, 'shipping_rates' => $this->get_item_responses_from_schema( $this->shipping_rate_schema, $shipping_packages ), 'items_count' => $cart->get_cart_contents_count(), 'items_weight' => wc_get_weight( $cart->get_cart_contents_weight(), 'g' ), 'cross_sells' => $this->get_item_responses_from_schema( $this->cross_sells_item_schema, $cross_sells ), 'errors' => $cart_errors, 'payment_methods' => array_values( wp_list_pluck( WC()->payment_gateways->get_available_payment_gateways(), 'id' ) ), self::EXTENDING_KEY => $this->get_extended_data( self::IDENTIFIER ), ]; }