如何交换 Woocommerce 个人资料照片和 WP 用户头像

问题描述

我同时使用 WP User Avatar 插件和 Woocommerce Profile Photo 插件

要从 woocommerce 编辑帐户前端上传头像,我使用的是 Woocommerce 个人资料照片插件

https://webfor99.com/woocommerce-custom-profile-picture-avatar-plugin/

为了显示更多免费的用户头像选项,我正在使用 WP 用户头像。

但他们之间现在没有联系,所以我想使用 Woocommerce Profile Photo 上传图片作为 WP 用户头像。以下是我所做的。

function change_avatar( $avatar,$id_or_email,$size,$default,$alt ) {  
    $all_users = get_users(array('Meta_key' => 'profile_pic',));
    
    foreach ($all_users as $user) {
        $user_id = $user->ID;
        ?><pre><?PHP var_dump( $user_id ); ?></pre><?PHP
        $profile_pic = get_user_Meta($user_id,'profile_pic',true);
        ?><pre><?PHP var_dump( $profile_pic ); ?></pre><?PHP
        update_user_Meta($user_id,'wp_user_avatar',$profile_pic);
    }
}
add_action('profile_update','change_avatar');
add_action('user_register','change_avatar');

使用 update_user_Meta() 更改头像但不起作用。正如你所看到的,我做了一些调试工作来检查它是否有效。在 update_user_Meta() 之前它可以正常工作。但用户头像并没有改变。

enter image description here

它正在获取正确的上传图像 ID,但头像没有改变。

请让我获得更多帮助。谢谢

解决方法

add_action('profile_update','change_avatar');
add_action('user_register','change_avatar');

此代码不起作用。请改用 add_filter('get_avatar','change_avatar',10,5)

我测试过,效果很好。