Вывод произвольных полей в таблице сравнения, Woocommerce

В моем проекте WooCommerce для сравнения используется плагин YITH WooCommerce Compare. В нем нет возможности вывода произволных полей. Я добавила в темплейт compare.php код. В итоге во всех таблицах выводится одно и тоже поле для всех продуктов. Я понимаю, что моя ошибка в непонимании как правильно вывести это в цикле.

         foreach ($products as $product_id => $product) :
                        $product_class = ($index % 2 == 0 ? 'odd' : 'even') . ' product_' . $product_id;
                        $select_field      = get_post_meta( $post->ID, '_select', true );                                           ?>
                        <td class="<?php echo esc_attr( $product_class ); ?>"><?php
                            switch ($field) {
                                
                            case 'description':
                            global $post, $product;
                           
                            $arg = array( 'p' => $_POST['id'],'post_type' => array( 'product' ) );
                         $theme_post_query = new WP_Query( $arg );
       
                       echo $all_text_field     = get_post_meta( $theme_post_query->the_post($post->ID)); ?><div class="fild-desc-wrap"><?php
    
                    if ( $select_field ) { ?>
                      <div class="fild-desc">
                        <strong>Производство: </strong>
                          <p><?php echo $select_field ?></p>
                      </div>
                 <?php } ?>
                    </div>
                 <?php 
                  );
                            break;
}
                            ?>
                        </td>
                        <?php
                        ++$index;
                    endforeach; ?>

                </tr>

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Valerii Vasiliev

Для начала нужно удалить вот эту жесть. Вообще тут какой-то код, который не понятно что делает - удалить

global $post, $product;
                           
$arg = array( 'p' => $_POST['id'],'post_type' => array( 'product' ) );
                         $theme_post_query = new WP_Query( $arg );
       
echo $all_text_field     = get_post_meta( $theme_post_query->the_post($post->ID)); 

Верхние строчки заменить на :

 foreach ($products as $product_id => $product) :
    
       the_post($product_id);


Вместо удаленных строк

echo $all_text_field     = get_post_meta(); 
→ Ссылка