[wp-trac] [WordPress Trac] #33496: Can't override wp_new_user_notification in child theme functions.php

WordPress Trac noreply at wordpress.org
Fri Aug 21 18:35:51 UTC 2015


#33496: Can't override wp_new_user_notification in child theme functions.php
----------------------------+-----------------------------
 Reporter:  zero12345678    |      Owner:
     Type:  defect (bug)    |     Status:  new
 Priority:  normal          |  Milestone:  Awaiting Review
Component:  Users           |    Version:  4.3
 Severity:  normal          |   Keywords:
  Focuses:  administration  |
----------------------------+-----------------------------
 I have the following code placed in the functions.php file in my child
 theme overriding the wp_new_user_notification functions so that is doesn't
 send an email to new users that are created.

 The last wp_mail function is commented out.

 The email is still being sent to the new user's email address though.

 {{{
 if ( !function_exists('wp_new_user_notification') ) :

 function wp_new_user_notification( $user_id, $notify = 'admin' ) {
         global $wpdb;
         $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);

         $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(__('E-mail: %s'), $user->user_email) . "\r\n";

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

         if ( 'admin' === $notify || 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 ) );

         $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";

         // DISABLE EMAIL FROM BEING SENT TO NEW USER'S EMAIL ADDRESS
         //wp_mail($user->user_email, sprintf(__('[%s] Your username and
 password info'), $blogname), $message);
 }
 endif;
 }}}

--
Ticket URL: <https://core.trac.wordpress.org/ticket/33496>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list