使用电子邮件确认的 Wordpress 注册

时间:2021-04-09 07:00:35

标签: php wordpress registration

我在我的 Wordpress 站点中使用 PHP 创建了一个注册表单。 目前用户可以创建一个帐户并正常登录。 但我想添加一个功能,在他们登录之前将激活发送到电子邮件。

这是我当前的代码。


    <?php
    $error= '';
    $success = '';
 
    global $wpdb, $PasswordHash, $current_user, $user_ID;
 
    if(isset($_POST['task']) && $_POST['task'] == 'register' ) {
 
        $role_option = $wpdb->escape(trim($_POST['role-option']));
        $password1 = $wpdb->escape(trim($_POST['password1']));
        $password2 = $wpdb->escape(trim($_POST['password2']));
        $first_name = $wpdb->escape(trim($_POST['first_name']));
        $last_name = $wpdb->escape(trim($_POST['last_name']));
        $email = $wpdb->escape(trim($_POST['email']));
        $email2 = $wpdb->escape(trim($_POST['email2']));
        $username = $wpdb->escape(trim($_POST['username']));
        $userrole = $wpdb->escape(trim($_POST['userrole']));

        
        if( $email == "" || $password1 == "" || $password2 == "" || $username == "" || $first_name == "" || $last_name == ""  || $role_option == "") {
            $error= 'Please don\'t leave the required fields.';
        } else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $error= 'Invalid email address.';
        } else if(email_exists($email) ) {
            $error= 'Email already exist.';
        } else if($email <> $email2 ){
            $error= 'Emails do not match.'; 
        } else if($password1 <> $password2 ){
            $error= 'Password do not match.';       
        } else {
 
            $user_id = wp_insert_user( array ('first_name' => apply_filters('pre_user_first_name', $first_name), 'last_name' => apply_filters('pre_user_last_name', $last_name), 'user_pass' => apply_filters('pre_user_user_pass', $password1), 'user_login' => apply_filters('pre_user_user_login', $username), 'user_email' => apply_filters('pre_user_user_email', $email), 'role' => apply_filters('pre_user_user_role', $role_option)) );
            if( is_wp_error($user_id) ) {
                $error= 'Error on user creation.';
            } else {
                do_action('user_register', $user_id);
                $current_url = home_url($_SERVER['REQUEST_URI']);
                wp_redirect( $current_url );
                exit;
                $success = 'You\'re successfully register';
            }
            
        }
        
    }
    ?>


0 个答案:

没有答案