Вы используете get_field()
вне цикла, поэтому вам также необходимо указать идентификатор сообщения, с которого вы пытаетесь получить поле, например:
if(get_field('show_tab', $post_id)) : ?>
Сказав это, ваш код выглядит немного грязно, поэтому я предполагаю, что вы хотели, чтобы он был внутри цикла. Если это так, переместите все это вверх, возможно, после do_action( 'woocommerce_shop_loop' );
, тогда вам не нужно будет добавлять идентификатор, и он должен работать как есть.