Перехват wpcf7_form_response_output не отвечает, когда вызывается wp_footer - PullRequest
0 голосов
/ 11 февраля 2020

ЦЕЛЬ: Используйте фильтр 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' );.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...