Moderador
Mário Valney
(@mariovalney)
WordPress Cleric of Fire
Olá @rhenrigb, tudo bem?
Não vi de cara nenhum erro.
Vamos fazer dois testes, ok?
1 – Imprima o $user_id
em 3 (pode ser via log ou até um var_dump, mesmo… vai do gosto do freguês… hahaha)
2 – Se o $user_id estiver OK (ou seja, não for um WP_Error), tenta mudar o name. Coloca qualquer_coisa_mesmo (ou até esse daí.. heheh).
Abraços
Olá @mariovalney, muito obrigado pelo retorno.
Como eu posso fazer o passo 1? hahaha
Moderador
Mário Valney
(@mariovalney)
WordPress Cleric of Fire
Bem, como você postou código, imaginei que saberia PHP, desculpe.
Explicando melhor. Para o passo 1 você pode:
## Jeito simples:
No item 3, faça assim:
add_action( 'user_register', 'myplugin_user_register' );
function myplugin_user_register( $user_id ) {
$user_id = wp_update_user( array(
'ID' => $user_id,
'role' => $_POST['role'],
) );
var_dump( $user_id ); die();
}
Aqui o site irá imprimir o valor e depois “quebrar” quando você submeter o formulário, afinal tem um die()
ali.
## Jeito mais complicado:
Vá no wp-config.php e adicione/altere:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );
Aí lá no item 3 coloca:
add_action( 'user_register', 'myplugin_user_register' );
function myplugin_user_register( $user_id ) {
$user_id = wp_update_user( array(
'ID' => $user_id,
'role' => $_POST['role'],
) );
error_log( $user_id );
}
Nesse caso, a informação vai ser escrita no arquivo de LOG do WordPress.
Mais informações sobre usar o log nesse link.
-
Esta resposta foi modificada 7 anos, 5 meses atrás por Mário Valney.
Moderador
Mário Valney
(@mariovalney)
WordPress Cleric of Fire
Nunca usei o formulário de registro do WP para criar páginas de cadastro/login, geralmente crio os meus, então não sei se seria possível usar os hooks que você apontou para um formulário edição do cadastro. E como você escreveu “edição de cadastro” na sua pergunta, gostaria de perguntar:
Esse formulário está sendo para registrou ou edição de cadastro?
Pois, se estiver usando para salvar informações de um usuário que já existe o hook certo seria o profile_update, já que o user_register só roda na criação/registro do usuário.
Abraços
-
Esta resposta foi modificada 7 anos, 5 meses atrás por Mário Valney.
@mariovalney, venho estudando PHP, mas não sei muitas coisas ainda.
Imprimiu isso na tela ‘int(46)’, depois int(47) e assim por diante.
PS: Vou abrir um parênteses aqui pra um detalhe. Estou usando o role no woocommerce_register_form_start
, mas eu preciso que ele apareça em uma página que inseri um formulário de edição de dados do plugin Profile Builder, e eu não sei como mandar essa minha função pra ele. Já inseri o código pra chamar o woocommerce_edit_account_form_start
dos detalhes da conta, mas quando salvo as alterações acontece o mesmo, não salva a mudança de função (role) do user.
-
Esta resposta foi modificada 7 anos, 5 meses atrás por Rafael Botelho.
É para edição de cadastro @mariovalney.
Deve ser esse o problema então, vou usar o profile_update e testar.
@mariovalney meu código deveria ficar assim?
add_action( 'profile_update', 'myplugin_user_register' );
function myplugin_user_register( $user_id, $old_user_data ) {
$user_id = wp_update_user( array( 'ID' => $user_id, 'role' => $old_user_data, 'role' => $_POST['role'] ) );
}
@mariovalney funcionou a alteração 🙂
Mas ele vai pra uma página de erro e preciso voltar pra ver a alteração, dei um redirect, mas não funcionou, você sabe como faço isso:
add_action( 'profile_update', 'myplugin_user_register' );
function myplugin_user_register( $user_id ) {
$user_id = wp_update_user( array( 'ID' => $user_id, 'role' => $_POST['role'] ) );
wp_redirect( home_url() );
exit;
}
Deu certo @mariovalney!
add_action( 'profile_update', 'myplugin_user_register' );
function myplugin_user_register( $user_id ) {
wp_redirect( home_url() );
$user_id = wp_update_user( array( 'ID' => $user_id, 'role' => $_POST['role'] ) );
exit;
}
O problema era o hook errado mesmo, vou inserir mais alguns campos no form de edição, mas aqui você já me ajudou.
Muito obrigado!
-
Esta resposta foi modificada 7 anos, 5 meses atrás por Rafael Botelho.