3

我有这个功能,如果用户是客人,我只想设置计费国家,否则我们不应该更改计费国家,而是将计费国家作为用户在 WooCommerce 中的个人资料中的内容。

add_filter( 'default_checkout_billing_country', 'bbloomer_change_default_checkout_country' );
 
function bbloomer_change_default_checkout_country() {
  return 'US'; 
}
4

1 回答 1

3

你可以使用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';
  };
  
};

让我知道你是否可以让它工作!

于 2021-09-06T12:29:07.680 回答