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(), которая возвращает внутренний тип продукта в виде строки.