Вставка HTML и PHP в функцию Javascript

#javascript #php #wordpress #plugins #innerhtml

Вопрос:

В настоящее время я работаю с плагином WordPress. Я внес изменения в один из файлов плагина, добавив простой HTML-код и переменную PHP, связанную с плагином. По сути, дублируя фрагмент кода, уже находящийся в файле, я могу перепрофилировать код с помощью простого CSS.

(По сути, плагин динамически отображает общую сумму продукта по мере добавления различных функций. Мне просто нужно было продублировать это и отобразить в виде фиксированного баннера, поэтому в файле плагина, который я добавил, нет ничего нового или изменяющего способ работы плагина.)

Я хотел бы иметь возможность добавлять этот код с помощью javascript, чтобы при обновлении плагина мои изменения не были потеряны.

Это то, что у меня есть до сих пор, но до сих пор у меня не было успеха

 function insertAfter(referenceNode, newNode) {  referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); }  var el = document.createElement("div"); el.innerHTML = "lt;div class="gt-banner-message"gt;  lt;div class="total-wrap"gt;  lt;spangt;lt;?php _e('Grand total: ','advanced-product-fields-for-woocommerce'); ?gt;lt;/spangt;  lt;span class="wapf-grand-total price amount"gt;lt;/spangt;  lt;/divgt;  lt;/divgt; "; var div = document.getElementsByClassName("wapf-product-totals"); insertAfter(div, el);  

Может кто-нибудь дать мне знать, где я, возможно, ошибаюсь здесь. Любой совет очень ценен.

Комментарии:

1. el.innerHTML = "lt;div class=" — вот где начинается и заканчивается это строковое значение, после чего начинается тарабарщина, которая делает синтаксис недействительным. И текстовые литералы в одинарных или двойных кавычках для начала не могут пересекать несколько строк в JS.

2. Вам нужно исправить проблему с котировками. Вы не можете вызвать PHP для запуска из JS div …:) так не работает … что вы можете сделать, так это вызвать эти данные до запуска JS… в переменную PHP и отобразить ее с помощью JS — вы можете запустить эту функцию PHP и вернуть ее в PHP var, например: $productFields и в JS var DatafromPHP = ‘lt;?php echo $productFields;?gt;’ — это применимо, если вывод функции представляет собой текстовую строку.

3. @Shlomtzion Спасибо за ответ. Итак, вы хотите сказать, что содержимое php внутри промежутка в моем коде выше должно быть объявлено еще до функции js?

4. Да, получите данные на PHP, которые запускаются до JS, и используйте их с JS.