wpmu_log_new_registrations()
云策文档标注
概述
wpmu_log_new_registrations() 是一个 WordPress 函数,用于记录新站点的用户邮箱、IP 地址和注册日期到数据库。它处理站点 ID 和用户 ID 参数,并插入数据到 registration_log 表。
关键要点
- 函数用途:记录新站点的注册信息,包括用户邮箱、IP 和注册日期。
- 参数:$blog_id(必需,站点对象或 ID)和 $user_id(必需,用户 ID 或包含 'user_id' 的数组)。
- 内部处理:自动转换对象和数组参数,使用 get_userdata() 获取用户数据,并通过 wpdb::insert() 插入到 registration_log 表。
- 相关函数:涉及 current_time()、wpdb::insert()、wp_unslash() 和 get_userdata() 等核心函数。
代码示例
function wpmu_log_new_registrations( $blog_id, $user_id ) {
global $wpdb;
if ( is_object( $blog_id ) ) {
$blog_id = $blog_id->blog_id;
}
if ( is_array( $user_id ) ) {
$user_id = ! empty( $user_id['user_id'] ) ? $user_id['user_id'] : 0;
}
$user = get_userdata( (int) $user_id );
if ( $user ) {
$wpdb->insert(
$wpdb->registration_log,
array(
'email' => $user->user_email,
'IP' => preg_replace( '/[^0-9., ]/', '', wp_unslash( $_SERVER['REMOTE_ADDR'] ) ),
'blog_id' => $blog_id,
'date_registered' => current_time( 'mysql' ),
)
);
}
}注意事项
- 函数在 WordPress 5.1.0 版本中引入,属于 MU(多站点)功能。
- 确保 $wpdb->registration_log 表存在且可访问,否则插入操作可能失败。
- IP 地址通过 preg_replace() 清理,仅保留数字、点、逗号和空格,以增强安全性。
原文内容
Logs the user email, IP, and registration date of a new site.
Parameters
$blog_idWP_Site|intrequired-
The new site’s object or ID.
$user_idint|arrayrequired-
User ID, or array of arguments including
'user_id'.
Source
function wpmu_log_new_registrations( $blog_id, $user_id ) {
global $wpdb;
if ( is_object( $blog_id ) ) {
$blog_id = $blog_id->blog_id;
}
if ( is_array( $user_id ) ) {
$user_id = ! empty( $user_id['user_id'] ) ? $user_id['user_id'] : 0;
}
$user = get_userdata( (int) $user_id );
if ( $user ) {
$wpdb->insert(
$wpdb->registration_log,
array(
'email' => $user->user_email,
'IP' => preg_replace( '/[^0-9., ]/', '', wp_unslash( $_SERVER['REMOTE_ADDR'] ) ),
'blog_id' => $blog_id,
'date_registered' => current_time( 'mysql' ),
)
);
}
}
Changelog
| Version | Description |
|---|---|
| MU (3.0.0) | MU (3.0.0) |
| 5.1.0 | Introduced. |