WooCommerce 产品上的 ACF 字段未显示

ACF fields on WooCommerce Product not displaying

我正在定制一个名为 AmazeTheme 的旧主题,它不是专门为 WooCommerce 支持而制作的。 woocommerce.php 位于主题的根部。然而,在 Simply Show HooksShow current template 等插件的帮助下,我能够看到将哪些信息放在哪里。

但是我遇到了一个奇怪的问题。我添加的 ACF 字段根本不可见。我什至尝试在产品循环部分分配字段组。

我也试过下面的方法

add_action( 'woocommerce_after_single_product_summary', 'view_acf_field_for_single_product', 10 );

function view_acf_field_for_single_product(){  
  if (function_exists('the_field')){
    the_field('shop_support');
  }

}

并且在单循环内-product.php

        <?php while ( have_posts() ) : the_post(); ?>

            <?php wc_get_template_part( 'content', 'single-product' ); 
                   $dump = get_fields();
            ?>
        <?php endwhile; // end of the loop. ?>

然后在文件的所需位置var_dump($dump)

本网站的 php 版本是 5.6.40,WooCommerce 版本是 3.4.8 WP版本为4.9.18

我查了很多解决办法。还尝试了 WooCommerce Hooks,但仍然不知道为什么 ACF 没有显示。

你能试试这个代码吗:

add_action( 'woocommerce_after_single_product_summary', 'view_acf_field_for_single_product', 10 );

function view_acf_field_for_single_product(){  
  global $post;
  if (function_exists('the_field')){
    the_field('shop_support', $post->ID);
  }

}

未测试。

由于一些奇怪的原因,这种方法对我有用 (path/to/theme/woocommerce/single-product.php):

<?php if (get_field_objects()): 
     foreach ( get_field_objects() as $field_id => $field ) : 
      $value = trim($field['value']); 
         if (!empty($value)) : 
?>
            <div class="product_field" id="field-<?php echo $field_id; ?>">
                <?php the_field($field_id); ?>
            </div>
        <?php endif; ?>
    <?php endforeach; // end of the loop. ?>
<?php endif; ?>

还有以下类别(path/to/theme/woocommerce/archive-product.php)页:

<?php
$extra_info = get_field_object( 'category_details', get_queried_object() );
if ( !empty($extra_info) ) :
?>
    <div class="category_field" id="field-<?php echo $extra_info['key']; ?>">
        <?php echo $extra_info['value']; ?>
    </div>

<?php endif; ?>

即使在这些位置,get_fields() 也不起作用。