Как в buddypress отключить оповещение по email о новых личных сообщениях?

Решено

Здравствуйте, скажите как в buddypress можно отключить отправку email оповещения для новых сообщений в профиле пользователя? Я не нашел такой настройки в плагине. Хотелось бы не дублировать такую информацию и на сайте и на почте пользователя. Мне кажется что если так делать то большинство пользователей будут просто отказываться об оповещений, а у меня на сайте есть довольно важные оповещения, от который пользователю лучше не отказываться.

Добавить Комментарий
Ответ

Если вам нужно вообще отказаться об оповещений плагина buddypress, воспользуйтесь следующим кодом:

 function onwp_disable_message(){
// отключим отправку email
 remove_action( 'messages_message_sent', 'messages_notification_new_message', 10 );
// отключим notification
 remove_action( 'messages_message_sent', 'bp_messages_message_sent_add_notification', 10 );
 }
add_action('init', 'onwp_disable_message');
 

Так же нужно учитывать что в профиле предлагается настройка оповещений для каждого пользователя.

Еще приведу пример как изменить программно настройки пользователя с оповещением:

(в примере мы после активации, для пользователя отключаем оповещения)

 add_action( 'bp_core_activated_user', 'bpdev_set_email_notifications_preference');
function bpdev_set_email_notifications_preference( $user_id ) {
//I am putting all the notifications to no by default
 //you can set the value to 'yes' if you want that notification to be enabled.
 $settings_keys = array(
 'notification_activity_new_mention'         => 'no',
 'notification_activity_new_reply'           => 'no',
 'notification_friends_friendship_request'   => 'no',
 'notification_friends_friendship_accepted'  => 'no',
 'notification_groups_invite'                => 'no',
 'notification_groups_group_updated'         => 'no',
 'notification_groups_admin_promotion'       => 'no',
 'notification_groups_membership_request'    => 'no',
 'notification_messages_new_message'         => 'no',
 );
foreach( $settings_keys as $setting => $preference ) {
bp_update_user_meta( $user_id,  $setting, $preference );
 }
//that's it. have fun!
 }
 
Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.