Woocommerce如何仅在用户未登录时设置default_checkout_billing_country
Posted
技术标签:
【中文标题】Woocommerce如何仅在用户未登录时设置default_checkout_billing_country【英文标题】:Woocommerce how to set default_checkout_billing_country only if user is not logged in 【发布时间】:2021-11-03 12:41:52 【问题描述】:我有这个功能,如果用户是访客,我只想设置帐单国家,否则我们不应该更改帐单国家,而是将帐单国家作为用户在 WooCommerce 中的个人资料中的内容。
add_filter( 'default_checkout_billing_country', 'bbloomer_change_default_checkout_country' );
function bbloomer_change_default_checkout_country()
return 'US';
【问题讨论】:
developer.wordpress.org/reference/functions/is_user_logged_in 【参考方案1】:你可以使用is_user_logged_in
:
add_filter( 'default_checkout_billing_country', 'bbloomer_change_default_checkout_country' );
function bbloomer_change_default_checkout_country($default)
if(is_user_logged_in())
return $default;
else
return 'US';
;
;
但是,有时,由于缓存问题,is_user_logged_in
不起作用。在这种情况下,您可以使用global $current_user
。
add_filter( 'default_checkout_billing_country', 'bbloomer_change_default_checkout_country' );
function bbloomer_change_default_checkout_country($default)
global $current_user;
if($current_user->ID)
return $default;
else
return 'US';
;
;
让我知道你是否可以让它工作!
【讨论】:
以上是关于Woocommerce如何仅在用户未登录时设置default_checkout_billing_country的主要内容,如果未能解决你的问题,请参考以下文章
如何在 WooCommerce 中为未登录用户禁用特定插件?