就像标题状态一样,我试图隐藏基于产品数组或/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 个步骤进行。
- 挂接到"wp"操作以检查WC((->购物车是否有DRTV类别的任何产品。
- 如果找到,请在 body_class(( 函数中添加一个过滤器,该过滤器通常用于
<body>
标签。基本上你想添加一个新类,比如"隐藏免费送货"> - 然后在您的CSS文件中添加代码行,以便在正文具有"隐藏免费送货"类时隐藏带有免费送货类的产品。
问候,T。