php WooCommerce:根据条件选择性地填充购物车页面

q3qa4bjr  于 2023-01-24  发布在  PHP
关注(0)|答案(1)|浏览(103)

我正在尝试创建一个自定义购物车页面函数,该函数首先检查所有“已添加到购物车的项目”,但基于某些条件选择并仅使用其中的一些项目填充购物车页面。现在,未选择的购物车项目虽然在购物车中不可见,但仍保留在数据库中,如果满足另一个条件,将被拉取。
我遇到了过滤器woocommerce_cart_item_visible来“隐藏”购物车中的一些购物车项目。它的工作原理和预期的一样,但只是“隐藏”产品,同时仍然将其金额添加到购物车总数中。
我也可以尝试WC()->cart->remove_cart_item( $cart_item_key );,但它也会从数据库中删除该项目。
我怎样才能做到这一点?

shstlldc

shstlldc1#

这里有一些你可以尝试:

add_action( 'woocommerce_before_calculate_totals', 'conditionally_remove_items_from_cart' );
function conditionally_remove_items_from_cart( $cart ) {
    if ( ! is_admin() ) {
        foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
            // get the product id
            $product_id = $cart_item['product_id'];

            // get the quantity
            $quantity = $cart_item['quantity'];

            // get the subtotal
            $subtotal = $cart_item['line_subtotal'];

            // check your conditions here
            if ( $condition1 && $condition2 ) {
                $cart->remove_cart_item( $cart_item_key );
            }
        }
    }
}

相关问题