我想在用户更改/编辑xProfile字段时更新自定义user_meta字段(ID 1542的宽度)。
这确实不起作用
function action_xprofile_data_after_save( $x )
{
print_r($x);
// if($field == 1542)
// {
// update_user_meta($user_id, 'field_1542', 'changed');
// }
}
add_action( 'xprofile_data_after_save', 'action_xprofile_data_after_save', 10, 1 );
答案 0 :(得分:1)
我相信这种方法适用于前端和后端的编辑。它提供了$user_id
:
function peter_xprofile_data_after_save( $data ) {
if ( $data->field_id == 1542 ) {
update_user_meta( $data->user_id, 'field_1542', 'changed');
}
}
add_action( 'xprofile_data_after_save', 'peter_xprofile_data_after_save' );
答案 1 :(得分:0)
以上内容在进行编辑的情况下工作正常,但是在您“清除/删除”字段中的文本时不起作用。您应该使用这样的内容:
function peter_xprofile_data_after_save( $data ) {
$field_content = bp_get_member_profile_data('field=field_name'); // enter your field name here
if($field_content == '') {
update_user_meta( $data->user_id, 'field_1542', '' );
}
if ( $data->field_id == 1542 ) {
update_user_meta( $data->user_id, 'field_1542', $data->value);
}
}
add_action( 'xprofile_data_after_save', 'peter_xprofile_data_after_save' );