woocommerce_store_api_add_to_cart_data filter-hookWC 8.8.0

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

CartAddItem::get_route_post_response()
woocommerce_store_api_add_to_cart_data
woocommerce/src/StoreApi/Routes/V1/CartAddItem.php 109-118
$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
);

Where the hook is used in WooCommerce

Usage not found.