允许根据WooCommerce中的购物车总数添加购物车中的特定产品

时间:2018-02-12 18:21:09

标签: php wordpress woocommerce cart product

在woocommerce中,我试图找到一种方法,只有在达到特定购物车总金额时才允许将产品添加到购物车。

示例:我们希望为 $ 1 销售保险杠贴纸,但前提是用户已经拥有 $ 25 价值的其他产品购物车。这类似于亚马逊的“添加”功能。但是我找不到类似的WooCommerce插件或功能。

我已经尝试了一些代码而没有成功......任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

可以使用挂钩在woocommerce_add_to_cart_validation过滤器挂钩中的自定义函数来完成,您可以在其中定义:

  • 产品ID(或多个产品ID)。
  • 要达到的门槛数量。

这将避免将那些已定义的产品添加到购物车(显示自定义通知),直到达到特定的购物车金额。

代码:

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;
}

代码进入活动子主题(活动主题)的function.php文件。

经过测试和工作。