私は現在 woocommerce 用のプラグインを開発しており、カートの合計が 2 つの値の間にある場合に割引コードを追加する次のコードがあります。
add_action('woocommerce_before_cart', 'woobd_add_discount_if_enabled');
function woobd_add_discount_if_enabled()
{
global $woocommerce;
if ($woocommerce->cart->cart_contents_total >= 10
&& $woocommerce->cart->cart_contents_total <= 100
) {
$woocommerce->cart->add_discount('layer1_discount');
} else {
$woocommerce->cart->remove_coupons('layer1_discount');
$woocommerce->cart->calculate_totals();
}
}
上記は正常に機能しますが、別の 2 つの値を追加するこのような別の if ステートメントを追加したいと思います。
add_action('woocommerce_before_cart', 'woobd_add_discount_if_enabled');
function woobd_add_discount_if_enabled()
{
global $woocommerce;
if ($woocommerce->cart->cart_contents_total >= 10
&& $woocommerce->cart->cart_contents_total <= 100
) {
$woocommerce->cart->add_discount('layer1_discount');
} else {
$woocommerce->cart->remove_coupons('layer1_discount');
$woocommerce->cart->calculate_totals();
}
if ($woocommerce->cart->cart_contents_total >= 100
&& $woocommerce->cart->cart_contents_total <= 200
) {
$woocommerce->cart->add_discount('layer2_discount');
} else {
$woocommerce->cart->remove_coupons('layer2_discount');
$woocommerce->cart->calculate_totals();
}
}
何らかの理由で、2 番目の if ステートメントのみが検出され、最初のステートメントは完全に無視されます。上記の内容で何かおかしくないですか?