#php #wordpress #woocommerce
Вопрос:
Сообщество StackOverflow. Я хотел бы попросить вас о помощи.
Моя проблема в том, что я хочу отобразить текст всех подкатегорий в карточке основной категории. Использование этого кода,
add_action('woocommerce_after_subcategory_title', 'woocommerce_subcats_from_parentcat_by_ID', 30); function woocommerce_subcats_from_parentcat_by_ID($category) { $parent_category_ID = $category-gt;term_id; $args = array( 'hierarchical' =gt; 1, 'show_option_none' =gt; '', 'hide_empty' =gt; 0, // Set to 0 to show empty categories and 1 to hide them 'parent' =gt; $parent_category_ID, 'taxonomy' =gt; 'product_cat' ); $subcategories = get_categories($args); echo 'lt;div class="custom_subcategory_main"gt;'; echo 'lt;span class="custom_subcategory_klasy"gt;Dostępne klasy:lt;/spangt;lt;brgt;'; foreach ($subcategories as $subcategory) { echo 'lt;spangt; '.$subcategory-gt;name.'lt;/spangt;'; } echo 'lt;brgt;'; echo 'lt;span class="custom_subcategory_klasy"gt;Poziom:lt;/spangt;lt;brgt;'; echo 'lt;spangt;Szkoła podstawowalt;/spangt;'; echo 'lt;/divgt;'; }
текст подкатегорий правильно отображается в карточке основной категории [экран ниже].
Проблема в том, что после перехода к подкатегории продукта она все еще видна, и я хотел бы ее скрыть. Точнее, я хотел бы скрыть эту часть кода [экран ниже].
echo 'lt;span class="custom_subcategory_klasy"gt;Dostępne klasy:lt;/spangt;lt;brgt;';
Комментарии:
1. Если вы просто получаете этот заголовок, но под ним нет выходных данных, это должно означать
$subcategories
, что он не содержал никаких элементов, поэтому цикл foreach вообще не повторялся. Поэтому оберните все это в условие, которое проверяет, не пуст ли этот массив.
Ответ №1:
Если я правильно понимаю, как только вы попадете в подкатегорию, больше детей не будет. Таким образом, вы можете поместить проверку внутри своей функции, чтобы узнать, существуют ли дети, и если нет, выйти:
add_action('woocommerce_after_subcategory_title', 'woocommerce_subcats_from_parentcat_by_ID', 30); function woocommerce_subcats_from_parentcat_by_ID($category) { $parent_category_ID = $category-gt;term_id; $args = array( 'hierarchical' =gt; 1, 'show_option_none' =gt; '', 'hide_empty' =gt; 0, // Set to 0 to show empty categories and 1 to hide them 'parent' =gt; $parent_category_ID, 'taxonomy' =gt; 'product_cat' ); $subcategories = get_categories( $args ); if ( empty ( $subcategories ) ) return; // exit echo 'lt;div class="custom_subcategory_main"gt;'; echo 'lt;span class="custom_subcategory_klasy"gt;Dostępne klasy:lt;/spangt;lt;brgt;'; foreach ($subcategories as $subcategory) { echo 'lt;spangt; '.$subcategory-gt;name.'lt;/spangt;'; } echo 'lt;brgt;'; echo 'lt;span class="custom_subcategory_klasy"gt;Poziom:lt;/spangt;lt;brgt;'; echo 'lt;spangt;Szkoła podstawowalt;/spangt;'; echo 'lt;/divgt;'; }
Комментарии:
1. Да, вы правильно поняли. На самом деле, ваш код делает именно то, что мне нужно. Спасибо вам за вашу помощь.