【问题标题】:Change WordPress user profile picture based on a custom upload field from WooCommerce My account根据 WooCommerce 我的帐户中的自定义上传字段更改 WordPress 用户个人资料图片
【发布时间】:2021-07-14 06:30:24
【问题描述】:

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

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

我希望这些图片也可以在后台的管理员可见,在出现在 Wordpress 仪表板中的用户列表上(见附件图片)。


所以目的是通过上传的图片来改变用户头像。

我该如何解决?

【问题讨论】:

    标签: php wordpress woocommerce backend custom-fields


    【解决方案1】:

    默认情况下,在 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函数:

    【讨论】:

    • 谢谢。但也不工作。我正在检查自己,但你能给我一些关于将 gravatar 替换为自定义上传图像的重要事项的提示吗?
    • ."..将 gravatar 替换为自定义上传的图片" 你认为我的回答有什么作用?代码已经过测试并且可以工作
    • 是的,我想是的。但是 get_avatar() 函数真的有效吗?我认为对于 gravatar,它不起作用。因为对我来说,通常 gravatar 不起作用,所以用户的头像都是空的。如果 gravatar 为空,那么如何获取用户头像的信息呢? get_usermeta 不会返回任何头像。
    • 我根据您的回答做了一些类似的编码。而且也失败了,所以如果函数可以获得自定义图像,我进行了调试。它得到正确。但无法显示在头像上。我想知道图像是否不够小,无法用于头像。有可能吗?
    • @liming 很明显,您正在处理影响此代码的多个插件。虽然此代码是在默认的 WooCommerce 安装上编写和测试(并且可以工作)而没有额外的插件。简而言之,没有与您相同的配置,没有人可以回答您为什么它不起作用的问题。因为它不同于原始/默认配置
    猜你喜欢
    • 2020-09-12
    • 1970-01-01
    • 2020-11-02
    • 2017-05-04
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    相关资源
    最近更新 更多