我想在用户上传新图片(非头像)时更新自定义user_meta字段。
头像上传的工作代码
add_action('xprofile_avatar_uploaded', 'callback');
function callback($user_id, $type)
{
// $activity_id = <- the activity from the uploded image.
update_user_meta($user_id, 'image_'.$activity_id, '1');
}
答案 0 :(得分:4)
当您使用rtMedia插件为buddypress和上传照片提供一个动作 rtmedia_after_add_media 时,您可以使用三个参数来处理您的自定义。
add_action( 'rtmedia_after_add_media', 'rtmedia_after_add_media_update_usermeta', 10, 3 );
function rtmedia_after_add_media_update_usermeta( $media_ids, $file_object, $uploaded ){
// its not provide user id arg so you can get current user id using function get_current_user_id() or $uploaded array have key media_author;
// $media_ids give all attahment ids when you upload file
// $file_object give infomation about file like name, path etc
// $uploaded current upload give settings and update information. Its also gives authore id who is upload media.
// $user_id = $uploaded['media_author'];
$user_id = $uploaded['media_author'];
}
答案 1 :(得分:3)
我使用以下功能覆盖bp_core_avatar_handle_upload
。它在其中调用bp_core_avatar_handle_upload,但通过设置和检查全局变量的值来避免无限循环。
global $my_bp_group_avatar_upload;
function my_bp_group_avatar_upload( $upload, $file, $upload_dir_filter )
{
// Global.
global $my_bp_group_avatar_upload;
// Check upload filter.
if ( $upload_dir_filter != ‘groups_avatar_upload_dir’ )
return;
// Check if this is the second call.
if ( $my_bp_group_avatar_upload !== 2 )
{
// We are being called for the first time!
// We are about to call the second time.
$my_bp_group_avatar_upload = 2;
// Call the function.
// We’re calling ourselves too, but this time the global equals 2, so we are now in the else statement.
if ( bp_core_avatar_handle_upload( $file, $upload_dir_filter ) ) {
// Do stuff here, the upload was a success.
}
// We’ve executed the function. We can bail out of the original function run.
return FALSE;
} else {
// We have been called a second time, so set this to something other than 2.
$my_bp_group_avatar_upload = 0;
// We want to continue with the execution.
return TRUE;
}
}
add_filter( ‘bp_core_pre_avatar_handle_upload’, ‘my_bp_group_avatar_upload’, 10, 3 );