Как отправить URL-адрес в формате PDF в пользовательском атрибуте и загрузить его после успешной отправки в контактную форму 7? - PullRequest
0 голосов
/ 03 ноября 2019

У меня есть разные синглы, созданные 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();
                }
            }
       }
}

Ближайшийрезультат, который я получил, был первым кодом, который я показал (поскольку он на самом деле что-то загружает), но я не уверен, что это общий правильный подход, который я должен использовать, или даже если условия верны ...

Извинитено я новичок ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...