如何使用WooCommerce中的当前用户角色填充自定义字段

时间:2021-04-11 作者:Jay

我正在尝试使用当前用户角色在签出中填充一个名为Customer Type的自定义字段。我在我的函数中尝试了以下方法。php的我的孩子的主题,并认为它会工作,但它没有做什么。有人能告诉我我可能做错了什么吗?

$user = wp_get_current_user();
function onboarding_update_fields( $fields = array() ) {

   $fields[\'customertype\'] = $user;

   return $fields;
}

add_filter( \'woocommerce_checkout_fields\', \'onboarding_update_fields\' );

1 个回复
SO网友:Chris

wp_get_current_user() 返回用户对象。不能直接输出对象。

继续获取用户角色,如$roles = (array)$user->roles;. 请注意,这将返回一个数组,因此您可能希望将第一个元素用于$roles[0].

您的代码可能如下所示(未测试):

function onboarding_update_fields( $fields = array() ) {
   $user = wp_get_current_user();
   $roles = (array)$user->roles;
   $fields[\'customertype\'] = $roles[0];
   return $fields;
}
add_filter( \'woocommerce_checkout_fields\', \'onboarding_update_fields\' );
此外,您可能需要检查用户是否已登录,否则可能没有可用的用户和角色。

WordPress代码参考文章:wp_get_current_user, User object.

相关推荐

使用WordPress的PHP代码,如何一次仅从数千个用户中批量删除100个订阅者?

使用WordPress PHP代码,如何一次从数千个用户中批量删除100个订阅者?(以下代码试图一次删除所有50k用户,而我的服务器挂起。如果我一次只能删除100个用户,那么我可以每5分钟使用一次Cron作业。)<?php $blogusers = get_users( ‘role=subscriber’ ); // Array of WP_User objects. foreach ( $blogusers as $user ) { $user_id = $user