set_role('user'); // Send confirmation email $user = get_userdata($user_id); $code = sha1($user->user_registered); update_user_meta($user_id, 'activation_code', $code); $activation_link = add_query_arg(array('key' => $code, 'user' => $user_id), get_site_url() . '/wp-login.php'); wp_mail($user->user_email, 'Bitte bestätige deine Anmeldung', 'Hallo, bitte bestätige deine Anmeldung über den folgenden Link: ' . $activation_link); // Notify admin wp_mail(get_option('admin_email'), 'New User Registration', 'A new user has registered: ' . $user->user_login . PHP_EOL . 'First name:' . $user->first_name . PHP_EOL . 'Last name:' . $user->last_name ); } public static function activate_user() { if (isset($_GET['key']) && isset($_GET['user'])) { $user_id = intval($_GET['user']); $activation_code = get_user_meta($user_id, 'activation_code', true); if ($activation_code === $_GET['key']) { delete_user_meta($user_id, 'activation_code'); wp_redirect(home_url('/wp-login.php?checkemail=registered')); exit; } } } public static function check_user_activation($user, $username, $password) { if (!is_a($user, 'WP_User')) { return null; } $user_id = $user->ID; $activation_code = get_user_meta($user_id, 'activation_code', true); if ($activation_code) { return new WP_Error('not_activated', __('ERROR: You need to activate your account. Please check your email.', 'kompass')); } return $user; } public static function display_custom_message() { if (isset($_GET['checkemail']) && $_GET['checkemail'] === 'registered') { echo '

Vielen Dank für deine Registrierung. Bitte überprüfen deine E-Mails, um deine Registrierung zu bestätigen.

'; } } }