Как можно установить условие для отображения кнопки только для одного товара в определенной категории?

Привет всем! <br/> Поделитесь, пожалуйста, советом о том, какую функцию использовать. <br/> <br/> У меня есть сайт-каталог, построенный на WordPress с использованием WooCommerce. В файле content-single-product.php я добавил кнопку со ссылкой на другую страницу сайта. У меня есть 16 категорий товаров. <br/> <br/> Мне нужно, чтобы эта кнопка отображалась для всех товаров в 15 категориях. Однако в 1 категории я хочу, чтобы кнопка была показана только для одного конкретного товара. <br/> <br/> Я пишу следующий код: <br/> <pre><code class="php">&lt;?php if ( is_object_in_term( $post-&gt;ID, 'product_cat', 'marketing-materials' ) ):?&gt;
								
					&lt;?php else :?&gt;
						&lt;a href="/where-to-buy" class="btn product-more__btn  product-more__btn--fill"&gt;
							Купить
						&lt;/a&gt;
					&lt;?php endif; ?&gt;</code></pre>
  • 1 декабря 2024 г. 20:33
Ответы на вопрос 2
Чтобы реализовать показ кнопки только для одного товара в определенной категории, вам нужно внести небольшие изменения в ваш код. Так как у вас есть 15 категорий, для которых кнопка будет показываться всем товарам, и 1 категория, в которой кнопка должна отображаться только для одного конкретного товара, вам нужно проверить как категорию, так и ID товара.

Вот пример кода, который может помочь вам:

```php
<?php 
// Установите ID товара, для которого кнопка будет показана в категории "marketing-materials"
$target_product_id = 123; // Замените 123 на фактический ID вашего товара

if ( is_object_in_term( $post->ID, 'product_cat', 'marketing-materials' ) ) {
    // Проверяем, является ли этот товар тем, для которого нужно показать кнопку
    if ( $post->ID === $target_product_id ) {
        // Показываем кнопку только для целевого товара
        ?>
        <a href="/where-to-buy" class="btn product-more__btn product-more__btn--fill">
            Купить
        </a>
        <?php
    }
} else {
    // Показываем кнопку для всех товаров в других категориях
    ?>
    <a href="/where-to-buy" class="btn product-more__btn product-more__btn--fill">
        Купить
    </a>
    <?php
}
?>
```

В этом коде:
- Проверяется, находится ли товар в категории `marketing-materials`.
- Если да, то проверяется, является ли ID этого товара равным `$target_product_id`, который вы установили как ID товара, для которого кнопка должна отображаться.
- Если оба условия выполняются, кнопка будет показана.
- Если товар не в категории `marketing-materials`, кнопка будет показана для всех остальных товаров.

Не забудьте заменить `123` на фактический ID товара, для которого вы хотите показать кнопку.
Если нужно выводить что-то в одном товаре, очевидно, нужно в условии использовать id этого товара. 
if ($post->ID == 45)
Похожие вопросы