我成功地将登录用户wordpress用户元预填充到gravity表单中,但我找不到如何将buddypress配置文件数据预填充到gravity表单中的方法。
Goal
我希望能够从Buddypress中提取登录用户的配置文件数据,以重力形式填充字段,如电话、地址、国家/地区、省份等。
Conclusion
我希望buddypress成员概要文件字段的工作方式与wordpress user\\u meta非常相似,我尝试了许多组合,我在网上找到了这些组合,但没有任何效果(例如buddypress配置文件字段中的一个字段的名称是Phone-group\\u id=5&field\\u id=59-这是编辑配置文件页面中的slug,应该是Phone的字段编号是59和group 5(我不知道这是否重要):
这是应该提取Buddypress xprofile字段的代码,不幸的是,这些字段不起作用。
add_filter("form_field_value_phone", "populate_phone");
function populate_phone() {
$current_user = wp_get_current_user();
$current_user_id = $current_user->ID;
$phone = bp_profile_field_data( array(\'user_id\'=>$current_user_id,\'field\'=>\'Phone\' ));
return $phone;
}
这是在函数中使用“wordpress”用户元数据字段。php
// populate the field with "user_firstname" as the population parameter with the "first_name" of the current user
add_filter(\'gform_field_value_user_firstname\', create_function("", \'$value = populate_usermeta(\\\'first_name\\\'); return $value;\' ));
// populate the field with "user_lastname" as the population parameter with the "last_name" of the current user
add_filter(\'gform_field_value_user_lastname\', create_function("", \'$value = populate_usermeta(\\\'last_name\\\'); return $value;\' ));
// this function is called by both filters and returns the requested user meta of the current user
function populate_usermeta($meta_key){
global $current_user;
return $current_user->__get($meta_key);
}
最合适的回答,由SO网友:Daniel Foltynek 整理而成
对于那些也需要它的人,我可以使用这个代码段(它适用于文本字段,下拉列表应该不同):
add_filter("gform_field_value_city", "populate_city");
function populate_city($value){
global $current_user;
get_currentuserinfo();
return xprofile_get_field_data(\'city\', $current_user->ID);
}
和重力形式
Parameter Name = city