^ 回到顶部
  • 人生没有定律,每个人都有自己的节奏
  • 本站wordpress建站教程均通过实践后发布,希望对你有帮助,如果有代码出错,请联系站长解决
  • 希望你的坚持,都是因为热爱,而不是因为不甘心
  • 8年wordpress建站经验,5星服务品质
  • 那些不愿意让你吃亏的人,才是真正值得你深交的人,也是值得你付出时间的人
  • 阿里云2核2g仅需86元/年

wordpress函数wp_new_user_notification()用法示例

wp_new_user_notification( int $user_id,  null $deprecated = null,  string $notify = '' )

Email login credentials to a newly-registered user.


描述

A new user registration notification is also sent to admin email.

新用户2核2g仅需86元/年    领取1153套模板    免费cdn流量包    ¥3188礼包


参数

$user_id

(int)
(Required)
User ID.

$deprecated

(null)
(Optional)
Not used (argument deprecated).

Default value: null

$notify

(string)
(Optional)
Type of notification that should happen. Accepts 'admin' or an empty string (admin only), 'user', or 'both' (admin and user).

Default value: ''


源代码

File: wp-includes/pluggable.php

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

	global $wpdb, $wp_hasher;
	$user = get_userdata( $user_id );

	// The blogname option is escaped with esc_html on the way into the 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() );
		$message  = sprintf( __( 'New user registration on your site %s:' ), $blogname ) . "\r\n\r\n";
		$message .= sprintf( __( 'Username: %s' ), $user->user_login ) . "\r\n\r\n";
		$message .= sprintf( __( 'Email: %s' ), $user->user_email ) . "\r\n";

		@wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] New User Registration' ), $blogname ), $message );

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

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

	// Generate something random for a password reset key.
	$key = wp_generate_password( 20, false );

	/** This action is documented in wp-login.php */
	do_action( 'retrieve_password_key', $user->user_login, $key );

	// Now insert the key, hashed, into the DB.
	if ( empty( $wp_hasher ) ) {
		require_once ABSPATH . WPINC . '/class-phpass.php';
		$wp_hasher = new PasswordHash( 8, true );
	}
	$hashed = time() . ':' . $wp_hasher->HashPassword( $key );
	$wpdb->update( $wpdb->users, array( 'user_activation_key' => $hashed ), array( 'user_login' => $user->user_login ) );

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

	$message = sprintf(__('Username: %s'), $user->user_login) . "\r\n\r\n";
	$message .= __('To set your password, visit the following address:') . "\r\n\r\n";
	$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . ">\r\n\r\n";

	$message .= wp_login_url() . "\r\n";

	wp_mail($user->user_email, sprintf(__('[%s] Your username and password info'), $blogname), $message);

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

更新日志

Version 描述
4.6.0 The $notify parameter accepts 'user' for sending notification only to the user created.
4.3.1 The $plaintext_pass parameter was deprecated. $notify added as a third parameter.
4.3.0 The $plaintext_pass parameter was changed to $notify.
2.0.0 Introduced.

More Information

  • This function can be replaced via plugins. If plugins do not redefine these functions, then this will be used instead.

相关函数

Uses

  • wp-includes/l10n.php:
    restore_previous_locale()
  • wp-includes/l10n.php:
    switch_to_locale()
  • wp-includes/l10n.php:
    get_user_locale()
  • wp-includes/user.php:
    retrieve_password_key
  • wp-includes/l10n.php:
    __()
  • wp-includes/l10n.php:
    get_locale()
  • wp-includes/formatting.php:
    wp_specialchars_decode()
  • wp-includes/pluggable.php:
    wp_generate_password()
  • wp-includes/pluggable.php:
    get_userdata()
  • wp-includes/pluggable.php:
    wp_mail()
  • wp-includes/general-template.php:
    wp_login_url()
  • wp-includes/functions.php:
    _deprecated_argument()
  • wp-includes/link-template.php:
    network_site_url()
  • wp-includes/plugin.php:
    do_action()
  • wp-includes/option.php:
    get_option()
  • wp-includes/wp-db.php:
    wpdb::update()
  • Show 11 more uses


Used By

  • wp-includes/user.php:
    wp_send_new_user_notifications()

  1. Skip to note content

    You must log in to vote on the helpfulness of this noteVote results for this note: -3You must log in to vote on the helpfulness of this note

    Contributed by mit2sumit

    After you insert new user with wp_insert_user(), you can call this wp_new_user_notification() function to send mail for newly registered users.
    However, In order to customise them, you need to define this function and save it as a plugin of its own. But, it still have a chance that some other plugin (that is called before this) have control over it. So, the best way of customising it is saving it as a mu-plugin. Just create a folder ‘mu-plugins’ under wp-content and save it under a php filename.
    Read more about mu-plugin here: https://codex.wordpress.org/Must_Use_Plugins

    
    // Redefine user notification function
    if ( !function_exists('wp_new_user_notification') ) {
        function wp_new_user_notification( $user_id, $plaintext_pass = '' ) {
            $user = new WP_User($user_id);
     
            $user_login = stripslashes($user->user_login);
            $user_email = stripslashes($user->user_email);
     
            $message  = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "rnrn";
            $message .= sprintf(__('Username: %s'), $user_login) . "rnrn";
            $message .= sprintf(__('E-mail: %s'), $user_email) . "rn";
     
            @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message);
     
            if ( empty($plaintext_pass) )
                return;
     
            $message  = __('Hi there,') . "rnrn";
            $message .= sprintf(__("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "rnrn";
            $message .= wp_login_url() . "rn";
            $message .= sprintf(__('Username: %s'), $user_login) . "rn";
            $message .= sprintf(__('Password: %s'), $plaintext_pass) . "rnrn";
            $message .= sprintf(__('If you have any problems, please contact me at %s.'), get_option('admin_email')) . "rnrn";
            $message .= __('Adios!');
     
            wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_option('blogname')), $message);
     
        }
    }

让小雨知道,这篇文章帮到了你
扫码关注微信公众号zs40086(微搜片)随时随地微信看片,抢先福利电影等你来

热门推荐

如有疑问,请前往问答中心反馈!

反馈