BuddyPress Auto Activate And Login 是一个和 BuddyPress 相关的小插件,作用是在用户注册后,自动激活并登录。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | <?php /** * @Author: suifengtec * @Date: 2018-09-02 17:43:07 * @Last Modified by: suifengtec * @Last Modified time: 2018-09-02 17:56:21 **/ /** * Plugin Name: BuddyPress Auto Activate And Login * Plugin URI: http://coolwp.com/PluginSlug.html * Description: Description. * Author: suifengtec * Author URI: https://coolwp.com * Version: 0.9.0 * */ if (!defined('ABSPATH')) { exit; } if (!class_exists('BP_AAL_Module_Main')): /* BuddyPress Auto Activate And Login */ class BP_AAL_Module_Main { public function __construct() { //Diable BuddyPress send Activation Email. add_filter('bp_core_signup_send_activation_key', '__return_false'); //Auto Activate User After Register. add_action('bp_complete_signup', array($this, 'bp_complete_signup'), 10); } public static function bp_complete_signup() { // bp_core_screen_signup() // //$wp_user_id = bp_core_signup_user( $_POST['signup_username'], $_POST['signup_password'], $_POST['signup_email'], $usermeta ); // if (!empty($_POST['signup_email'])) { $user = get_user_by('email', $_POST['signup_email']); if ($user) { $user_id = $user->ID; $activation_key = get_user_meta($user_id, 'activation_key', true); if (!empty($activation_key)) { if (function_exists('bp_core_activate_signup')) { bp_core_activate_signup($activation_key); } //========Auto Logged in========== $user = get_user_by('id', $user_id); wp_set_current_user($user_id, $user->user_login); wp_set_auth_cookie($user_id); do_action('wp_login', $user->user_login, $user); //========//Auto Logged in========== } } } } } /*EOF*/ $GLOBALS['bp_aal'] = new BP_AAL_Module_Main(); endif; |
备注: BuddyPress 在表 XXX_signups 存储的信息, 默认地不会在用户激活后被删除,不过幸亏这个表的查询并不频繁。