[英]Allow add to cart for specific products based on cart total in WooCommerce
In woocommerce, I am trying to find a way to only allow a product to be added a to cart only when a specific cart total amount is reached.在 woocommerce 中,我试图找到一种方法,仅当达到特定的购物车总量时才允许将产品添加到购物车。
Example: We want to sell a bumper sticker for $1 , but only if a user already has $25 worth of other products already in the cart.示例:我们想以1 美元的价格出售保险杠贴纸,但前提是用户的购物车中已有价值 25美元的其他产品。 This is similar to Amazon's "add on" feature.
这类似于亚马逊的“附加”功能。 However I can't find a similar WooCommerce plugin or function.
但是我找不到类似的 WooCommerce 插件或功能。
I have tried yet some code without success… Any help will be appreciated.我已经尝试了一些代码但没有成功......任何帮助将不胜感激。
Can be done with a custom function hooked in woocommerce_add_to_cart_validation
filter hook, where you will define:可以使用挂在
woocommerce_add_to_cart_validation
过滤器钩子中的自定义函数来完成,您将在其中定义:
It will avoid for those defined products to be added to cart (displaying a custom notice) until that specific cart amount is reached.在达到特定的购物车数量之前,它将避免将那些定义的产品添加到购物车(显示自定义通知)。
The code:编码:
add_filter( 'woocommerce_add_to_cart_validation', 'wc_add_on_feature', 20, 3 );
function wc_add_on_feature( $passed, $product_id, $quantity ) {
// HERE define one or many products IDs in this array
$products_ids = array( 37, 27 );
// HERE define the minimal cart amount that need to be reached
$amount_threshold = 25;
// Total amount of items in the cart after discounts
$cart_amount = WC()->cart->get_cart_contents_total();
// The condition
if( $cart_amount < $amount_threshold && in_array( $product_id, $products_ids ) ){
$passed = false;
$text_notice = __( "Cart amount need to be up to $25 in order to add this product", "woocommerce" );
wc_add_notice( $text_notice, 'error' );
}
return $passed;
}
Code goes in function.php file of your active child theme (active theme).代码位于活动子主题(活动主题)的 function.php 文件中。
Tested and works.测试和工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.