我有这个功能,如果用户是客人,我只想设置账单国家,否则我们不应该更改账单国家,而是将账单国家作为用户在 WooCommerce 的个人资料中的内容。
add_filter( 'default_checkout_billing_country', 'bbloomer_change_default_checkout_country' );
function bbloomer_change_default_checkout_country() {
return 'US';
}
最佳答案
您可以使用 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';
};
};
如果你能让它工作,请告诉我!
关于wordpress - Woocommerce 如何仅在用户未登录时设置 default_checkout_billing_country,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69074295/