如果用户从购物车中删除项目,如何运行功能



我在下面有一段代码,它在将产品添加到购物车后删除了"继续购物"按钮。

add_action( 'woocommerce_after_cart', 'verify_all_products_in_cart' );

function verify_all_products_in_cart() {

$all_products_array  = wc_get_products( array( 'return' => 'ids', 'limit' => -1 ) );
$products_in_cart_array = array();
$visible = 'visible';

// Loop over $cart items
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {    
$products_in_cart_array[]=$cart_item['product_id'];
}

if(count($all_products_array) === count($products_in_cart_array)){
$visible = 'hidden';
}

echo '<style>a[name="hpy_cs_continue"]{ visibility:'. $visible .';}</style>';

}

然而,我注意到wecbsite中有一些操作,我需要运行此代码。如果从购物车中删除了一个项目,并且用户单击了wooccommerce消息中的"撤消",我希望运行上面的功能。

我试图在上面的代码中添加一个动作挂钩:

add_action( 'woocommerce_cart_item_removed', 'verify_all_products_in_cart' );

问题是,当我添加这个时,它会删除购物车的全部内容。所以我不知道这是否是正确的挂钩,但基本上问题是,当商品从购物车中删除或用户在woo-commerce消息中单击undo时,我如何运行function verify_all_products_in_cart()代码?目前,只有当我刷新页面时,将产品添加到购物车中,代码才会运行。

使用'woomocommerce_remove_cart_item'而不是'woococommerce_cart_iitem_removed',因为该挂钩调用是在项目被移除后进行的,因此无法获取有关产品的任何信息

function verify_all_products_in_cart( $cart_item_key, $cart ) {
// your code goes here
};
add_action( 'woocommerce_remove_cart_item', 'verify_all_products_in_cart', 10, 2 );

最新更新