问题描述
我已经通过 woocommerce 会员面板设置了一个名为“测试”的用户个人资料字段。
我现在想在网站的前端访问此字段及其数据。
我查阅了文档,我能找到的最接近的函数是 wc_memberships_get_members_area_sections()
,它只会列出会员仪表板中各部分的名称,而没有列出它所包含的内容。
我也查看了数据库,发现用户提交的数据是存放在wp_userMeta
表中的。
那么我如何访问这些数据?我想添加三个字段,即姓名,年龄和图片供用户填写并在用户登录时显示在前端页面上。
解决方法
wordpress 函数 get_user_meta()
将用于获取配置文件字段数据。
$data = get_user_meta(get_current_user_id());
profile 字段数据以数组形式返回,您可以使用 var_dump()
函数检查返回的数据。
var_dump($data);
我有一个“company_name”个人资料字段,所以我使用下面的代码来获取它,
if ( $data['_wc_memberships_profile_field_company_name'][0] ) {
$companyName = $data['_wc_memberships_profile_field_company_name'][0];
}
,
我创建了一个辅助函数来模拟 Woo Memberships 如何将数据保存在 wp_user_meta 中。传入用户 ID 和带有连字符的“slug”属性作为 $meta_key 顺序,以访问给定配置文件字段的元值。
function get_membership_meta($user_id,$meta_key){
$meta_key_prefix = '_wc_memberships_profile_field_';
return get_user_meta($user_id,$meta_key_prefix . str_replace( '-','_',$meta_key),true);
}
前
$company_name = get_membership_meta($post_author_id,'company-name')