wp_new_user_notification() WP 2.0.0

Повідомляє поштою адміністратора сайту про реєстрацію нового користувача та надсилає користувачеві лист з логіном та паролем для авторизації.

Ця функція автоматично спрацьовує на хуку wp_send_new_user_notifications() – обгортка для цієї функції.

add_action( 'register_new_user', 'wp_send_new_user_notifications');

Це init .

Заміна функції (перевизначення) — у плагіні можна створити функцію з такою самою назвою, тоді вона замінить поточну функцію.

Працює на основі:
wp_mail()

Повертає

null. Нічого.

Використання

wp_new_user_notification( $user_id, $deprecated, $notify );
$user_id
(число) (обов’язковий)
ID користувача.
$deprecated
(застарів)
Застарілий з версії 4.3.1. Потрібно вказувати null.


Типово: null
$notify
(рядок)

Визначає тип сповіщення.

  • adminабо пустая строка( ) – повідомлення отримає лише адмін.
  • user– Повідомлення отримає лише створений користувач.
  • both– повідомлення отримають адмін та створений користувач.

За замовчуванням: ”

Приклади

0

#1 Повідомлення адміна та нового користувача про реєстрацію та надсилання обом листа

Припустимо, при реєстрації користувача потрібно повідомити себе (ви адмін) і надіслати листа новому користувачу на пошту з посиланням на встановлення нового пароля:

$new_user_id = 8;

wp_new_user_notification( $new_user_id, 'both' );

В результаті:

Адмін отримає:

На вашому сайті «SYSTEMa» зареєстровано нового користувача:

Ім'я користувача: user

E-mail: [email protected]

Користувач отримає:

Ім'я користувача: user

Щоб задати пароль, перейдіть за наступним посиланням:

<http://example.com/wp-login.php?action=rp&key=1ORsgCiUtZdwDw3tss4U&login=user>

http://example.com/wp-login.php

список змін

З версії 2.0.0Введено.
З версії 4.3.0$plaintext_pass parameter був змінений до $notify .
З версії 4.3.1The $plaintext_pass parameter був розбитий. $notify added as a third parameter.
З версії 4.6.0$notify parameter accepts ‘user’ для sending notification тільки для користувача створений.

Код wp_new_user_notification() WP 6.0.2

function wp_new_user_notification( $user_id, $deprecated = null, $notify = '' ) {
	if ( null !== $deprecated ) {
		_deprecated_argument( __FUNCTION__, '4.3.1');
	}

	// Accepts only 'user', 'admin' , 'both' or default '' як $notify.
	if ( ! in_array( $notify, array( 'user', 'admin', 'both', '' ), true ) ) {
		return;
	}

	$ user = get_userdata ($ user_id);

	// Вхідний блог name is escaped with esc_html() on the way in database in sanitize_option().
	// We want to reverse this for the plain text arena of emails.
	$blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );

	if ( 'user' !== $notify ) {
		$ switched_locale = switch_to_locale( get_locale() );

		/* translators: %s: Site title. */
		$message = sprintf( __( 'New user registration on your site %s:' ), $blogname ) . "nrn";
		/* translators: %s: User login. */
		$message .= sprintf( __( 'Username: %s' ), ​​$user->user_login ) . "nrn";
		/* translators: %s: User email address. */
		$message .= sprintf( __( 'Email: %s' ), ​​$user->user_email ) . "rn";

		$wp_new_user_notification_email_admin = array(
			'to' => get_option( 'admin_email' ),
			/* translators: New user registration notification email subject. %s: Site title. */
			'subject' => __( '[%s] New User Registration' ),
			'message' => $message,
			'headers' => '',
		);

		/**
		 * Filters contents of new user notification email sent to the site admin.
		 *
		 * @ Since 4.9.0
		 *
		 * @param array $wp_new_user_notification_email_admin {
		 * Used to build wp_mail().
		 *
		 * @type string $to The intended recipient - site admin email address.
		 * @type string $subject Subject of the email.
		 * @type string $message The body of the email.
		 * @type string $headers headers of the email.
		 * }
		 * @param WP_User $user User object for new user.
		 * @param string $blogname The site title.
		 */
		$wp_new_user_notification_email_admin = apply_filters( 'wp_new_user_notification_email_admin', $wp_new_user_notification_email_admin, $user, $blogname );

		wp_mail(
			$wp_new_user_notification_email_admin['to'],
			wp_specialchars_decode( sprintf( $wp_new_user_notification_email_admin['subject'], $blogname ) ),
			$wp_new_user_notification_email_admin['message'],
			$wp_new_user_notification_email_admin['headers']
		);

		if ($ switched_locale) {
			restore_previous_locale();
		}
	}

	// `$ deprecated` був pre-4.3 `$plaintext_pass`. An empty `$plaintext_pass` didn't sent a user notification.
	if ( 'admin' === $notify || ( empty( $deprecated ) && empty( $notify ) ) ) {
		return;
	}

	$key = get_password_reset_key($user);
	if ( is_wp_error( $key ) ) {
		return;
	}

	$ switched_locale = switch_to_locale (get_user_locale ($ user));

	/* translators: %s: User login. */
	$message = sprintf( __( 'Username: %s' ), ​​$user->user_login ) . "nrn";
	$message .= __( 'To set your password, visit the following address:' ) . "nrn";
	$message .= network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user->user_login ), 'login' ) . "nrn";

	$message .= wp_login_url() . "rn";

	$wp_new_user_notification_email = array(
		'to' => $user->user_email,
		/* translators: Login details notification email subject. %s: Site title. */
		'subject' => __( '[%s] Login Details' ),
		'message' => $message,
		'headers' => '',
	);

	/**
	 * Filters contents of new user notification e-mail sent to new user.
	 *
	 * @ Since 4.9.0
	 *
	 * @param array $wp_new_user_notification_email {
	 * Used to build wp_mail().
	 *
	 * @type string $to The intended recipient - New user email address.
	 * @type string $subject Subject of the email.
	 * @type string $message The body of the email.
	 * @type string $headers headers of the email.
	 * }
	 * @param WP_User $user User object for new user.
	 * @param string $blogname The site title.
	 */
	$wp_new_user_notification_email = apply_filters( 'wp_new_user_notification_email', $wp_new_user_notification_email, $user, $blogname );

	wp_mail(
		$wp_new_user_notification_email['to'],
		wp_specialchars_decode( sprintf( $wp_new_user_notification_email['subject'], $blogname ) ),
		$wp_new_user_notification_email['message'],
		$wp_new_user_notification_email['headers']
	);

	if ($ switched_locale) {
		restore_previous_locale();
	}
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *