Плагин: отправка сообщений всем сразу – BP Mass Messaging

Продолжая тему, затронутую в предыдущей записи, об удобстве и необходимости использования массовых уведомлений, нельзя не сказать о его одном недостатке: пользователь сможет узнать о вашем уведомлении лишь зайдя на ваш сайт и после авторизации.

Для того, чтобы все пользователи получили сообщение с текстом уведомления, вам необходимо установить плагин BuddyPress Mass Messaging, который я нашел когда-то в форумах на BP.org, а потом вдруг на wpmu.org. После установки и отправки сообщения каждый пользователь получит также уведомление себе на email, что заставит его перейти на сайт, авторизоваться и прочитать (а это даст вам трафик).

Плагин принадлежит Jeremy Litten. Мною переделан, а ниже – скриншот получившегося.

BP Mass Messaging

BP Mass Messaging

После установки плагина, перейдите в меню “BuddyPress → Массовые сообщения”, где вы сможете ввести тему и текст соответствующего сообщения. Каждые 50 сообщений в процессе отправки делается пауза на 10 секунд, чтобы не перегружать чрезмерно ваш сервер. И кстати, вы сами (точнее авторизованный администратор) это сообщение не получите.

Хочу обратить ваше внимание на то, что этот плагин может занять достаточно много времени для выполнения. Поэтому не перезагружайте страницу, а просто дождитесь выполнения операции.

Мною были внесены следующие изменения:

  • внесена зависимость от работы самого BP – до моего вмешательства плагин загружался до BP, что вызывало ошибки;
  • убрана привязанность к таблицам с префиксом “wp_” – я внедрил универсальный вариант, который использует именно тот префикс, который вы указали при создании сайта;
  • так как админов может быть несколько, то я убрал привязку к админу с id=1, теперь работает с любым авторизованным админом;
  • подменю плагина перенесено из меню Настройки в меню BuddyPress, думаю, там ему и место;
  • сделан перевод – прямо в коде, потому что выносить 5 фраз нет смысла.
Извините, этот файл сильно устарел и больше нет возможности его скачать.

UPD 05.08.2010: Спасибо Сергею Бирюкову, который прислал мне исправленный вариант плагина, где ошибки из-за проблем с установкой куков во время отправки сообщений больше нет. Архив обновлен.

комментариев 7

  1. В админке не вижу его конфигурирование. WPMU3.1+BP1.2.8

    • Потому что плагин не обновлен для совместимости с новой версией. Его меню кануло в лето: вместо хука на admin_menu надо теперь навешиваться на network_admin_menu.

  2. Доброго времени суток. У меня к вам такой вопрос… Не могу найти хук (action или filter) для отправки сообщений конкретному пользователю. Хочу создать функцию которая будет позволять отправлять сообщение пользователю не только со своей странице но и со странице пользователя кому будет адресовано данное сообщение, а так же в общем списке пользователей у каждого пользователя что бы тоже была ссылка типа “отправить сообщение {username}”. Подскажите какой хук использовать для отправки приватного сообщения конкретному пользователю.

    • Для этого есть функция:

      
      messages_new_message(array(
                          'sender_id'  => '1', #кто отправил
                          'recipients' => array(2, 6), #кому отправил, может быть массив или строка
                          'subject'    => 'Subject', #тема, без html
                          'content'    => 'Content' #само сообщение, html
                      ));
      
      • Спасибо, не ожидал что так быстро ответите. В итоге решил сделать ещё проще, просто вставить ссылку на страницу members/{currant_user}/messages/compose/ где в поле “Кому (логин или имя друга)” будет автоматически прописано имя кому будет адресовано письмо

        • Еще надо wpnonce передавать. С ходу сказать не могу, гляньте мой плагин CD Avatar Bubble – там в главном файле формируется ссылка на написание сообщения (как раз так, как вы решили сделать), кажется, я там внедрил это.

          • Да, wpnonce нужен. Всё оказалось ещё проще. Оказалось что в BP уже есть встроенная функция bp_send_private_message_button которая генерируют ссылку содержащую wpnonce и user_name и передаёт эти параметры в форму для отправки сообщения. В итоге просто повесил эту функцию на действие add_action(‘bp_directory_members_actions’,’bp_send_private_message_button’);
            P.S. Если вам интересно то эта функция лежит в файле bp-messages-template.php

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

Ваш адрес email не будет опубликован.