Пользовательская форма регистрации в шорткоде

#wordpress #elementor

Вопрос:

Я пытаюсь создать пользовательскую форму регистрации, чтобы поместить ее во всплывающее окно элемента. Поведение, которого я хочу, — это:

  1. Пользователь заполняет форму, регистрируется и отправляет ее
  2. После обновления страницы откроется то же всплывающее окно с сообщением (может быть ошибка или успех).

С помощью приведенного ниже кода пользователи могут зарегистрироваться, и всплывающее окно открывается после обновления, но всегда с сообщением об ошибке, даже если пользователь успешно зарегистрирован.

 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
 }
}
 

Как я могу получить сообщение об успехе во всплывающем окне?