如何强制Woocommerce中的最低费用,但不限制结账?

时间:2014-11-13 09:51:02

标签: woocommerce

我想知道如何在Wordpress的电子商务系统Woocommerce中强制支付最低费用。如果最低价为100美元,购物车中的物品总价仅为23美元,则该人可以结账,但他们将支付100美元。这不仅需要反映结帐,还需要反映订单发票和任何其他相关字段。

我可以使用PHP,但我不熟悉Woocommerce系统。从逻辑上讲,我预测我们可以修改总计算器......如果$ total是> = 100 {定期进行}其他{$ total = 100}。或者可以根据最小费用和当前购物车总数之间的差异动态地将商品添加到购物车。我只是担心我可能会因为没有充分考虑整个网站可能需要修改的方式而搞得一团糟,因为总金额会出现在很多地方。

注意:我不是在谈论不让人们结账,如果他们没有达到最低订单金额。有插件或我可以使用JavaScript来禁用结帐按钮。

1 个答案:

答案 0 :(得分:1)

我正在回答我自己的问题:

要强制执行此最低费用,您必须使用几个woocommerce部分。首先是能够为您的总额添加额外的行(如附加费)。第二是获得小计金额。

在您的主题function.php中,添加此代码段(original on Github感谢consonr at Github

//ADD CUSTOM FEE
function woo_add_cart_fee() {

    global $woocommerce;

    $subt = $woocommerce->cart->subtotal;

    if ($subt < 100 ) { 
        $surcharge = 100 - $subt;
    } else { 
        $surcharge = 0;
    }   

$woocommerce->cart->add_fee( __('Surcharge', 'woocommerce'), $surcharge );

}

add_action( 'woocommerce_cart_calculate_fees', 'woo_add_cart_fee' );

我的最低费用为100. 100必须作为小计,即交付费之前。 $ woocommerce-&gt; cart-&gt;小计是存储小计金额的位置。

以上代码段还会为您的购物车和结帐添加额外的一行。 “附加费”的价值可以是固定金额,也可以将其作为变量。在这种情况下,我把它变成了一个变量($附加费)。由于代码段使用了小计变量,因此它是动态更改 - 每次更新购物车时,附加费都会重新计算。

附加费将是最低费用减去小计。这只会在小计小于最低费用时发生,否则我们最终会收取负费用。

在后续设计方面,您还应该有一条购物车消息,通知人们附加费。如果小计符合最低费用,您还可以考虑使用javascript完全隐藏附加费部分。

适用于woocommerce 2.2版。