如何在购物车中隐藏基于产品阵列或类别的 DIV



就像标题状态一样,我试图隐藏基于产品数组或/cart中的类别的div。

我们有一个名为"DRTV"的类别。如果该类别的产品在购物车中,我希望它隐藏"免费运输"类。

我从Bloomer找到了一些我修改过的PHP:

function bbloomer_find_id_in_cart() {
    global $woocommerce;     
    foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values) {
        $product = $values['data'];
        if ( in_array( 'DRTV', $categories ) ) {
            .freeship {display:none}
        }
    }
}

有人可以帮助我走上正确的道路吗?

最简单的方法(如 Tagr 所提到的(是通过 body_class 操作/过滤器向主体添加一个类,并根据该主体类将其隐藏在 CSS 中。 下面是一个工作示例。

PHP 看起来像这样:

add_filter( 'body_class', 'check_for_drtv' );
function check_for_drtv( $classes ) {
    $drtv_check = false;
    foreach ( WC()->cart->get_cart() as $key => $cart_item ) {
        $product = $cart_item['data'];
        if ( has_term( 'DRTV', 'product_cat', $product->id ) ) {
            $drtv_check = true;
            break;
        }
    }
    if ( $drtv_check ) {
        $classes[] = 'drtv-in-cart';
    }
    return $classes;
}

然后你的CSS就是:

body.drtv-in-cart .freeship {
    display: none;
}

我是从手机和内存中打字的,很抱歉没有提供确切的代码行,但是,逻辑将分 3 个步骤进行。

  1. 挂接到"wp"操作以检查WC((->购物车是否有DRTV类别的任何产品。
  2. 如果找到,请在 body_class(( 函数中添加一个过滤器,该过滤器通常用于<body>标签。基本上你想添加一个新类,比如"隐藏免费送货">
  3. 然后在您的CSS文件中添加代码行,以便在正文具有"隐藏免费送货"类时隐藏带有免费送货类的产品。

问候,T。

相关内容

  • 没有找到相关文章

最新更新