Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅当未应用优惠券时设置最小订单值_Php_Wordpress_Plugins_Woocommerce_Hook Woocommerce - Fatal编程技术网

Php 仅当未应用优惠券时设置最小订单值

Php 仅当未应用优惠券时设置最小订单值,php,wordpress,plugins,woocommerce,hook-woocommerce,Php,Wordpress,Plugins,Woocommerce,Hook Woocommerce,我正在使用一个片段来设置WooCommerce商店的最小订单值。然而,如果使用优惠券,我会遇到一些问题 例如,最小订单值为500,客户申请的优惠券值为500-这将产生小计0,因此系统将不允许客户购买,因为小计小于最小订单值 因此,我试图重写最小订单值代码段,以便在应用优惠券时不会设置最小订单值 在做了一些研究之后,我发现我应该使用检查优惠券是否已应用!空($woocommerce->cart->applied_优惠券)。然而,这似乎不起作用。我错过了什么 // MINIMUM ORDER AMO

我正在使用一个片段来设置WooCommerce商店的最小订单值。然而,如果使用优惠券,我会遇到一些问题

例如,最小订单值为500,客户申请的优惠券值为500-这将产生小计0,因此系统将不允许客户购买,因为小计小于最小订单值

因此,我试图重写最小订单值代码段,以便在应用优惠券时不会设置最小订单值

在做了一些研究之后,我发现我应该使用
检查优惠券是否已应用!空($woocommerce->cart->applied_优惠券)
。然而,这似乎不起作用。我错过了什么

// MINIMUM ORDER AMOUNT

add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' );

function wc_minimum_order_amount() {
    // Set this variable to specify a minimum order value
    $minimum = 50;

    if ( (WC()->cart->total <= $minimum) && !empty($woocommerce->cart->applied_coupons) ) {

        if( is_cart() ) {

            wc_print_notice( 
                sprintf( 'Your current order total is %s — you must have an order with a minimum of %s to place your order ' , 
                    wc_price( WC()->cart->total ), 
                    wc_price( $minimum )
                ), 'error' 
            );

        } else {

            wc_add_notice( 
                sprintf( 'Your current order total is %s — you must have an order with a minimum of %s to place your order' , 
                    wc_price( WC()->cart->total ), 
                    wc_price( $minimum )
                ), 'error' 
            );

        }
    }
}
//最低订单金额
添加操作(“woocommerce\u checkout\u process”、“wc\u minimum\u order\u amount”);
添加动作(“购物车前的woocommerce”、“wc最小订单金额”);
函数wc\u最小订单金额(){
//设置此变量以指定最小订单值
$minimum=50;
如果((WC()->购物车->购物车总数->应用的优惠券)){
if(is_cart()){
wc_打印通知(
sprintf('您当前的订单总数为%s-您必须有至少%s的订单才能下订单',
wc_价格(wc()->购物车->总计),
wc_价格(最低)
)“错误”
);
}否则{
wc_添加_通知(
sprintf('您当前的订单总数为%s-您必须有至少%s的订单才能下订单',
wc_价格(wc()->购物车->总计),
wc_价格(最低)
)“错误”
);
}
}
}

您可以计算订单总额小于或等于最小金额,如果返回true表示订单总额小于或等于500,则可以显示错误消息

if((WC()->购物车->购物车总数->应用的优惠券)){
//打印错误消息
}否则{
//做你的代码
}

希望它能起作用

也许是这样的事

//最低订单金额
添加操作(“woocommerce\u checkout\u process”、“wc\u minimum\u order\u amount”);
添加动作(“购物车前的woocommerce”、“wc最小订单金额”);
函数wc\u最小订单金额(){
//设置变量
最低$500;
全球商业;
如果((WC()->购物车->购物车总数->应用的优惠券)){
if(is_cart()){
wc_打印通知(
sprintf('NB!Vi发送方ikke bestillinger ud在%s以下,总金额为%s。',
wc_价格(最低),
wc_价格(wc()->购物车->总计)
)“错误”
);
}否则{
wc_添加_通知(
sprintf('NB!Vi发送方ikke bestillinger ud在%s以下,总金额为%s。',
wc_价格(最低),
wc_价格(wc()->购物车->总计)
)“错误”
);
}
}
}

听起来这是正确的选择!但是,我尝试过更新if语句,但没有成功。我更新了有问题的代码,只是为了确保你的意思是这样写的:)是的,我的意思是,但如果它不起作用,我想我们需要得到优惠券代码的金额,并将其与我们设置的最小值进行比较,以获得解决方案。听起来不错吧?比如,如果((WC()->cart->total cart->applicated_优惠券))&($woocommerce->cart->applicated_优惠券->value谢谢你,Mads!不幸的是,这没有任何区别……现在呢?
if ( (WC()->cart->total <= $minimum) && !empty($woocommerce->cart->applied_coupons) ) {
   // PRINT ERROR MESSAGE
} else {
   // DO YOUR CODE
}