Настраиваемое настраиваемое поле Wordpress Woocommerce True / False всегда возвращает NULL - PullRequest
0 голосов
/ 17 сентября 2018

Я создал advanced-custom-field типа true/false. Цель состоит в том, чтобы показать некоторые товары из моего магазина woocommerce или нет. По какой-то причине результат всегда NULL, и я не знаю почему. Я также сидел в поле «Показать только на странице магазина» (который использует archive-products.php)

Вот что я пытаюсь:

if ( woocommerce_product_loop() ) {

woocommerce_product_loop_start();

if ( wc_get_loop_prop( 'total' ) ) {
    while ( have_posts() ) {
        the_post();

        do_action( 'woocommerce_shop_loop' );

        wc_get_template_part( 'content', 'product' );
    }
}
if(get_field('show_tab')) : ?>
<li class="extra">';
   ...show some stuff
</li>
<?php endif;
echo '</ul>';

} else {

  do_action( 'woocommerce_no_products_found' );
}

Как упомянуто выше, поле True / False всегда возвращает NULL

Может ли кто-нибудь мне помочь

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Вы используете get_field() вне цикла, поэтому вам также необходимо указать идентификатор сообщения, с которого вы пытаетесь получить поле, например:

if(get_field('show_tab', $post_id)) : ?>

Сказав это, ваш код выглядит немного грязно, поэтому я предполагаю, что вы хотели, чтобы он был внутри цикла. Если это так, переместите все это вверх, возможно, после do_action( 'woocommerce_shop_loop' );, тогда вам не нужно будет добавлять идентификатор, и он должен работать как есть.

0 голосов
/ 17 сентября 2018

Ваш get_field('show_tab') находится за пределами цикла продуктов.Поместите его в цикл while.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...