ЦЕЛЬ: Используйте фильтр wpcf7_form_response_output
для динамического изменения «сообщения об успехе», которое отображается пользователю при успешной отправке формы.
ВЫПУСК: Когда в нижнем колонтитуле вызывается wp_footer
. php, фильтр у меня на месте не будет работать - никогда. Однако, когда wp_footer
отключен / удален, фильтр будет работать. Кроме того, я заметил, что когда wp_footer
не активен, после отправки CF7 добавит идентификатор формы к URL-адресу (то есть # wpcf7-f2294-p2295-o1). К сожалению, мне нужно включить wp_footer
.
МОЙ КОД ФИЛЬТРА:
function filter_wpcf7_response_output( $output ){
$date = date('Ymd');
if( strpos($output, 'wpcf7-mail-sent-ok') ) {
var_dump($output);
echo "in if statement";
?>
<script>
jQuery(function ($) {
$(document).ready(function () {
var newOutput = "Reference ID:" + <?=$date?> + "-00" + "5"+ ". Thank you for your message. It has been sent.";
$('.wpcf7-mail-sent-ok').html(newOutput);
});
});
</script>
<? }
return $output;
}
add_filter( 'wpcf7_form_response_output', 'filter_wpcf7_response_output', 10, 1);
ПОПЫТКИ:
- Попытка отключения прослушивателей событий для события "mailing send" .
- Попробовал "жесткое" решение методом
.on("click", ...)
jQuery. В конечном счете, не удалось изменить html «сообщения об успехе», поскольку указанное сообщение не отображается в DOM, поэтому jQuery не может найти его.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
- Используемая тема является пользовательской темой, использующей Twenty Fifteen в качестве модели / ядра
- Невозможно предоставить информацию, специфичную для сайта c, так как это для бизнес-клиента
ВОЗМОЖНОЕ РЕШЕНИЕ:
- Один из способов сделать так, чтобы
wp_footer
вызывался в footer.php
, и использовать вышеупомянутый фильтр, это если я отключил скрипт CF7, используя: add_filter( 'wpcf7_load_js', '__return_false' );
.