函数文档

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.