Acho que a causa da exceção é que sua function my_wpdc_sso_client_updated_user não está retornando o array $updated_user. Esse array é necessário para a função que adiciona o filtro wpdc_sso_client_updated_user continuar.
Você também precisa definir o ID do usuário do WordPress na chamada para update_user_meta.
Isso funciona, mas desabilita a funcionalidade de redimensionamento do plugin Simple Local Avatars:
add_filter( 'simple_local_avatars_dynamic_resize', '__return_false' ); // impede o redimensionamento de avatares
add_filter( 'wpdc_sso_client_updated_user', 'my_wpdc_sso_client_updated_user', 10, 2 );
function my_wpdc_sso_client_updated_user( $updated_user, $query ) {
if ( isset( $query['avatar_url'] ) ) {
$new_avatar_url = $query['avatar_url'];
$wp_user_id = $updated_user['ID'];
$avatar_data = array(
'full' => $new_avatar_url, // URL da nova imagem de avatar
);
update_user_meta( $wp_user_id, 'simple_local_avatar', $avatar_data );
}
return $updated_user;
}
O motivo para impedir o redimensionamento de avatares é que o redimensionamento é feito com o código do editor de imagens do WordPress. Para funcionar, a imagem precisa ser baixada para o WordPress. Observe que se você remover a linha add_filter( 'simple_local_avatars_dynamic_resize', '__return_false' ) do código acima, o plugin Simple Local Avatars tentará redimensionar as imagens, gerará um aviso PHP e, em seguida, usará a imagem em tamanho real - então nada parecerá quebrado do ponto de vista do usuário.
Estou um tanto incerto sobre a combinação do uso de avatares do Discourse com o plugin Simple Local Avatars. O problema que vejo é que o plugin oferece aos usuários a opção de fazer upload de um avatar personalizado no WordPress. Se eles fizerem isso, e depois fizerem login no WordPress novamente do Discourse, eles podem se perguntar o que aconteceu com o avatar que fizeram upload. Seria mais complexo de desenvolver, mas pode ser melhor adicionar a capacidade de definir deliberadamente seu avatar do Discourse como seu avatar do WordPress na página de perfil do usuário no WordPress.