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