WordPress перезаписать контактную форму mail_2 body

В настоящее время я сталкиваюсь с проблемой перезаписи содержимого тела the mail_2 в крючке wpcf7_before_send_mail,

Я пытаюсь переписать шорткод wpcf7 для более правильного представления содержимого с некоторыми изменениями HTML.

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

Пример кода:

add_action("wpcf7_before_send_mail", "cf7_wpcf7_custom", 99, 1);

# Before sending email
function cf7_wpcf7_custom($properties, $contact_form_obj) {
$submission = WPCF7_Submission::get_instance();
$wpcf7      = WPCF7_ContactForm::get_current();

$wpcf7->mail_2['body'] = str_replace('[checkbox-1]', '..test..', $wpcf7->mail_2['body']);

// No changes appearing
var_dump($wpcf7->mail_2['body']);

exit;
}

2

Решение

wpcf7_before_send_mail перехват выполняется до установки дополнительной почты. Так что будет перезаписано.

Мы можем изменить тело письма, используя фильтр wpcf7_additional_mail,

Например:

add_filter('wpcf7_additional_mail', 'customize_mail_2', 10, 2);
function customize_mail_2($additional_mail, $contact_form) {
$submission = WPCF7_Submission::get_instance();
$wpcf7      = WPCF7_ContactForm::get_current();

$additional_mail['mail_2']['body'] = '..do your replacement stuff';
return $additional_mail;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]