Вопрос или проблема
Я пытался перенаправить свою контактную форму 7 на конкретную ссылку на PDF. Но я не уверен, как открыть ее в новой вкладке. Может кто-то помочь мне с этим?
Вот мой код…
add_action( 'wp_footer', 'mycustom_wp_footer' );
function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7submit', function( event ) {
if ( '876' == event.detail.contactFormId ) {
location = 'https://spilledsunshine.com/wp-content/uploads/2020/10/10-Reminders-To-Myself-By-Ishita-Mehta.pdf';
target="_blank";
}
}, false );
</script>
<?php
}
target=”_blank”; не работает, есть ли другой способ открыть в новой вкладке?
Вы правы,
<a target="_blank" href="https://google.com">Google</a>
Директива _blank
открывает ссылку в новом окне/вкладке, в зависимости от настроек браузера. Это единственный способ осуществить перенаправление в новой вкладке, но это полностью зависит от настроек браузера пользователя, на которые вы не можете повлиять.
Тем не менее, не рекомендуется открывать PDF в новом окне/вкладке.
Ответ или решение
Для решения задачи перенаправления на ссылку в новой вкладке при отправке формы Contact Form 7, необходимо внести некоторые изменения в имеющийся код. А именно, вам следует обрабатывать событие отправки формы так, чтобы открывать PDF-документ в новой вкладке браузера.
Необходимые изменения в коде
Ваш текущий подход использует location =
, который перенаправляет пользователя на новую страницу, не открывая её в новой вкладке. Вместо этого, для открытия документа в новой вкладке, мы можем использовать window.open()
. Вот исправленный код:
add_action( 'wp_footer', 'mycustom_wp_footer' );
function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7submit', function( event ) {
if ( '876' == event.detail.contactFormId ) {
// Открываем PDF в новой вкладке
window.open('https://spilledsunshine.com/wp-content/uploads/2020/10/10-Reminders-To-Myself-By-Ishita-Mehta.pdf', '_blank');
}
}, false );
</script>
<?php
}
Объяснение кода
- Событие отправки формы: Мы добавляем слушатель события
wpcf7submit
, который срабатывает при успешной отправке формы. - Проверка ID формы: Убедитесь, что условие проверяет правильный идентификатор вашей формы (в данном случае ‘876’).
- Использование
window.open
: Вместоlocation =
, мы применяемwindow.open()
, который открывает указанную ссылку в новой вкладке (_blank
). - Поведение браузера: Обратите внимание, что поведение при открытии новой вкладки зависит от настроек браузера пользователя. Некоторые пользователи могут блокировать всплывающие окна.
Рекомендации по открытию PDF-документов
Хотя открытие PDF в новой вкладке может быть удобным, рекомендуется учитывать, что это не всегда предпочтительно. Некоторые эксперты считают, что внезапное открытие нового окна может вызывать у пользователей раздражение. В таких случаях может быть целесообразнее оставить их на странице, предоставить вариант загрузки или использовать модальные окна для отображения контента.
Заключение
Обновлённый код позволит открывать PDF-документ в новой вкладке при отправке формы Contact Form 7. Сообщите пользователям о том, что при этом они могут быть перенаправлены для чтения/скачивания документа. Также учитывайте, что хороший пользовательский опыт улучшит взаимодействие с вашим сайтом и повысит его репутацию.