我觉得这应该没有那么难,但同时,如果我不能用5分钟的PHP知识完成它,它可能不会像我预期的那么容易。
我在我的functions.PHP中为我的WooCommerce商店创建了以下PHP代码:
add_filter('woocommerce_add_to_cart_fragments', 'new_cart_count_fragments', 10, 1);
function new_cart_count_fragments($fragments) {
if ( WC()->cart->get_cart_contents_count() < 1) {
$fragments['.cart-count-cat'] = '<span class="count-text">Custom message 1</span>';
} elseif ( WC()->cart->get_cart_contents_count() == 1 ) {
$fragments['.cart-count-cat'] = '<span class="count-text">Custom message 2</span>';
} else {
$fragments['.cart-count-cat'] = '<span class="count-text">Custom message 3</span>';
}
return $fragments;
}
代码做了它应该做的事情。它没有被破坏,但我想修改它,但似乎不知道如何修改。
目前,它会查找cart计数,如果它小于1,就会向我的一个CSS类添加一些文本。如果我正好有1个,它将显示第二条消息,如果我的购物车中有1个以上的产品,它会显示最后一条消息。所有这些都是通过碎片动态完成的。
下面是我几个小时以来一直在想的。
我不想在购物车中查找产品的总量,而是想指定一个产品类别,并让代码查看我的购物车中只有多少特定类别的产品
所以我们假设我有类别"x〃;以及";y";。
如果我有一个类别为";x〃;在购物车和另一个类别为";y";并且该代码仅计数类别"0";x〃;,它应该显示";自定义消息2";。
我希望这是有道理的,实际上并没有那么难。非常感谢任何帮助
试试这个,我也刚刚发现了这个希望,它还没有被弃用。
add_filter('woocommerce_add_to_cart_fragments', 'new_cart_count_fragments', 10, 1);
function new_cart_count_fragments($fragments) {
$product_counter = 0;
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
// replace 'x' with your category's slug
if ( has_term( 'x', 'product_cat', $product->id ) ) {
$product_counter++;
}
}
if ( $product_counter < 1) {
$fragments['.cart-count-cat'] = '<span class="count-text">Custom message 1</span>';
} elseif ( $product_counter == 1 ) {
$fragments['.cart-count-cat'] = '<span class="count-text">Custom message 2</span>';
} else {
$fragments['.cart-count-cat'] = '<span class="count-text">Custom message 3</span>';
}
return $fragments;
}