Эх, как всегда, нашел решение сам…
Я не знаю, почему на этом вукоммерс не реализовали необходимый функционал по выводу характеристик выбранной вариации в таблице, без костылей и синей изоленты никуда…
Инструкция (Я разработал минимально рабочий код, оставляю на Ваше усмотрение оптимизацию кода.).
Инструкция по внедрению в таблицу Детали значения выбранной вариации
Идем в файл \wp-content\themes\{Ваша_тема}\woocommerce\single-product\add-to-cart\variation.php
Инициализируем Все необходимые поля. И скрываем в публичной части сайта. {У меня есть свои кастомные поля, можете посмотреть, как их добавлять в админке, ищите по ключевым словам «woocommerce_wp_text_input» «load_variation_settings_fields» }
<script type="text/template" id="tmpl-variation-template">
<div class="woocommerce-variation-description" style="display:none;">
<code>data.variation.variation_description</code>
</div>
<div class="woocommerce-sleep_place-description" style="display:none;">
<code>data.variation.sleep_place</code>
</div>
<div class="woocommerce-volume-description" style="display:none;">
<code>data.variation.volume</code>
</div>
<div class="woocommerce-volume-description" style="display:none;">
<code>data.variation.cloth_type</code>
</div>
<div class="woocommerce-variation-availability" style="display:none;">
<code>data.variation.availability_html</code>
</div>
<div class="woocommerce-open_size-availability" style="display:none;">
<code>data.variation.open_size</code>
</div>
<div class="woocommerce-max_load-availability" style="display:none;">
<code>data.variation.max_load</code>
</div>
<div class="woocommerce-carcas_material-availability" style="display:none;">
<code>data.variation.carcas_material</code>
</div>
<div class="woocommerce-prod_time-availability" style="display:none;">
<code>data.variation.prod_time</code>
</div>
<div class="woocommerce-garantee-availability" style="display:none;">
<code>data.variation.garantee</code>
</div>
<div class="woocommerce-variation-price">
<code>data.variation.price_html</code>
</div>
</script>
В functions.php Вашей активной темы прописываете JS, где производится сбор скрытых ранее полей атрибутов, очищение таблицы «Детали» и формирование новой
Код в functions.php
add_action( 'wp_footer', 'variations_change_javascript', 99999 ); // для фронта
function variations_change_javascript() { ?>
<script>
function empty( mixed_var ) { // Determine whether a variable is empty
return ( mixed_var === "" || mixed_var === 0 || mixed_var === "0" || mixed_var === null
|| mixed_var === false || ( Array.isArray(mixed_var) && mixed_var.length === 0 ) );
}
jQuery(document).ready(function($) {
var attributes = new Map();
jQuery("#variation_id").bind("change", function() {
// console.log("ID: " + jQuery(this).val());
if($(".sku").text().length > 0) {
attributes.set('Артикул',$(".sku").text()+"");
}
if ($(".woocommerce-sleep_place-description").text().length > 0) {
attributes.set('Спальное место, мм',$(".woocommerce-sleep_place-description").text()+"");
}
if ($(".woocommerce-volume-description").text().length > 0) {
attributes.set('Объем, кб. м',$(".woocommerce-volume-description").text()+"");
}
if ($(".woocommerce-open_size-availability").text().length > 0) {
attributes.set('Габариты в разложенном виде, мм',$(".woocommerce-open_size-availability").text()+"");
}
if ($(".woocommerce-max_load-availability").text().length > 0) {
attributes.set('Максимальная нагрузка, кг',$(".woocommerce-max_load-availability").text()+"");
}
if ($(".woocommerce-carcas_material-availability").text().length > 0) {
attributes.set('Материалы каркаса',$(".woocommerce-carcas_material-availability").text()+"");
}
if ($(".woocommerce-prod_time-availability").text().length > 0) {
attributes.set('Сроки изготовления',$(".woocommerce-prod_time-availability").text()+"");
}
if ($(".woocommerce-garantee-availability").text().length > 0) {
attributes.set('Гарантия изготовителя',$(".woocommerce-garantee-availability").text()+"");
}
jQuery(".options-product tbody").empty();
var fields="";
if (attributes.size > 0) {
attributes.forEach(function(value, key) {
if(value.length > 0){
fields+='<tr>';
fields+='<th class="product-attributes-item__label">'+key+'</th>';
fields+='<td class="product-attributes-item__value">'+value+'</td>';
fields+='</tr>';
jQuery(".options-product tbody").append(fields);
fields = "";
}
});
}
});
});
</script>
<?}
Получаете то, что нужно. Код можно доработать, чем я и занимаюсь