Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Is it possible to hook in and override the default notification message for WP MS? I know the message being sent out is in /wp-admin/user-new.php

if ( is_multisite() ) {
    function admin_created_user_email( $text ) {
        /* translators: 1: Site name, 2: site URL, 3: role */
        return sprintf( __( 'Hi,
You\'ve been invited to join \'%1$s\' at
%2$s as a %3$s.
If you do not want to join this site please ignore
this email. This invitation will expire in a few days.

Please click the following link to activate your user account:
%%s' ), get_bloginfo('name'), site_url(), esc_html( $_REQUEST[ 'role' ] ) );
    }
    add_filter( 'wpmu_signup_user_notification_email', 'admin_created_user_email' );

    function admin_created_user_subject( $text ) {
        return "[" . get_bloginfo('name') . "] Your site invite";
    }
}

I believe I can do it if I can find the right hook in so that I can remove_filter() and then add my own in. I had been toying with the following (admin_created_user_email2 is my new function):

function reset_admin_email(){
    remove_filter( 'wpmu_signup_user_notification_email', 'admin_created_user_email' );
    add_filter( 'wpmu_signup_user_notification_email', 'admin_created_user_email2', 1 );
}

I was reading this page that lists the actions/hooks I can tie into, but I can't figure out which one to use (if any of them will even work)

Does anyone have experience with this to point me in the right direction?

Thanks
Levi

share|improve this question
    
Thanks for sharing code guys, but none of these worked, I tried all of them on multisite. Has anyone gotten any of these to work? –  user19598 Aug 23 '12 at 10:22
add comment

4 Answers 4

@user2647 seems to be on the right path, but I think that this is more correct:

remove_action( 'wpmu_new_user', 'newuser_notify_siteadmin' );
add_action( 'wpmu_new_user', 'my_notification' );

function my_notification ($user_id) {
  // Make your custom notification here.
}
share|improve this answer
add comment

I was able to override the multi-site notification email by adding these:

remove_filter('wpmu_signup_user_notification_email','admin_created_user_email');
add_filter('wpmu_signup_user_notification_email',<function_name_here>);
add_filter('wpmu_signup_user_notification',<function_name_here>);
add_filter('wpmu_signup_user_notification_subject',<function_name_here>);

Adding the three filters at bottom i.e. email,notification and subject allows you to override the content and the subject of the email.

share|improve this answer
add comment

Would this kind of thing work?

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 = $user_login . " " . $user_email;

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

}
}
share|improve this answer
add comment

remove_filter has no effect because /wp-admin/user-new.php runs

add_filter('wpmu_signup_user_notification_email', admin_created_user_email);

every time it loads, after plugins_loaded.

I got this to work by adding a new filter with a lower priority (higher number), so it runs after admin_created_user_email, which has the default priority (10):

function reset_admin_email(){
    add_filter( 'wpmu_signup_user_notification_email', 'admin_created_user_email2', 11 );
}
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.