woocommerce_store_api_add_to_cart_data
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.
Usage
add_filter( 'woocommerce_store_api_add_to_cart_data', 'wp_kama_woocommerce_store_api_add_to_cart_data_filter', 10, 2 ); /** * Function for `woocommerce_store_api_add_to_cart_data` filter-hook. * * @param array $add_to_cart_data An array of cart item data. * @param $request * * @return array */ function wp_kama_woocommerce_store_api_add_to_cart_data_filter( $add_to_cart_data, $request ){ // filter... return $add_to_cart_data; }
- $add_to_cart_data(array)
- An array of cart item data.
- $request
- -
Changelog
Since 8.8.0 | Introduced. |
Where the hook is called
woocommerce_store_api_add_to_cart_data
woocommerce/src/StoreApi/Routes/V1/CartAddItem.php 116-125
$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 );