Отфильтруйте Buddypress bp_core_signup_user

Я хочу отправить электронное письмо администратору сайта о том, что новый пользователь Buddypress зарегистрировался. Для этого и предназначена первая функция. Работает отлично. Вторая функция - добавить в электронное письмо несколько настраиваемых полей xprofile. К сожалению, фильтр в функции 2e не работает. Как заставить его работать? Или как их совместить, чтобы они работали?

function my_pending( $user_id, $user_login, $user_password, $user_email, $usermeta ) {
// Send the email notification.
wp_mail( '[email protected]', $user_login . ' bla bla', 'bla bla' );
}
add_action( 'bp_core_signup_user', 'my_pending', 10, 5 );

И вторая функция:

function custom_activation_email_body( $message, $user_id, $key  ) {

$field1 = xprofile_get_field_data( '11', $user_id );
$field2 = xprofile_get_field_data( '12', $user_id );
$field3 = xprofile_get_field_data( '4', $user_id );

$message .= sprintf( __( "Username: %s Email: %s Membership Type: %s", 'lang' ), $field1,   $field2, $field3 );

return $message;

}
add_filter('bp_core_signup_user', 'custom_activation_email_body', 10, 3);

person Gerard    schedule 06.08.2014    source источник


Ответы (1)


Если вы используете идентификатор поля, не используйте его как строку, поэтому

xprofile_get_field_data( '11', $user_id );

должно быть

xprofile_get_field_data( 11, $user_id );

И я думаю, что ваш фильтр применяется к электронному письму, отправленному новому пользователю. Так что переместите вызовы xprofile в функцию add_action. Просмотрите wp_mail, чтобы узнать, как настроить поля.

person shanebp    schedule 06.08.2014
comment
Спасибо shanebp. Струнная часть мне теперь понятна. Я изменил это. но xprofile вызывает функцию add_action, которую я не понимаю. Не могли бы вы указать мне правильное направление. Я прочитал часть wp_mail, но застрял :-( - person Gerard; 06.08.2014