#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.