// Shortcode: [cadastro_cliente_woocommerce]
add_shortcode('cadastro_cliente_woocommerce', 'mappnet_cadastro_cliente_woocommerce');
function mappnet_cadastro_cliente_woocommerce() {
// Se já estiver logado
if (is_user_logged_in()) {
return '
Você já está conectado à sua conta.
'; } $mensagem = ''; // Processa o formulário if ( isset($_POST['mappnet_cadastro_nonce']) && wp_verify_nonce( sanitize_text_field(wp_unslash($_POST['mappnet_cadastro_nonce'])), 'mappnet_cadastro_cliente' ) ) { $nome = isset($_POST['nome']) ? sanitize_text_field(wp_unslash($_POST['nome'])) : ''; $sobrenome = isset($_POST['sobrenome']) ? sanitize_text_field(wp_unslash($_POST['sobrenome'])) : ''; $email = isset($_POST['email']) ? sanitize_email(wp_unslash($_POST['email'])) : ''; $senha = isset($_POST['senha']) ? $_POST['senha'] : ''; $erros = array(); if (empty($nome)) { $erros[] = 'Informe seu nome.'; } if (empty($email) || !is_email($email)) { $erros[] = 'Informe um e-mail válido.'; } if (email_exists($email)) { $erros[] = 'Já existe uma conta cadastrada com este e-mail.'; } if (strlen($senha) < 6) { $erros[] = 'A senha precisa ter pelo menos 6 caracteres.'; } if (empty($erros)) { $usuario_id = wc_create_new_customer( $email, '', $senha, array( 'first_name' => $nome, 'last_name' => $sobrenome, ) ); if (is_wp_error($usuario_id)) { $mensagem = '' .
esc_html($usuario_id->get_error_message()) .
'
';
} else {
update_user_meta($usuario_id, 'first_name', $nome);
update_user_meta($usuario_id, 'last_name', $sobrenome);
// Faz login automaticamente
wc_set_customer_auth_cookie($usuario_id);
// Redireciona para Minha Conta
wp_safe_redirect(wc_get_page_permalink('myaccount'));
exit;
}
} else {
$mensagem = '';
foreach ($erros as $erro) {
$mensagem .= '
';
}
}
ob_start();
echo $mensagem;
?>
' . esc_html($erro) . '
'; } $mensagem .= '