从 WooCommerce 中的购物车中删除特定产品变体

Remove specific product variation from cart in WooCommerce

我想从 wordpress、woocommerce 的购物车中删除变体产品。

我可以删除简单产品,但不能删除变体产品。 使用此代码,我可以删除一个简单的产品。 我尝试同时传递变体 ID 和父变体 ID。 我不知道为什么它不起作用,如果有人能提供线索,我将不胜感激。

$product_cart_id = WC()->cart->generate_cart_id( $aCurrentUserDataItem->id );
$cart_item_key = WC()->cart->find_product_in_cart( $product_cart_id );
( $cart_item_key ) WC()->cart->remove_cart_item( $cart_item_key );

您还可以使用如下所示的 foreach 循环来定位并从购物车中删除特定变体 ID:

$remove_variation_id = 41; // The variation id to remove

// loop through cart items
foreach ( WC()->cart->get_cart() as $item_key => $item ) {
    // If the targeted variation id is in cart
    if ( $item['variation_id'] == $remove_variation_id ) {
        WC()->cart->remove_cart_item( $item_key ); // we remove it
        break; // stop the loop
    }
}

已测试并有效。