Как я могу манипулировать телом почты ninja forms (3), основываясь на вводе пользователя?
пример:
Пользователь заполняет zipcode
поле, и я не хочу добавлять данные в тело письма ближайшего магазина.
Единственный полезный фильтр, который я нашел, это «ninja_forms_submit_data
Msgstr «Но он возвращает только идентификаторы полей и пользовательский ввод.
Мне нужен ключ поля, чтобы я мог использовать его в качестве ссылки.
Там есть фильтр с именем ninja_forms_action_email_message
это можно использовать для настройки тела письма. Исходный код Вот.
Фильтр имеет три аргумента:
$message
Это (HTML) строка текущего тела письма$data
Данные формы (включая данные о форме и представлении пользователя)$action_settings
Параметры для отправки электронного письма (на адрес и т. Д.)Пример:
function custom_email_body_content($message, $data, $action_settings) {
// You may want to check if the form needs to be customised here
// $data contains information about the form that was submitted
// Eg. if ($data[form_id]) === ...
// Convert the submitted form data to an associative array
$form_data = array();
foreach ($data['fields'] as $key => $field) {
$form_data[$field['key']] = $field['value'];
}
// Do something to the email body using the value of $form_data['zipcode']
// Maybe a str_replace of a token, or generate a new email body from a template
// Return the modified HTML email body
return $message;
}
add_filter('ninja_forms_action_email_message', 'custom_email_body_content', 10, 3);
Других решений пока нет …