Answers:
WordPress使用wpdb
该类使用来管理对数据库层的访问global $wpdb
。该类提供了一种名为delete()
从表中删除行的方法:
$wpdb->delete( $table, $where, $where_format = null );
WordPress有一些MU特定表,其中一个是{$wpdb->prefix}signups
(wp-config.php
文件中设置的前缀)。表方案在这里。负责用户帐户的激活是 activation_key
,在用户单击邮件中的链接后进行设置。之后,activated
将为键设置一个datetime
值。在激活帐户之前,默认值将是0000-00-00 00:00:00
(如果您需要查询默认值)。tinyint
/ 1
列也在此过程中active
,1
如果用户处于活动状态,则设置为/ 列。
核心本身使用wpmu_activate_signup()
。请看一些示例。以下是更新用户条目以激活它的内容-经过重新设计以提高可读性。
$wpdb->update(
$wpdb->signups,
array(
'active' => 1,
'activated' => current_time( 'mysql', true ),
),
array( 'activation_key' => $key, )
);
只需让WP辛勤工作即可:
global $wpdb;
$wpdb->delete(
$wpdb->signups,
array( 'user_login' => 'some_login', )
);
如果您正在使用(n admin)形式执行那些请求(例如,扩展WP_List_Table
)以表明您正在使用字符串,则可以使用第三个参数(数组)。请记住,您仍然应该清理$_POST
ed值。提示:您也可以使用user_email
。
global $wpdb;
$wpdb->delete(
$wpdb->signups,
array( 'user_login' => 'some_login', ),
array( '%s', )
);
如果您想要一种快速的解决方案,以删除特定用户在数据库中的注册,则应执行以下操作:
/**
* Delete a row in the signups table for a given username.
*
* @param string $user_login Username.
* @return bool Whether the signup row was successfully deleted.
*/
function delete_activation_key_by_user( $user_login ) {
global $wpdb;
$success = false;
if ( false !== $wpdb->delete( $wpdb->signups, array( 'user_login' => sanitize_text_field( $user_login ) ) ) ) {
$success = true;
}
return $success;
}
var_dump( delete_activation_key_by_user( 'the_username' ) );
// bool(true|false)
在弄清楚为什么不发送电子邮件时,您也可以在WordPress.org存储库中使用一个名为“用户激活密钥”的插件来管理此问题。它使您可以手动删除或批准Multisite中用户的激活密钥。