WooCommerce 在添加到购物车之前重置数量(以防止添加)

WooCommerce reset quantity before adding to cart (to prevent addition)

当我将 3 的产品数量添加到购物车时,一切都很好。

但是在向购物车中添加了 5 个数量后,我希望购物车中的数量为 5 而不是 8

我希望最后发送的数量覆盖之前的数量,而不是添加。

此外,我希望它仅在特定产品 ID 上表现得像这样。

哪个钩子适合这个?

您可以使用 woocommerce_add_to_cart 钩子

在此示例中,使用了产品 ID 30

function action_woocommerce_add_to_cart ( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ) {
    // Get current product id
    $product_id = $variation_id > 0 ? $variation_id : $product_id;

    // Specific product ID, compare
    if ( $product_id == 30 ) {
        // Set quantity
        WC()->cart->set_quantity( $cart_item_key, $quantity );      
    }
}
add_action( 'woocommerce_add_to_cart', 'action_woocommerce_add_to_cart', 10, 6 );