我根据Checkout页面中的Country选项编写了一个代码来更改WooCommerce货币符号。以下是代码:
add_filter('woocommerce_currency_symbol', 'change_existing_currency_symbol', 10, 2);
function change_existing_currency_symbol( $currency_symbol, $currency ) {
global $post, $woocommerce;
$my_country = WC()->customer->get_shipping_country();
/*echo $my_country;
echo "<br>";
echo $country;*/
switch( $my_country ) {
case 'GB': $currency_symbol = '£';
break;
case 'NZ': $currency_symbol = '$';
break;
case 'IE': $currency_symbol = '€';
break;
default:
$currency_symbol = '$';
}
return $currency_symbol;
}
代码工作正常,当从Checkout页面选择Country时,符号显示良好。但是,我们发现我们无法访问管理部分,因为它说:
此页面无效 www.XXXXXX-XX.com目前无法处理此请求。 HTTP ERROR 500
当我删除代码$my_country = WC()->customer->get_shipping_country();
时,管理面板会打开,但未显示符号。
寻求你的帮助。
答案 0 :(得分:1)
使用条件检查,使其仅在结帐页面上运行代码。
add_filter('woocommerce_currency_symbol', 'change_existing_currency_symbol', 10, 2);
function change_existing_currency_symbol( $currency_symbol, $currency ) {
if ( is_checkout() ) {
$my_country = WC()->customer->get_shipping_country();
switch( $my_country ) {
case 'GB':
$currency_symbol = '£';
break;
case 'NZ':
$currency_symbol = '$';
break;
case 'IE':
$currency_symbol = '€';
break;
default:
$currency_symbol = '$';
}
}
return $currency_symbol;
}