Как исправить отправителя BuddyPress писем?

В WordPress есть возможность отправлять почту, используя встроенную в CMS функцию wp_mail(). И все бы ничего, но по умолчанию все письма идут от имени WordPress (а не вашего сайта) и с email адреса wordpress@[example.com].  Поэтому я написал когда- запись про то, как изменить имя и email адрес сайта, с которого отправляется письмо. Это прекрасно работает для обычного WordPress сайта и для BuddyPress версии < 2.5.

Но в BuddyPress 2.5 появился новый отличный функционал – BP Emails:

Список BuddyPress писем

Это по сути CPT, которые содержат список всем BuddyPress писем, которые может отправлять плагин социальной сети разным пользователям по тем или иным событиям. Для того, чтобы реализовать поддержку кастомизатора этих писем, то есть вносить изменения в письма вот здесь:

Как исправить отправителя BuddyPress писем?

разработчику Paul Gibbs пришлось “форкнуть” стандартную функцию wp_mail(). То есть сделать ее копию, но сильно улучшенную, которая поддерживает такие динамические изменения и вообще более гибкая. И это привело к одному багу.

Больше стандартные фильтры для изменения имени и email адреса отправителя письма не работали. По умолчанию письмо отправлялось от админа (его email использовался).

Так как же исправить отправителя BuddyPress писем?

То есть письма от обычного WordPress (вроде “комментарий к записи ожидает модерации”) используют эти фильтры, а BuddyPress письма – нет. Вот именно для решения этой проблемы и был создан плагин: BP Email to WP Mail From Bridge.

Этот плагин делает всего 1 вещь (своей одной функцией) – он в BuddyPress письмах на имя отправителя и email адрес вашего сайта навешивает эти же два фильтра 'wp_mail_from' и 'wp_mail_from_name'. И код из моей старой записи снова продолжает работать.

В треке я предложил разработчикам включить код этого плагина в ядро.

1 комментарий

  1. Сергей:

    Вопрос не отправляет письма BuddyPress что не делаю не помогает … что делать

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *