• Добрый вечер.

    Такая проблема.
    Вывожу в functions.php блок на странице товара:

    function woocommerce_desc_information() {
    $categ = array(
    'taxonomy' => 'product_cat',
    'hide_empty' => false,
    );
    $product_c = get_terms( $categ );
    
    if( is_category( $product_c ) ){
    echo '<h3 class="title-product">';
    echo 'Фурнитура к этому товару';
    echo '</h3>';
    
    echo '<div class="product-description">';
    
    echo '<a href="' . get_field( 'fur_link' ) . '">';
          echo '<span class="description-block__title description-title">';
                echo the_field('fur_title');
          echo '</span>';
    
          echo '<span class="description-block__image description-image">';
                echo '<img src="' . get_field( 'fur_img' ) . '" />';
          echo '</span>';
    echo '</a>';
    }
    }
    add_action('woocommerce_after_single_product_summary', 'woocommerce_desc_information', 12);
    function woocommerce_desc_information() {
    $categ = array(
    'taxonomy' => 'product_cat',
    'hide_empty' => false,
    );
    $product_c = get_terms( $categ );
    
    if( is_category( $product_c ) ){
    echo '<h3 class="title-product">';
    echo 'Фурнитура к этому товару';
    echo '</h3>';
    
    echo '<div class="product-description">';
    
    echo '<a href="' . get_field( 'fur_link' ) . '">';
          echo '<span class="description-block__title description-title">';
                echo the_field('fur_title');
          echo '</span>';
    
          echo '<span class="description-block__image description-image">';
                echo '<img src="' . get_field( 'fur_img' ) . '" />';
          echo '</span>';
    echo '</a>';
    }
    }
    add_action('woocommerce_after_single_product_summary', 'woocommerce_desc_information', 12);

    Блок не выводится нигде.
    Пытаюсь сделать проверку: Если категория такая -то, то выводим этот блок.

    Натолкните на правильный путь.

    • Тема изменена 5 лет, 10 месяцев назад пользователем hypero.
    • Тема изменена 5 лет, 10 месяцев назад пользователем hypero.
Просмотр 15 ответов — с 1 по 15 (всего 22)
  • Натолкните на правильный путь.

    Для начала надо дать ссылку на проблемную страницу.

    Страница на локалке

    Страница на локалке

    Тогда ваши трудности — это только ваши трудности.

    Зачем тут ссылка на сайт? Я приложил код

    Товарная категория в WC и штатная рубрика (в оригинале category) — две большие разницы.
    Условные теги WP: https://developer.wordpress.org/themes/basics/conditional-tags/
    Условные теги WC: https://docs.woocommerce.com/document/conditional-tags/

    Зачем тут ссылка на сайт? Я приложил код

    На этом форуме постоянно говорится о нецелесообразности разработки сайта на локальном хостинге по многим причинам.В частности, как правило, то что работает на локалке — перестанет работать при переносе сайта на реальный хостинг и соответственно наоборот. То есть получаются «игры в песочнице».

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

    • Ответ изменён 5 лет, 10 месяцев назад пользователем O.

    Spectrum, в данном случае это неуместно (без разницы).

    Поехали дальше. Хук ‘woocommerce_after_single_product_summary’ присутствует только в шаблоне content-single-product.php. Это значит, что хук может сработать только при выводе страницы товара и что false гарантировано для проверки на вывод архива таксономии, даже правильной с точки зрения сввязей запись-таксономия.
    Возможно, Вам нужна проверка has_term.

    Попробовал таким образом
    if( is_product_category( 'razdvizhnye-dveri' ) ){ ... }
    Не выводится всё равно.

    возможно у вас дрогнула рука…

    два раза в наличии: function woocommerce_desc_information()
    два раза в наличии: add_action(‘woocommerce_after_single_product_summary’, ‘woocommerce_desc_information’, 12);

    и у вас не закрыт: <div class="product-description">

    Я не весь код просто выложил, он большой.

    function woocommerce_desc_information() {
    
    	if( is_product_category( 'razdvizhnye-dveri' ) ){
    	echo '<h3 class="title-product">';
    		echo 'Фурнитура к этому товару';
    	echo '</h3>';
    
    	echo '<div class="product-description">';
    
    		echo '<a href="' . get_field( 'fur_link' ) . '" class="product-description__block description-block">';
    			echo '<span class="description-block__title description-title">';
    				echo the_field('fur_title');
    			echo '</span>';
                        echo '</a>';
    
    	echo '</div>';
    	}
    }
    add_action('woocommerce_after_single_product_summary', 'woocommerce_desc_information', 12);

    Примерно так, там много повторяющихся блоков, оставил только 1.

    • Ответ изменён 5 лет, 10 месяцев назад пользователем hypero.
    • Ответ изменён 5 лет, 10 месяцев назад пользователем hypero.
    • Ответ изменён 5 лет, 10 месяцев назад пользователем hypero.

    is_product_category() is to be used on woocommerce category archive pages only. This conditional tag will return always false in all other pages (shop pages, product single pages, cart, checkout, my-account pages…)

    А как же быть со страницей карточки товара (одиночная запись товара)

    На бис 🙂

    Возможно, Вам нужна проверка has_term.

    https://codex.wordpress.org/Function_Reference/has_term

    Попробовал таким образом
    if (has_term('razdvizhnye-dveri') )

    razdvizhnye-dveri — в моем случае это slug категории woocommerce.

    Пока нет прогресса.

Просмотр 15 ответов — с 1 по 15 (всего 22)
  • Тема «Проблема с выводом блока» закрыта для новых ответов.