Я использую настраиваемое поле Repeater of Advance для содержимого дополнительной пользовательской вкладки WooCommerce. Повторитель находится внутри группового поля. Мне удается отобразить пользовательские поля, которые находятся вне поля ретранслятора. Теперь проблема заключается в поле внутри моего поля ретранслятора. Поле ретранслятора не отображается. Вот код, который я использовал в моих functions.php
// Добавить пользовательскую вкладку
add_filter( 'woocommerce_product_tabs', 'dl_custom_product_designer_tab' ); function dl_custom_product_designer_tab( $tabs ) { // ensure ACF is available if ( !function_exists( 'have_rows' ) ) return; if ( get_field('designer') ) { $tabs[] = array( 'title' => 'DESIGNER', 'priority' => 50, 'callback' => 'dl_custom_designer_tab' ); } return $tabs; } function dl_custom_designer_tab() { $designer = get_field('designer'); echo '<p>'.$designer['designer_image'].'</p>'; echo '<p>'.$designer['designer_name'].'</p>'; echo '<p>'.$designer['designer_short_description'].'</p>'; // loop through the rows of data $achievements = get_field('designer_achievements'); if( $achievements ) { // loop through the rows of data echo '<ul>'; foreach($achievements as $achievement){ // display a sub field value echo '<li>'.$achievement['achievement'].'</li>'; } echo '</ul>'; } }
Я считаю, что вам нужно использовать get_sub_field () для поля ретранслятора (designer_achievements) и get_field () для своего родителя. Пожалуйста, ознакомьтесь с документацией ACF для подполя поля поля повторителя.
Вам также понадобится использовать цикл has_rows (), как указано в документации.
if( have_rows('parent_field') ): while( have_rows('parent_field') ) : the_row(); $value = get_sub_field('sub_field'); endwhile; endif;
замените $achievements = get_field('designer_achievements');
до $achievements = get_sub_field('designer_achievements');