我在我的 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';
}
}
}
?>