#wordpress #elementor
Вопрос:
Я пытаюсь создать пользовательскую форму регистрации, чтобы поместить ее во всплывающее окно элемента. Поведение, которого я хочу, — это:
- Пользователь заполняет форму, регистрируется и отправляет ее
- После обновления страницы откроется то же всплывающее окно с сообщением (может быть ошибка или успех).
С помощью приведенного ниже кода пользователи могут зарегистрироваться, и всплывающее окно открывается после обновления, но всегда с сообщением об ошибке, даже если пользователь успешно зарегистрирован.
add_shortcode( 'register_user', 'register_user' );
function register_user(){
?>
<form action="" method="post" name="user_registeration">
<label>Nome <span class="error">*</span></label>
<input type="text" name="username" placeholder="Nome" class="text" required /><br />
<label>Email address <span class="error">*</span></label>
<input type="text" name="useremail" class="text" placeholder="Email" required /> <br />
<label>Password <span class="error">*</span></label>
<input type="password" name="password" class="text" placeholder="Senha" required /> <br />
<input type="submit" name="user_registration" value="SignUp" />
</form>
<?php
// Validation
if (isset($_POST['user_registration']))
{
global $wpdb;
$username = $wpdb->escape($_POST['username']);
$useremail = $wpdb->escape($_POST['useremail']);
$password = $wpdb->escape($_POST['password']);
$error = array();
if(strpos($username,' ')!==FALSE){
$error['username_space']="username has space";
}
if(empty($username)){
$error['username_empty']="username needed";
}
if(username_exists($username)){
$error['username_exist']="username already exists";
}
if(!is_email($useremail)){
$error['email_valid']="enter valid email id";
}
if(email_exists($useremail)){
$error['email_existence']="email already exists";
}
if(count($error)==0) {
wp_create_user($username,$password,$useremail);
print_r('<div class="woocommerce-success" role="alert">Seu cadastro foi realizado com sucesso!</div>');
}
elseif(count($error)>0) {
foreach ( $error as $message)
{
print_r('<div class="woocommerce-error" role="alert">' . $message . '</div>');
}
}
ElementorProModulesPopupModule::add_popup_to_location( 87 );
?>
<script>
jQuery( document ).ready( function() {
jQuery( window ).on( 'elementor/frontend/init', function() {
elementorFrontend.on( 'components:init', function() {
elementorFrontend.documentsManager.documents[
<?php echo 87 ;?>].showModal();
} );
} );
} );
</script>
<?php
}
}
Как я могу получить сообщение об успехе во всплывающем окне?