对于激活过程,您可以遵循以下步骤:
如你所见user_activation_key 中的列wp_users 桌子您可以利用该列发送用户激活链接注册用户时,可以使用自定义sql在该列中插入特定代码。用户注册后wp_insert_user() 并将id返回给$user_id, 可以运行自定义insertsql
$user_id = wp_insert_user($user_detail);
if ( $user_id && !is_wp_error( $user_id ) ) {
$code = sha1( $user_id . time() );
global $wpdb;
$wpdb->update(
\'wp_users\', //table name
array( \'user_activation_key\' => $code, // string ),
array( \'ID\' => $user_id ),
array( \'%s\', // value1 )
);
$activation_link = add_query_arg( array( \'key\' => $code, \'user\' => $user_id ), get_permalink( /* your activation page id here*/ ));
wp_mail( $user_email, \'SUBJECT\', \'Activation link : \' . $activation_link );
}.
这将向用户发送一个激活链接,如
http://example.com/activation-page/?key=CERTAIN_KEY&user=USER_ID 在他们的电子邮件和激活页面上,您可以运行代码,通过更改另一列来激活用户
user_status 从0到1。
此后,您可以运行另一个更新user_status 列依据
global $wpdb;
$wpdb->update(
\'wp_users\', //table name
array( \'user_status\' => 1, // integer ),
array( \'ID\' => $_GET[\'user\'], //where clause
\'user_activation_key\'=>$_GET[\'key\'] //where clause
),
array( \'%d\', //value1 )
);
您可以允许状态为1的用户登录。