Добавить контент между <nav>и <ul>в учетной записи WooCommerce - PullRequest
0 голосов
/ 19 июня 2019

Я делаю настраиваемую панель мониторинга для WC и мне нужно добавить контент между элементами nav и ul в меню WooCommerce на панели инструментов.

Я видел, что есть хук с именем woocommerce_before_account_navigation и woocommerce_after_account_navigation , но эти хуки добавляют контент после или перед всем элементом nav.

Вот фотография того, что я пытаюсь сделать.

a busy cat

Кто-то получил решение?

Ответы [ 2 ]

2 голосов
/ 19 июня 2019

Поскольку WooCommerce не предоставляет хуков для внедрения кода именно там, где вам нужно:

# 1 Настройте раздел навигации из своей темы

Поскольку WooCommerce позволяет вам переопределить большинствоиз его файлов шаблонов вы можете:

  1. Скопировать файл navigation.php, расположенный по адресу /wp-content/plugins/woocommerce/templates/myaccount/.
  2. Вставить этот файл в /wp-content/themes/your-theme/woocommerce/myaccount/.
  3. Внесите необходимые изменения.
  4. Прибыль!

Имейте в виду, что вы будете время от времени следить за обновлениями WC, поскольку вфайлы, которые вы переопределяете, и которые вы, возможно, захотите / нуждаетесь в портировании.

или ...

# 2 Вставьте свой код в нужное место, используя AJAX & JS

Используйте WordPress 'AJAX API для генерации необходимого вам HTML-вывода и вставьте его прямо между тегами nav и ul, используя jQuery / vanilla JavaScript.

Таким образом, выизбегать необходимости переопределять шаблоны WC.Имейте в виду, что если вы делаете это при использовании плагина кэширования на вашем сайте, вам необходимо настроить его так, чтобы он перестраивал свой кэш каждые ~ 24 часа или меньше, иначе у некоторых пользователей может произойти сбой ( пример * 1035)*).

0 голосов
/ 19 июня 2019

Ну .... самый простой, но не самый лучший способ:

Вручную поместите пустой тег div, чтобы ваш код стал что-то вроде:

<nav class= 'woocommerce-MyAccount-navigation'>
<div style ='blah-blah'>//that div after the nav bar ;TLDR
<div id='newDiv></div>
<ul>//etc

Заверните код для отображения информации о пользователе, аватара и имени в функции php (я назвал мой getUsernameAndStuff ()) позволяя id быть идентификатором пользователя.

Как:

<?php 
function getUsernameAndStuff(id){
//put the code here..
}
?>

Затем с помощью js:

<script>document.getElementById().innerHTML=<?php getUsernameAndStuff(id)?></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...