Php 如何使用美元金额变量在电子商务中应用自动折扣
在我试图找到基于美元金额的自动优惠券的解决方案时,我遇到了以下问题。首先是规则:Php 如何使用美元金额变量在电子商务中应用自动折扣,php,wordpress,woocommerce,shopping-cart,Php,Wordpress,Woocommerce,Shopping Cart,在我试图找到基于美元金额的自动优惠券的解决方案时,我遇到了以下问题。首先是规则: 如果美元金额低于53,什么也不做 如果美元金额大于53但小于90,则应用“couponX” 如果美元金额大于90,则应用“couponY” 我已经能够让代码使用代码的第二(2)条规则。但是,第三条规则将不适用。下面是我的代码。有什么想法吗 // Add coupon when user views cart before checkout add_action('woocommerce_before_cart_ta
// Add coupon when user views cart before checkout
add_action('woocommerce_before_cart_table', 'add_coupon_automatically');
add_action('woocommerce_before_checkout_form', 'add_coupon_automatically');
// Check if function? create it.
if (!function_exists('add_coupon_automatically')) {
function add_coupon_automatically() {
global $woocommerce;
$eleven = '20plus';
$four = '10plus';
$eleven_minimum = 179;
$four_minimum = 89;
if($woocommerce->cart->get_cart()->cart_contents_total>$eleven_minimum) {
// Apply 20plus
if (!$woocommerce->cart->add_discount( sanitize_text_field( $eleven )))
$woocommerce->add_message('20 Plus coupon (11%) automatically applied!');
$woocommerce->show_messages();
//Recalculate totals
$woocommerce->cart->calculate_totals();
} elseif ($woocommerce->cart->get_cart()->cart_contents_total<$eleven_minimum
&& $woocommerce->cart->get_cart()->cart_contents_total>$four_minimum) {
// Apply 10plus
if (!$woocommerce->cart->add_discount( sanitize_text_field( $four )))
$woocommerce->add_message('10 Plus coupon (4%) automatically applied!');
$woocommerce->show_messages();
//Recalculate totals
$woocommerce->cart->calculate_totals();
}
}
}
//用户在结账前查看购物车时添加优惠券
添加操作(“在购物车表之前添加商品”,“自动添加优惠券”);
添加操作(“在结帐前添加商业”、“自动添加优惠券”);
//检查功能是否正常?创造它。
如果(!函数_存在('自动添加_优惠券_')){
功能自动添加优惠券(){
全球商业;
十一元=二十元以上;
四美元=10美元以上;
最低11美元=179美元;
$4_最低=89;
如果($woocommerce->cart->get_cart()->cart_contents_total>$11_minimum){
//申请20多个
如果(!$woocommerce->cart->添加折扣(清理文本字段($11)))
$woocommerce->add_消息('20+自动应用优惠券(11%));
$woocommerce->show_messages();
//重新计算总数
$woocommerce->cart->calculate_totals();
}elseif($WOOMerce->cart->get_cart()->cart_contents\u totalcart->get_cart()->cart_contents\u total>最少四美元){
//申请10+以上
如果(!$woocommerce->cart->添加折扣(清理文本字段($4)))
$woocommerce->add_消息('10+自动应用优惠券(4%));
$woocommerce->show_messages();
//重新计算总数
$woocommerce->cart->calculate_totals();
}
}
}
做得不对。似乎最好的方法是基于购物车项目数量而不是价格
新规则:
child\u主题/woocommerce/cart.php
global $count_cart_quantity;
$count_cart_quantity = $woocommerce->cart->cart_contents_count;
add_action('woocommerce_before_cart_table', 'discount_20');
function discount_20() {
global $woocommerce;
global $count_cart_quantity;
if ( $count_cart_quantity > 19 ) {
$coupon_code = '20plus';
if (!$woocommerce->cart->add_discount(sanitize_text_field($coupon_code))) {
$woocommerce->show_messages();
}
echo '<div classs"woocommerce_message"><strong>
You qualified for an 11% discount and it has been applied!</strong>
</div>';
}
}
add_action('woocommerce_before_cart_table', 'discount_10');
function discount_10() {
global $woocommerce;
global $count_cart_quantity;
if ( $count_cart_quantity < 20 && $count_cart_quantity > 9 ) {
$coupon_code = '10plus';
if (!$woocommerce->cart->add_discount(sanitize_text_field($coupon_code))) {
$woocommerce->show_messages();
}
echo '<div classs"woocommerce_message"><strong>
You qualified for an 4% discount and it has been applied!</strong>
</div>';
}
}
add_action('woocommerce_在购物车_表之前,'折扣_20');
功能折扣(u 20){
全球商业;
全局$count\u cart\u数量;
如果($count\u cart\u quantity>19){
$优惠券代码='20plus';
如果(!$woocommerce->cart->添加折扣(清理文本字段($优惠券代码))){
$woocommerce->show_messages();
}
回声'
您有资格享受11%的折扣,并且已申请!
';
}
}
添加动作(“购物车表前的woocommerce”和“折扣10”);
功能折扣_10(){
全球商业;
全局$count\u cart\u数量;
如果($count\u cart\u数量<20&$count\u cart\u数量>9){
$优惠券代码='10plus';
如果(!$woocommerce->cart->添加折扣(清理文本字段($优惠券代码))){
$woocommerce->show_messages();
}
回声'
您有资格享受4%的折扣,并且已申请!
';
}
}
$woocommerce->cart->get_cart()->cart_contents_total
到
然后你的功能就可以工作了
$woocommerce->cart->cart_contents_total