Title: Redefining functions from pluggable.php
Last modified: December 15, 2017

---

# Redefining functions from pluggable.php

 *  Resolved [webfreak1364](https://wordpress.org/support/users/webfreak1364/)
 * (@webfreak1364)
 * [8 years, 6 months ago](https://wordpress.org/support/topic/redefining-functions-from-pluggable-php/)
 * Hi,
 * I try to override a function in pluggable.php, but somehow WordPress then ignores
   both functions. I want to modify the E-Mail sent out to a user after initial 
   registration (the one with the link to the password).
    If I implement the code,
   it won’t send the email anymore.
 * Here’s my code, any help is very appreciated.
    Thanks a lot.
 *     ```
       if (!function_exists('wp_new_user_notification')){
       	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() );
   
       			/* translators: %s: site title */
       			$message  = sprintf( __( 'New user registration on your site %s:' ), $blogname ) . "\r\n\r\n";
       			/* translators: %s: user login */
       			$message .= sprintf( __( 'Username: %s' ), $user->user_login ) . "\r\n\r\n";
       			/* translators: %s: user email address */
       			$message .= sprintf( __( 'Email: %s' ), $user->user_email ) . "\r\n";
   
       			$wp_new_user_notification_email_admin = array(
       				'to'      => get_option( 'admin_email' ),
       				/* translators: Password change notification email subject. %s: Site title */
       				'subject' => __( '[%s] New User Registration' ),
       				'message' => $message,
       				'headers' => '',
       			);
   
       			/**
       			 * Filters the contents of the new user notification email sent to the site admin.
       			 *
       			 * @since 4.9.0
       			 *
       			 * @param array   $wp_new_user_notification_email {
       			 *     Used to build wp_mail().
       			 *
       			 *     @type string $to      The intended recipient - site admin email address.
       			 *     @type string $subject The subject of the email.
       			 *     @type string $message The body of the email.
       			 *     @type string $headers The 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 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 ) );
   
       		/* translators: %s: user login */
       		$message .= __('Willkommen bei FIT Wien.') . "\r\n\r\n";
       		$message = sprintf(__('Dein Benutzername: %s'), $user->user_login) . "\r\n\r\n";
       		$message .= __('Um dein Passwort zu setzen und damit deine Registrierung abzuschließen, klicke bitte auf den folgenden Link:') . "\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 .= __('Um dich zukünftig einzuloggen benutze bitte diesen Link:' . "\r\n\r\n");
       		$message .= wp_login_url() . "\r\n";
   
       		$wp_new_user_notification_email = array(
       			'to'      => $user->user_email,
       			/* translators: Password change notification email subject. %s: Site title */
       			'subject' => __( '[%s] Your username and password info' ),
       			'message' => $message,
       			'headers' => '',
       		);
       	}
       }
       ```
   
    -  This topic was modified 8 years, 6 months ago by [webfreak1364](https://wordpress.org/support/users/webfreak1364/).
    -  This topic was modified 8 years, 6 months ago by [bcworkz](https://wordpress.org/support/users/bcworkz/).
      Reason: code fixed - cannot use backticks as quotes
 * The page I need help with: _[[log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fredefining-functions-from-pluggable-php%2F%3Foutput_format%3Dmd&locale=en_US)
   to see the link]_

Viewing 2 replies - 1 through 2 (of 2 total)

 *  Moderator [bcworkz](https://wordpress.org/support/users/bcworkz/)
 * (@bcworkz)
 * [8 years, 5 months ago](https://wordpress.org/support/topic/redefining-functions-from-pluggable-php/#post-9787131)
 * Your code only notifies the site admin, there is no wp_mail() call near the end
   to email the new user his login credentials. I suggest you convert the assignment
   to $wp_new_user_notification_email into a wp_mail() call. There’s nothing to 
   gain by consolidating the arguments into an array, since wp_mail() takes the 
   individual elements as separate arguments.
 *  Thread Starter [webfreak1364](https://wordpress.org/support/users/webfreak1364/)
 * (@webfreak1364)
 * [8 years, 5 months ago](https://wordpress.org/support/topic/redefining-functions-from-pluggable-php/#post-9788545)
 * Thanks a lot. I figured the rest of it out, that it works.

Viewing 2 replies - 1 through 2 (of 2 total)

The topic ‘Redefining functions from pluggable.php’ is closed to new replies.

 * In: [Developing with WordPress](https://wordpress.org/support/forum/wp-advanced/)
 * 2 replies
 * 2 participants
 * Last reply from: [webfreak1364](https://wordpress.org/support/users/webfreak1364/)
 * Last activity: [8 years, 5 months ago](https://wordpress.org/support/topic/redefining-functions-from-pluggable-php/#post-9788545)
 * Status: resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
