Да, вы можете добавить много условий для получения разных сумм комиссии, но поскольку ваши страны находятся в массиве, вы будете использовать in_array()
php вместо ==
.
.Существует краткий способ при использовании IF
/ ELSE
операторов:
Обычный способ:
if ( 'SE' == $shipping_country )
$fee = 27; // For Sweden
else
$fee = 3; // For others
Сокращенный путь (что делает то же самое) :
// The fee cost will be 27 for Sweden and 3 for other allowed countries
$fee = 'SE' == $shipping_country ? 27 : 3;
Ваш код немного устарел, поэтому вот пересмотренная версия, включая ваши условия:
add_action( 'woocommerce_cart_calculate_fees','wc_add_surcharge', 10, 1 );
function wc_add_surcharge( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$shipping_country = WC()->customer->get_shipping_country();
$subtotal = WC()->cart->subtotal;
// Defined fee amount based on countries
$fee = 'SE' == $shipping_country ? 27 : 3;
// Minimum cart subtotal
$minimum = 300;
if ( $subtotal < $minimum ) {
$cart->add_fee( 'Surcharge', $fee, true );
}
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Проверено и работает.