Как отправить письмо пользователю с правилами просмотра при прохождении даты?
Я создал поле даты для всех пользователей (в Drupal 7). Эта дата является окончанием подписки пользователя. Когда дата этого поля будет пройдена, я хочу отправить письмо пользователю, чтобы сообщить ему, что он может снова подписаться (для доступа к нашему веб-сайту).
Итак, я создал представление с правилами отображения (с правилами просмотра модулей). Я перечислил всех пользователей, у которых поле дата не пустое, и отфильтровал, чтобы прошла только дата. У меня есть 2 поля в этом представлении (имя пользователя и дата). Я отредактировал информацию о поле и включил свои 2 поля (Тип данных: пользователь и тип данных: дата):
После этого я создал правило, которое реагирует на событие "Задачи обслуживания Cron выполнены", и создал цикл просмотра правил отображения моего представления. В цикле я добавил 2 действия: измените значение даты, чтобы вывести пользователя из представления, и отправьте письмо этому пользователю:
Когда я запускаю cron, ничего не происходит. Дата такая не изменилось, и почта не отправляется. Я не знаю, какую конфигурацию я забыл. У вас есть идея, пожалуйста?
Спасибо за помощь мне.
Мое правило в формате экспорта:
{ "rules_relance_e_mail" : {
"LABEL" : "Relance e-mail",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "cron" : [] },
"DO" : [
{ "VIEW LOOP" : {
"VIEW" : "dates_de_relances",
"DISPLAY" : "views_rules_1",
"ROW VARIABLES" : {
"name" : { "name" : "Nom" },
"field_date_de_relance" : { "field_date_de_relance" : "Date de relance" }
},
"DO" : [
{ "data_set" : { "data" : [ "field-date-de-relance" ], "value" : "+1 year" } },
{ "mail" : {
"to" : [ "name:mail" ],
"subject" : "Test relance",
"message" : "Test mail",
"language" : [ "name:language" ]
}
}
]
}
}
]
}
}
1 answers
Часть 1. Отправка электронного письма
Ваше мнение нуждается в уточнении...Похоже, у вас есть 1 результат просмотра (строка) для каждого пользователя, которого нужно отправить по электронной почте, и это нормально. Но в этом представлении должны быть поля (столбцы) для каждого из полей, которые вы хотите использовать в своих правилах для создания электронной почты. Таким образом, [name:mail]
и [name:language]
в ваших правилах действия должны быть заменены каким-либо столбцом в вашем представлении, чтобы сделать их доступными. Для этого вам, возможно, придется также добавить "отношение" в вашем представлении к "объекту пользователя" (чтобы например, становится доступным идентификатор электронной почты).
Взгляните на эти ответы для получения более подробной информации:
- Как сделать поля доступными в правилах с помощью модуля "Правила представлений"?
- Как использовать правила для отправки электронной почты после сохранения нового комментария пользователям, которые проверили логическое значение в своем профиле?
Часть 2. Сохранение измененной даты
Возможно, вам придется добавить дополнительное действие правил для "сохранения сущности", потому что вам нужно напомнить Правила модуль также позволяет сохранить дату, которую вы обновили.