Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // wordpress register form
- // functions.php
- class jeba_registration_form
- {
- private $username;
- private $email;
- private $password;
- private $website;
- private $first_name;
- private $last_name;
- private $nickname;
- private $bio;
- function __construct()
- {
- add_shortcode('jeba_registration_form', array($this, 'shortcode'));
- add_action('wp_enqueue_scripts', array($this, 'flat_ui_kit'));
- }
- public function registration_form()
- {
- ?>
- <form method="post" action="<?php echo esc_url($_SERVER['REQUEST_URI']); ?>">
- <div class="login-form">
- <div class="form-group">
- <input name="reg_name" type="text" class="form-control login-field"
- value="<?php echo(isset($_POST['reg_name']) ? $_POST['reg_name'] : null); ?>"
- placeholder="Username" id="reg-name" required/>
- <label class="login-field-icon fui-user" for="reg-name"></label>
- </div>
- <div class="form-group">
- <input name="reg_email" type="email" class="form-control login-field"
- value="<?php echo(isset($_POST['reg_email']) ? $_POST['reg_email'] : null); ?>"
- placeholder="Email" id="reg-email" required/>
- <label class="login-field-icon fui-mail" for="reg-email"></label>
- </div>
- <div class="form-group">
- <input name="reg_password" type="password" class="form-control login-field"
- value="<?php echo(isset($_POST['reg_password']) ? $_POST['reg_password'] : null); ?>"
- placeholder="Password" id="reg-pass" required/>
- <label class="login-field-icon fui-lock" for="reg-pass"></label>
- </div>
- <div class="form-group">
- <input name="reg_website" type="text" class="form-control login-field"
- value="<?php echo(isset($_POST['reg_website']) ? $_POST['reg_website'] : null); ?>"
- placeholder="Website" id="reg-website"/>
- <label class="login-field-icon fui-chat" for="reg-website"></label>
- </div>
- <div class="form-group">
- <input name="reg_fname" type="text" class="form-control login-field"
- value="<?php echo(isset($_POST['reg_fname']) ? $_POST['reg_fname'] : null); ?>"
- placeholder="First Name" id="reg-fname"/>
- <label class="login-field-icon fui-user" for="reg-fname"></label>
- </div>
- <div class="form-group">
- <input name="reg_lname" type="text" class="form-control login-field"
- value="<?php echo(isset($_POST['reg_lname']) ? $_POST['reg_lname'] : null); ?>"
- placeholder="Last Name" id="reg-lname"/>
- <label class="login-field-icon fui-user" for="reg-lname"></label>
- </div>
- <div class="form-group">
- <input name="reg_nickname" type="text" class="form-control login-field"
- value="<?php echo(isset($_POST['reg_nickname']) ? $_POST['reg_nickname'] : null); ?>"
- placeholder="Nickname" id="reg-nickname"/>
- <label class="login-field-icon fui-user" for="reg-nickname"></label>
- </div>
- <div class="form-group">
- <input name="reg_bio" type="text" class="form-control login-field"
- value="<?php echo(isset($_POST['reg_bio']) ? $_POST['reg_bio'] : null); ?>"
- placeholder="About / Bio" id="reg-bio"/>
- <label class="login-field-icon fui-new" for="reg-bio"></label>
- </div>
- <input class="btn btn-primary btn-lg btn-block" type="submit" name="reg_submit" value="Register"/>
- </form>
- </div>
- <?php
- }
- function validation()
- {
- if (empty($this->username) || empty($this->password) || empty($this->email)) {
- return new WP_Error('field', 'Required form field is missing');
- }
- if (strlen($this->username) < 4) {
- return new WP_Error('username_length', 'Username too short. At least 4 characters is required');
- }
- if (strlen($this->password) < 5) {
- return new WP_Error('password', 'Password length must be greater than 5');
- }
- if (!is_email($this->email)) {
- return new WP_Error('email_invalid', 'Email is not valid');
- }
- if (email_exists($this->email)) {
- return new WP_Error('email', 'Email Already in use');
- }
- if (!empty($website)) {
- if (!filter_var($this->website, FILTER_VALIDATE_URL)) {
- return new WP_Error('website', 'Website is not a valid URL');
- }
- }
- $details = array('Username' => $this->username,
- 'First Name' => $this->first_name,
- 'Last Name' => $this->last_name,
- 'Nickname' => $this->nickname,
- 'bio' => $this->bio
- );
- foreach ($details as $field => $detail) {
- if (!validate_username($detail)) {
- return new WP_Error('name_invalid', 'Sorry, the "' . $field . '" you entered is not valid');
- }
- }
- }
- function registration()
- {
- $userdata = array(
- 'user_login' => esc_attr($this->username),
- 'user_email' => esc_attr($this->email),
- 'user_pass' => esc_attr($this->password),
- 'user_url' => esc_attr($this->website),
- 'first_name' => esc_attr($this->first_name),
- 'last_name' => esc_attr($this->last_name),
- 'nickname' => esc_attr($this->nickname),
- 'description' => esc_attr($this->bio),
- );
- if (is_wp_error($this->validation())) {
- echo '<div style="margin-bottom: 6px" class="btn btn-block btn-lg btn-danger">';
- echo '<strong>' . $this->validation()->get_error_message() . '</strong>';
- echo '</div>';
- } else {
- $register_user = wp_insert_user($userdata);
- if (!is_wp_error($register_user)) {
- echo '<div style="margin-bottom: 6px" class="btn btn-block btn-lg btn-danger">';
- echo '<strong>Registration complete. Goto <a href="' . wp_login_url() . '">login page</a></strong>';
- echo '</div>';
- } else {
- echo '<div style="margin-bottom: 6px" class="btn btn-block btn-lg btn-danger">';
- echo '<strong>' . $register_user->get_error_message() . '</strong>';
- echo '</div>';
- }
- }
- }
- function flat_ui_kit()
- {
- wp_register_script( 'bootstrap', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css', array('jquery'), 3.3, true);
- wp_enqueue_script('bootstrap');
- }
- function shortcode()
- {
- ob_start();
- if (isset($_POST['reg_submit']) ? $_POST['reg_submit'] : null) {
- $this->username = $_POST['reg_name'];
- $this->email = $_POST['reg_email'];
- $this->password = $_POST['reg_password'];
- $this->website = $_POST['reg_website'];
- $this->first_name = $_POST['reg_fname'];
- $this->last_name = $_POST['reg_lname'];
- $this->nickname = $_POST['reg_nickname'];
- $this->bio = $_POST['reg_bio'];
- $this->validation();
- $this->registration();
- }
- $this->registration_form();
- return ob_get_clean();
- }
- }
- new jeba_registration_form;
- ********************************************************************************************************
- // show in template this shortcode
- <?php echo do_shortcode('[jeba_registration_form]');?>
Advertisement
Add Comment
Please, Sign In to add comment