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.

How do I send the new user activation link to my own email address instead of the user? Is there a simple function I can use to switch things out?

function bp_core_activation_signup_user_notification( $user, $user_email, $key, $meta ) {

$activate_url = bp_get_activation_page() . "?key=$key";
$activate_url = esc_url($activate_url);
$admin_email  = get_site_option( 'admin_email' );

if ( empty( $admin_email ) )
    $admin_email = 'support@' . $_SERVER['SERVER_NAME'];

// If this is an admin generated activation, add a param to email the
// user login details
$email = is_admin() ? '&e=1' : '';

$from_name       = ( '' == get_site_option( 'site_name' ) ) ? 'WordPress' : esc_html( get_site_option( 'site_name' ) );
$message_headers = "MIME-Version: 1.0\n" . "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option( 'blog_charset' ) . "\"\n";
$message         = sprintf( __( "Thanks for registering! To complete the activation of your account please click the following link:\n\n%1\$s\n\n", 'buddypress' ), $activate_url . $email );
$subject         = '[' . $from_name . '] ' . __( 'Activate Your Account', 'buddypress' );

// Send the message
$to      = apply_filters( 'bp_core_activation_signup_user_notification_to',   $user_email, $user, $user_email, $key, $meta );
$subject = apply_filters( 'bp_core_activation_signup_user_notification_subject', $subject, $user, $user_email, $key, $meta );
$message = apply_filters( 'bp_core_activation_signup_user_notification_message', $message, $user, $user_email, $key, $meta );

wp_mail( $to, $subject, $message, $message_headers );

do_action( 'bp_core_sent_user_signup_email', $admin_email, $subject, $message, $user, $user_email, $key, $meta );

// Return false to stop the original WPMU function from continuing
return false;

} if ( !is_admin() || ( is_admin() && empty( $_POST['noconfirmation'] ) ) ) add_filter( 'wpmu_signup_user_notification', 'bp_core_activation_signup_user_notification', 1, 4 );

share|improve this question

closed as off-topic by ialocin, kaiser Aug 4 at 14:29

This question appears to be off-topic. The users who voted to close gave this specific reason:

If this question can be reworded to fit the rules in the help center, please edit the question.

1 Answer 1

up vote 2 down vote accepted
+50

Reading the code I would try something like this:

add_filter( 
    'bp_core_signup_send_validation_email_to', 
    'wpse_60858_catch_user_signup_mail' 
);

function wpse_60858_catch_user_signup_mail()
{
    // make sure to use a valid email. test it with different addresses
    return get_site_option( 'admin_email', 'fallback-address@example.com' );
}

This changes the $to part only.

share|improve this answer
    
I added this to my theme's functions and its not working :( –  Aliyah Aug 17 '12 at 1:59
    
@Aliyah Maybe you didn’t the option 'admin_email'? Try a hard coded email instead like hello@example.com. –  toscho Aug 17 '12 at 2:06
    
Heres what I have : if ( empty( $admin_email ) ) $admin_email = 'myemail@gmail.com'; –  Aliyah Aug 17 '12 at 4:00
    
Im not using wp_mail, Im using SMTP or whatever you call it. Could that be why its not working? –  Aliyah Aug 17 '12 at 4:01
    
This function uses wp_mail(). Did you change that? You shouldn’t. Install a SMTP plugin instead that hooks into wp_mail. –  toscho Aug 17 '12 at 4:14

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