Модификация тела письма перед отправкой в Drupal

Рассмотрим два варианта, как зацепиться к отправляемым письмам и внести туда свои изменения.

Первый вариант заключается в прямом изменении тела письма перед отправкой. Для этого мы реализуем hook_mail_alter(&message).

MAIL ALTER хук

Переменная $message содержит весь набор данных, используемых при отправке письма. Там есть и имя модуля, и ключ письма, а также дополнительные данные, передаваемые в MailManagerInterface::mail как $params.

Рассмотрим гипотетический пример, подстановки некого кода верификации из учетной записи пользователя во время отправки сообщения о регистрации пользователя. Мы предполагаем, что было создано дополнительное поле для сущности userfield_verification_code.

Объявление токена

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

Давайте объявим токен [user:verification-code], и при использовании его в шаблоне письма, он автоматически будет заменяться значением, которое мы запрограммируем.

Хуки подсистемы токенов должны быть объявлены в файле MYMODULE.tokens.inc. Это hook_tokens_info и hook_tokens. Первый описывает новые токены, а второй их реализует.

Мало букафф? Читайте есчо !

Получить список типов товаров в Drupal Commerce

Июль 23, 2023 г.

В терминологии Drupal, типы товаров это - бандлы (bundle) сущности commerce_product. Получить их список можно вот так: [crayon-696a26e5befeb357880286/] Как результат, в $product_types вы получите массив типов товаров, где ключом является ...

Читать

Ошибка в Drupal: once is not a function

Май 8, 2023 г.

В Drupal 9/10 нет jQuery плагина once(), потому при использовании этой функции вы увидите сообщение о том, что once - не является функцией. Плагин удобен, но его не сложно заменить в коде буквально парой вставок. Он работает по следующему алгоритму ...

Читать

Attempting to re-run cron while it is already running.

Июнь 3, 2025 г.

Попытка запустить cron параллельно с запущенным кроном не увенчается успехом, так как Drupal использует блокировку. Но иногда, из-за ошибок во время исполнения, блокировка не снимается. Что делать, если блокировка не была снята штатно? На самом ...

Читать

Генерация JWT токена в Drupal

Июль 30, 2023 г.

Модуль jwt реализует REST аутентификацию, настройку ключа и многое другое. Небольшой спиппет как сгенерировать и отправить jwt с собсвенной нагрузкой. Передадим токен, в котором полезной нагрузкой будет ID пользователя. А время жизни токена - 1 ...

Читать
 

Комментарии к «Модификация тела письма перед отправкой в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: