Woocommerce - как определить, имеет ли товар сообщение или нет
Я пытаюсь изменить шаблон короткого описания на разные (отдельные) страницы продукта, чем на простые продукты. код на этой странице находится здесь:
global $post;
if ( ! $post->post_excerpt ) return;
?>
<div itemprop="description">
<?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>
</div>
Я хочу добавить некоторый код в оператор if, который будет чем-то вроде
if post has variations, don't display short description, if simple product DO display
но я не могу найти никакого способа в коде, чтобы различать обычный простой товарный пост и тот, который является переменным (имеет вариации). И просматривая документы API на сайте Woo (http://docs.woothemes.com/wc-apidocs/), я не нашел ничего подобного.
Ответы
Ответ 1
После сильной боли я нашел следующие два решения:
В цикле продуктов вы можете использовать это:
if( $product->has_child() ) {
но по какой-то причине в кратком описании на странице одного продукта мне пришлось использовать это:
global $post;
$children = get_pages('child_of='.$post->ID);
if( count( $children ) !== 0 ) {
Надеюсь, это поможет другим, которые боролись, как я...
Ответ 2
Используйте функцию $product->is_type()
, чтобы проверить тип продукта. Чтобы проверить, является ли продукт переменной продуктом:
global $product;
// $product->is_type( $type ) checks the product type, string/array $type ( 'simple', 'grouped', 'variable', 'external' ), returns boolean
if ( $product->is_type( 'variable' ) ) {}
Существует также функция $product->get_type()
, которая возвращает внутренний тип продукта в виде строки.