У меня есть разные синглы, созданные WordPress, в каждом из которых у меня есть 2 div, которые в зависимости от того, на который нажимали (и успешной отправки формы), должны загружаться в формате PDF, прикрепленном в пользовательском атрибуте.
Я назначил 2 пользовательских атрибута, называемых «data-download» и «data-type». data-download содержит URL-адрес pdf-файла, который должен быть загружен, а «data-type» содержит тип div.
Примечание: у меня не всегда будут одинаковые URL-адреса, в зависимости от того, какой файл создан пользователемURL-адрес изменится, поэтому просто набрать обычный / статический URL-адрес не то, что я ищу.
Вот divs:
<div class="btn-main" id="btn-manual" name="some-title" data-type="manual" data-download="some-url" data-toggle="modal" data-target="#download">Manual</div>
<div class="btn-main" id="btn-data" name="some-title" data-type="data" data-download="some-url" data-toggle="modal" data-target="#download">Data</div>
Я пытался получить его напрямую с идентификаторомно он только-всегда загружает файл в первом случае, если («руководство» всегда загружается), он никогда не входит в остальное. Из-за этого я не уверен, что условия в if правильные ...
Я использовал функцию, предоставленную контактной формой 7 в "Functions.php":
add_action( 'wp_footer', 'mycustom_wp_footer' );
function mycustom_wp_footer()
{
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event )
{
if(document.getElementById('btn-manual').onclick)
{
var divManual = document.getElementById('btn-manual');
var dwnld = divManual.getAttribute('data-download');
var title = divManual.getAttribute('name');
var filetitle = "Manual - " + title;
}
else
{
if(document.getElementById('btn-data').onclick)
{
var divData = document.getElementById('btn-data');
var dwnld = divData.getAttribute('data-download');
var title = divData.getAttribute('name');
var filetitle = "Ficha_Tecnica - " + title;
}
}
download(dwnld, filetitle);
function download(dataurl, filename)
{
var a = document.createElement("a");
a.href = dataurl;
a.setAttribute("download", filename);
a.click();
}
}
}
Я также попытался использовать условия, чтобы, если «тип данных» был таким же, как у const, он загружал файл в соответствии с этим div, но он не работал ...
add_action( 'wp_footer', 'mycustom_wp_footer' );
function mycustom_wp_footer()
{
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event )
{
if ( '1134' == event.detail.contactFormId )
{
let div = document.getElementsByClassName('btn-main');
let type = div.getAttribute('data-type');
const manual = "manual";
const data = "data";
if (type === manual)
{
let dwnld = div.getAttribute('data-download');//url of manual
title = div.getAttribute('name');
let filetitle = "Manual - " + title;
}
if (type === data)
{
let dwnld = div.getAttribute('data-download');//url of data
let title = div.getAttribute('name');
let filetitle = "Ficha_Tecnica - " + title;
}
download(dwnld, filetitle);
function download(dataurl, filename)
{
var a = document.createElement("a");
a.href = dataurl;
a.setAttribute("download", filename);
a.click();
}
}
}
}
Ближайшийрезультат, который я получил, был первым кодом, который я показал (поскольку он на самом деле что-то загружает), но я не уверен, что это общий правильный подход, который я должен использовать, или даже если условия верны ...
Извинитено я новичок ...