php 购物车列表显示,php-当购物车中有2种特定产品类别时,显示自定义消息

在Woocommerce中,当两个类别的产品都在购物车中时,我试图使该功能在购物车页面上方显示一条消息.

我正在尝试修改在这里找到的代码,但是当添加其中一个类别而不是两个类别时,它已经显示了该消息:

add_action( 'woocommerce_before_cart', 'allclean_add_checkout_content', 12 );

function allclean_add_checkout_content() {

$special_cat2 = 'test-cat2';

$special_cat3 = 'test-cat3';

$bool = false;

foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {

$item = $cart_item['data'];

if ( has_term( $special_cat2 && $special_cat3, 'product_cat', $item->id ) )

$bool = true;

}

if ($bool)

echo '

Warning! Beware of combining these materials!
';

}

解决方法:

您的代码中存在一些错误,例如has_term()不支持2个用&&并从购物车中获取用于定制分类法的产品ID作为产品类别,您需要$cart_item [‘product_id’]来代替,这也适用于产品变体……

为了使这两个产品类别都在购物车中时起作用,请改用以下方法:

add_action( 'woocommerce_before_cart', 'allclean_add_checkout_content', 12 );

function allclean_add_checkout_content() {

$product_cats = array('test-cat2','test-cat3');

$found1 = $found2 = false;

foreach ( WC()->cart->get_cart() as $cart_item ) {

// The needed working product ID is $cart_item['product_id'] <====

if ( has_term( $product_cats[0], 'product_cat', $cart_item['product_id'] ) )

$found1 = true;

elseif ( has_term( $product_cats[1], 'product_cat', $cart_item['product_id'] ) )

$found2 = true;

}

if ( $found1 && $found2 )

echo '

Warning! Beware of combining these materials!
';

}

代码进入您的活动子主题(或活动主题)的function.php文件中.经过测试和工作.

标签:cart,woocommerce,custom-taxonomy,wordpress,php

来源: https://codeday.me/bug/20191025/1927294.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值