Mapear campos personalizados de usuário

Você pode atualizar os Campos de Usuário que criou no Discourse via SSO. Isso não requer um plugin. Para fazer isso, você precisa saber o nome que o Discourse usa no banco de dados para o campo personalizado. A maneira mais fácil que conheço de fazer isso é acessar a página Admin / Personalizar / Campos de Usuário e, em seguida, carregar a versão JSON da página. Por exemplo: https://forum.exemplo.com/admin/customize/user_fields.json

Os dados JSON da página se parecerão com algo assim:

{
user_fields: [
{
id: 12,
name: "News Letter",
description: "Send me a newsletter",
field_type: "confirm",
editable: false,
required: true,
presentar no perfil: false,
presentar no cartão do usuário: false,
position: 3
},
{
id: 13,
name: "Company",
description: "Where do you work?",
field_type: "text",
editable: true,
required: false,
presentar no perfil: true,
presentar no cartão do usuário: true,
position: 4
}
]
}

Os campos personalizados do usuário são nomeados como user_field_<id_do_campo>. Isso significa que o nome do campo “News Letter” do meu exemplo JSON é user_field_12, e o nome do campo “Company” é user_field_13. Use essas informações para atualizar o payload do SSO.

Como exemplo, com o filtro wpdc_sso_params que mencionei em minha postagem anterior, o seguinte código adicionado ao arquivo functions.php do seu tema definirá o campo “Company” de todos os usuários como “acme” quando eles fizerem login via SSO. Substitua my_namespace no nome da função por um namespace exclusivo para seu site:

add_filter( 'wpdc_sso_params', 'my_namespace_set_discourse_custom_field', 10, 2 );
function my_namespace_set_discourse_custom_field( $sso_params, $user ) {
	$sso_params['custom.user_field_13'] = 'acme';

	return $sso_params;
}

Para adicionar campos baseados em dados de usuários do WordPress do seu site, use o parâmetro $user da função para obter detalhes sobre seus usuários.

3 curtidas