根据 WooCommerce 我的帐户中的自定义上传字段更改 WordPress 用户个人资料图片

问题描述

我正在使用 Add a profile picture (file upload) on My account > edit account in WooCommerce 答案代码添加自定义图片上传字段。

但是,此上传图片显示在 WooCommerce 中用户的个人资料中。

我希望后台管理员也可以在 wordpress 仪表板中显示用户列表中看到这些图片(请参阅附加图片)。

enter image description here

enter image description here


所以目的是通过上传图片更改用户个人资料图片

我该如何解决

解决方法

默认情况下,WordPress 中使用 Gravatar 图像。所以基于:

问答,你会得到这个更新的代码,它会回答你的问题:

// Replace default Gravatar Image used in WordPress
function filter_get_avatar( $avatar,$id_or_email,$size,$default,$alt ) {    
    // If is email,try and find user ID
    if ( ! is_numeric( $id_or_email ) && is_email( $id_or_email->comment_author_email ) ) {
        $user = get_user_by( 'email',$id_or_email );
        if ( $user ) {
            $id_or_email = $user->ID;
        }
    }

    // If not user ID,return
    if( ! is_numeric( $id_or_email ) ) {
        return $avatar;
    }

    // Get attachment id
    $attachment_id  = get_user_meta( $id_or_email,'image',true );
    
    // NOT empty
    if ( ! empty ( $attachment_id  ) ) {
        // Return saved image
        return wp_get_attachment_image( $attachment_id,[ $size,$size ],false,['alt' => $alt] );
    }

    return $avatar;
}
add_filter( 'get_avatar','filter_get_avatar',10,5 );

使用的 WordPress 功能: