获取活跃货币和未设置国家 WooCommerce

时间:2021-05-11 08:31:43

标签: php wordpress woocommerce currency wpml

我将 WooCommerce 与 WooCommerce 多语言一起使用。 所以我使用不同的货币。我想根据当前使用的货币取消帐单和送货国家/地区。

我发现此功能可以取消设置国家/地区:

function woo_remove_specific_country( $country ) {
   unset($country["US"]);
   unset($country["GB"]);

return $country; 
}
add_filter( 'woocommerce_countries', 'woo_remove_specific_country', 10, 1 );

但是我想改变这个函数所以里面有条件逻辑。因此,例如当 EUR 是当前活动货币 US 并且 GB 必须是未设置的国家/地区时。如果 GBP 是当前的活动货币,则只需取消设置 US

所以我找到了这个来获取当前的活跃货币:

$currency = get_woocommerce_currency();

当使用它在短代码中测试它时,它为我提供了正确的活动货币。

所以我重写了函数:

function woo_remove_specific_country( $country ) {
    $currency = get_woocommerce_currency();
    if ($currency == 'EUR') {
        unset($country["US"]);
        unset($country["GB"]);
    }
    if ($currency == 'GBP') {
        unset($country["US"]);
    }
    return $country; 
}
add_filter( 'woocommerce_countries', 'woo_remove_specific_country', 10, 1 );

但这行不通。看起来它总是采用带有 EUR 的 if 的方式,而当时我的货币是 GBP

0 个答案:

没有答案