Wordpress WooCommerce商店货币(按用户角色)

Wordpress WooCommerce商店货币(按用户角色),wordpress,woocommerce,user-roles,Wordpress,Woocommerce,User Roles,当登录用户名包含数组“USD”时,我想将wordpress/woocommerce商店的货币切换为USD 我试过使用这个代码,但不起作用。你能帮帮我吗 多谢各位 function set_role_currency($currency){ if( is_user_logged_in() ) { $user = wp_get_current_user(); $roles = ( array ) $user->roles;} if (in_array('usd', $roles)

当登录用户名包含数组“USD”时,我想将wordpress/woocommerce商店的货币切换为USD

我试过使用这个代码,但不起作用。你能帮帮我吗

多谢各位

function set_role_currency($currency){
    if( is_user_logged_in() ) {
 $user = wp_get_current_user();
 $roles = ( array ) $user->roles;}
 if (in_array('usd', $roles)) { return 'USD'; }
 return $currency; 
}
add_filter('woocommerce_currency', 'set_role_currency', 10, 2);

也许你所需要的只是解决这个问题

add_filter('woocommerce_currency', 'set_role_currency', 10, 2);
由于您只传递1个参数,可能会将优先级设置为更晚:

add_filter('woocommerce_currency', 'set_role_currency', 100, 1);

用户名是否包含数组“usd”?这是否意味着您的用户名包含“usd”一词,如:“username\u usd”或您是否将用户的任何角色设置为“usd”?用户角色包含“usd”,如何再次检查wordpress所比较的角色是否真的包含字符串“usd”?感谢您的快速回复。我认为问题在于在用户角色数组中查找字符串“usd”。我用WooCommerce批发专业版插件创建了额外的用户角色,我称之为“批发\美元”。我认为显示名称是“批发美元”,但其背后的真实名称是不同的。如何检查用户角色的名称?@Ahmed您可以始终使用内置的WC记录器$记录器=新的WC_记录器();$logger\u name=“我的记录器名称”;$logger->add($logger_name,print_r($user->roles,true));