我在自定义的WooCommerce网站上创建了一个功能。这在前端工作得很好,但是wp-admin会中断。 Wp-admin显示http-500错误。
这是功能:
// Set currency based on visitor country
function geo_client_currency($client_currency) {
$country = WC()->customer->get_shipping_country();
switch ($country) {
case 'GB': return 'GBP'; break;
default: return 'EUR'; break;
}
}
add_filter('wcml_client_currency','geo_client_currency');
我已将wp-debug设置为true,它将抛出此消息:
Fatal error: Uncaught Error: Call to a member function get_shipping_country() on null in
所以它必须做一些事情:$ country = WC() - > customer-> get_shipping_country();但我找不到它。 也许有人可以帮助我。
先谢谢。
答案 0 :(得分:0)
customer
属性未设置为后端WC_Customer
的实例,因此您无法调用get_shipping_country()
方法。
在使用之前检查customer
是否为空(默认)。
function geo_client_currency( $client_currency ) {
if ( WC()->customer ) {
$country = WC()->customer->get_shipping_country();
/**
* Assuming more are going to be added otherwise a switch is overkill.
* Short example: $client_currency = ( 'GB' === $country ) ? 'GBP' : 'EUR';
*/
switch ( $country ) {
case 'GB':
$client_currency = 'GBP';
break;
default:
$client_currency = 'EUR';
}
}
return $client_currency;
}
add_filter( 'wcml_client_currency', 'geo_client_currency' );