wordpress - Woocommerce 如何仅在用户未登录时设置 default_checkout_billing_country

标签 wordpress woocommerce wordpress-theming woocommerce-theming woocommerce-checkout-fields

我有这个功能,如果用户是客人,我只想设置账单国家,否则我们不应该更改账单国家,而是将账单国家作为用户在 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/

相关文章:

wordpress - 如何使用 PayPal Express 在 Woocommerce 中强制访客结账?

php - 在 Woocommerce 3 中以编程方式更新产品库存

php - 在 woocommerce 中注册并重定向到登录页面时防止自动登录?

php - 在 WordPress 中将选项从后端传递到前端的最佳方法

wordpress : how to add categories and tags on pages?

php - 在 Woocommerce 中检查产品类别的购物车项目

wordpress - WP - check_password_reset_key 函数总是返回过期 key

php - 如何使用 laravel 框架在 PHP 中访问通过 Wordpress 创建的数据库

html - 在 mozilla firefox 浏览器中从/var/www 文件加载 wordpress

css - 子 css 的函数 theme_enqueue_styles()