/home/techb158/balacoffee.com/wp-content/plugins/woocommerce/src/StoreApi/Routes/V1
NameSizeModeActions
Agentic/-0755rm
AI/-0755rm
AbstractCartRoute.php97650644editdlrm
AbstractRoute.php100010644editdlrm
AbstractTermsRoute.php52070644editdlrm
Batch.php38610644editdlrm
Cart.php13710644editdlrm
CartAddItem.php47400644editdlrm
CartApplyCoupon.php21150644editdlrm
CartCoupons.php39850644editdlrm
CartCouponsByCode.php27280644editdlrm
CartExtensions.php19730644editdlrm
CartItems.php39070644editdlrm
CartItemsByKey.php41720644editdlrm
CartRemoveCoupon.php25660644editdlrm
CartRemoveItem.php26460644editdlrm
CartSelectShippingRate.php36900644editdlrm
CartUpdateCustomer.php101780644editdlrm
CartUpdateItem.php25490644editdlrm
Checkout.php328880644editdlrm
CheckoutOrder.php80990644editdlrm
Order.php22910644editdlrm
Patterns.php29270644editdlrm
ProductAttributes.php16330644editdlrm
ProductAttributesById.php20500644editdlrm
ProductAttributeTerms.php22310644editdlrm
ProductBrands.php13930644editdlrm
ProductBrandsById.php24440644editdlrm
ProductCategories.php13840644editdlrm
ProductCategoriesById.php20240644editdlrm
ProductCollectionData.php73060644editdlrm
ProductReviews.php68660644editdlrm
Products.php155360644editdlrm
ProductsById.php21860644editdlrm
ProductsBySlug.php30160644editdlrm
ProductTags.php12650644editdlrm
Edit: /home/techb158/balacoffee.com/wp-content/plugins/woocommerce/src/StoreApi/Routes/V1/CartAddItem.php (4740B)
\WP_REST_Server::CREATABLE, 'callback' => [ $this, 'get_response' ], 'permission_callback' => '__return_true', 'args' => [ 'id' => [ 'description' => __( 'The cart item product or variation ID.', 'woocommerce' ), 'type' => 'integer', 'context' => [ 'view', 'edit' ], 'sanitize_callback' => 'absint', ], 'quantity' => [ 'description' => __( 'Quantity of this item to add to the cart.', 'woocommerce' ), 'type' => 'number', 'context' => [ 'view', 'edit' ], 'arg_options' => [ 'sanitize_callback' => 'wc_stock_amount', ], ], 'variation' => [ 'description' => __( 'Chosen attributes (for variations).', 'woocommerce' ), 'type' => 'array', 'context' => [ 'view', 'edit' ], 'items' => [ 'type' => 'object', 'properties' => [ 'attribute' => [ 'description' => __( 'Variation attribute name.', 'woocommerce' ), 'type' => 'string', 'context' => [ 'view', 'edit' ], ], 'value' => [ 'description' => __( 'Variation attribute value.', 'woocommerce' ), 'type' => 'string', 'context' => [ 'view', 'edit' ], ], ], ], ], ], ], 'schema' => [ $this->schema, 'get_public_item_schema' ], 'allow_batch' => [ 'v1' => true ], ]; } /** * Handle the request and return a valid response for this endpoint. * * @throws RouteException On error. * @param \WP_REST_Request $request Request object. * @return \WP_REST_Response */ protected function get_route_post_response( \WP_REST_Request $request ) { // Do not allow key to be specified during creation. if ( ! empty( $request['key'] ) ) { throw new RouteException( 'woocommerce_rest_cart_item_exists', esc_html__( 'Cannot create an existing cart item.', 'woocommerce' ), 400 ); } /** * Filters cart item data sent via the API before it is passed to the cart controller. * * This hook filters cart items. It allows the request data to be changed, for example, quantity, or * supplemental cart item data, before it is passed into CartController::add_to_cart and stored to session. * * CartController::add_to_cart only expects the keys id, quantity, variation, and cart_item_data, so other values * may be ignored. CartController::add_to_cart (and core) do already have a filter hook called * woocommerce_add_cart_item, but this does not have access to the original Store API request like this hook does. * * @since 8.8.0 * * @param array $add_to_cart_data An array of cart item data. * @return array */ $add_to_cart_data = apply_filters( 'woocommerce_store_api_add_to_cart_data', array( 'id' => $request['id'], 'quantity' => $request['quantity'], 'variation' => $request['variation'], 'cart_item_data' => [], ), $request ); $item_id = $this->cart_controller->add_to_cart( $add_to_cart_data ); $cart = $this->cart_controller->get_cart_instance(); $cart_item = $cart->get_cart_item( $item_id ); if ( ! empty( $cart_item ) ) { $product_id = $cart_item['variation_id'] ? $cart_item['variation_id'] : $cart_item['product_id']; $quantity = $add_to_cart_data['quantity'] ?? $cart_item['quantity']; /** * Fires when an item is added to the cart from a user request. * * @param int $product_id Product ID (variation ID for variable products). * @param int|float $quantity Quantity added to the cart. * * @since 10.6.0 */ do_action( 'internal_woocommerce_cart_item_added_from_user_request', $product_id, $quantity ); } $response = rest_ensure_response( $this->schema->get_item_response( $this->cart_controller->get_cart_for_response() ) ); $response->set_status( 201 ); return $response; } }