skip to Main Content

This is my custom user registration form WordPress site, actually, this is my first custom development, and here all the data passes the DB my problem is I need to show my error message inside the HTML code. how can I do it? can anyone help me to solve this problem? now my error messages show like this (Array ( [username_empty] => Needed Username [email_valid] => Email has no valid value [texnumber_empty] => Needed Tax Number )) but I need only show error message only Ex: this one ( [username_empty] => Needed Username) I need to show "Needed Username"
Like this.

if (is_user_logged_in()) {
    // echo '<script>alert("Welcome, registered user!")</script>';
    echo '<script type="text/javascript">';
    echo 'alert("Welcome, registered user!");';
    echo 'window.location.href = "Url";';
    echo '</script>';
} else {
    // echo 'Welcome, visitor!';

    global $wpdb;

    if ($_POST) {
        $username = $wpdb->escape($_POST['user_login']);
        $email = $wpdb->escape($_POST['user_email']);
        $taxnumber = $wpdb->escape($_POST['tax_number']);
        $password = $wpdb->escape($_POST['user_pass']);
        $ConfPassword = $wpdb->escape($_POST['user_confirm_password']);


        $error = array();
        if (strpos($username, ' ') !== FALSE) {
            $error['username_space'] = "Username has Space";
        }

        if (empty($username)) {
            $error['username_empty'] = "Needed Username";
        }

        if (username_exists($username)) {
            $error['username_exists'] = "Username already exists";
        }

        if (!is_email($email)) {
            $error['email_valid'] = "Email has no valid value";
        }

        if (email_exists($email)) {
            $error['email_existence'] = "Email already exists";
        }
        if (empty($taxnumber)) {
            $error['texnumber_empty'] = "Needed Tax Number";
        }

        if (strcmp($password, $ConfPassword) !== 0) {
            $error['password'] = "Password didn't match";
        }

        if (count($error) == 0) {

            $user_id = wp_create_user($username, $password, $email);

            $userinfo = array(
                'ID' => $user_id,
                'user_login' => $username,
                'user_email' => $email,
                'user_pass' => $password,
                'role'      => 'customer',
            );

            // Update the WordPress User object with first and last name.
            wp_update_user($userinfo);

            // Add the company as user metadata
            update_user_meta($user_id, 'tax_number', $taxnumber);
            echo '<script type="text/javascript">';
            echo 'alert("User Created Successfully");';
            echo 'window.location.href = "url";';
            echo '</script>';
            
            exit();
        } else {

            print_r($error);
        }
    }


?>
    <section id="wholesale-custom-register-form">
        <div class="container wholesale-custom-register-form">
            <div class="register-form">
                <div class="register-form-title">
                    <h1>Wholesale Register Form</h1>
                </div>
                <div class="wholesale-register">
                    <form class="register-fm" method="POST">
                        <div class="form-group">
                            <label>User Name</label>
                            <input class="form-control" type="text" name="user_login" id="user_login" placeholder="Username" />
                            <?php foreach ($error as $error) {
                                echo $error . "<br>";
                            } ?>
                        </div>
                        <div class="form-group">
                            <label>Email</label>
                            <input class="form-control" type="email" name="user_email" id="user_email" placeholder="Email" />
                        </div>
                        <div class="form-group">
                            <label>Tax Number</label>
                            <input class="form-control" type="text" name="tax_number" id="tax_number" placeholder="Tax Number" />
                        </div>
                        <div class="form-group">
                            <label>Enter Password</label>
                            <input class="form-control" type="password" name="user_pass" id="user_pass" placeholder="Password" />
                        </div>
                        <div class="form-group">
                            <label>Enter Cofirm Password</label>
                            <input class="form-control" type="password" name="user_confirm_password" id="user_confirm_password" placeholder="Cofirm Password" />
                        </div>
                        <div class="form-group">
                            <button class="custom-register-btn" type="submit" name="btnsubmit">Log In</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </section>

<?php

};

This is my code I will try many times but I can’t get the error messages inside the HTML body.

2

Answers


  1. You want to make an AJAX call to register a user then use a callback function to check for success. If a field is invalid you also check it with javascript.
    So you would need to refactor your code, seperate it into frontend/backend code and connect it via AJAX.

    1. Write your PHP code as "add_action_hook" and register function
    2. Onclick validate fields and inputs
    3. Call the hook via AJAX (url: "/wp-admin/admin-ajax.php")
    4. Return result

    These are just very abstract steps, you’ll need to gather some intel for yourself. You could take a look at this: https://awhitepixel.com/blog/wordpress-use-ajax/ and https://docs.wpvip.com/technical-references/security/validating-sanitizing-and-escaping/

    Login or Signup to reply.
  2. I would do something like this

    if (is_user_logged_in()) {
        // echo '<script>alert("Welcome, registered user!")</script>';
        echo '<script type="text/javascript">';
        echo 'alert("Welcome, registered user!");';
        echo 'window.location.href = "Url";';
        echo '</script>';
    } else {
        // echo 'Welcome, visitor!';
    
        global $wpdb;
    
        if ($_POST) {
            $username = $wpdb->escape($_POST['user_login']);
            $email = $wpdb->escape($_POST['user_email']);
            $taxnumber = $wpdb->escape($_POST['tax_number']);
            $password = $wpdb->escape($_POST['user_pass']);
            $ConfPassword = $wpdb->escape($_POST['user_confirm_password']);
    
    
    
            if (strpos($username, ' ') !== FALSE) {
                $errorMsg[] = "Username has Space";
            }
    
            if (empty($username)) {
                $errorMsg[] = "Needed Username";
            }
    
            if (username_exists($username)) {
                $errorMsg[] = "Username already exists";
            }
    
            if (!is_email($email)) {
                $errorMsg[] = "Email has no valid value";
            }
    
            if (email_exists($email)) {
                $errorMsg[] = "Email already exists";
            }
            if (empty($taxnumber)) {
                $errorMsg[] = "Needed Tax Number";
            }
    
            if (strcmp($password, $ConfPassword) !== 0) {
                $errorMsg[] = "Password didn't match";
            }
    
            if (count($errorMsg) == 0) {
    
                $user_id = wp_create_user($username, $password, $email);
    
                $userinfo = array(
                    'ID' => $user_id,
                    'user_login' => $username,
                    'user_email' => $email,
                    'user_pass' => $password,
                    'role'      => 'customer',
                );
    
                // Update the WordPress User object with first and last name.
                wp_update_user($userinfo);
    
                // Add the company as user metadata
                update_user_meta($user_id, 'tax_number', $taxnumber);
                echo '<script type="text/javascript">';
                echo 'alert("User Created Successfully");';
                echo 'window.location.href = "url";';
                echo '</script>';
                
                exit();
            } else {
    
                print_r($errorMsg);
            }
        }
    
    
    ?>
        <section id="wholesale-custom-register-form">
            <div class="container wholesale-custom-register-form">
                <div class="register-form">
                    <div class="register-form-title">
                        <h1>Wholesale Register Form</h1>
                    </div>
                    <div class="wholesale-register">
                        <form class="register-fm" method="POST">
                            <div class="form-group">
                                <label>User Name</label>
                                <input class="form-control" type="text" name="user_login" id="user_login" placeholder="Username" />
                                <?php foreach ($errorMsg as $error) {
                                 ?>
                                    <div>
                                      <strong><?= $error; ?> </strong>
                                    </div>
                                <?php
                                  
                                } ?>
                            </div>
                            <div class="form-group">
                                <label>Email</label>
                                <input class="form-control" type="email" name="user_email" id="user_email" placeholder="Email" />
                            </div>
                            <div class="form-group">
                                <label>Tax Number</label>
                                <input class="form-control" type="text" name="tax_number" id="tax_number" placeholder="Tax Number" />
                            </div>
                            <div class="form-group">
                                <label>Enter Password</label>
                                <input class="form-control" type="password" name="user_pass" id="user_pass" placeholder="Password" />
                            </div>
                            <div class="form-group">
                                <label>Enter Cofirm Password</label>
                                <input class="form-control" type="password" name="user_confirm_password" id="user_confirm_password" placeholder="Cofirm Password" />
                            </div>
                            <div class="form-group">
                                <button class="custom-register-btn" type="submit" name="btnsubmit">Log In</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </section>
    
    <?php
    
    };
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search