Здравствуйте, изучаю WooComerce, Нашел верстку интернет-магазина, там есть блок "Новинки", "Хиты продаж". Хочу сделать так, чтобы в админке можно было указать, какие именно товары выводить в этом блоке, плюс у каждого из этих товаров в углу на карточке должно отображаться, что это, допустим, "Новинка".
Немного раскинув мозгами нашел два варианта, особо друг от друга не отличаются. Добавлять произвольное поле при помощи хуков Woocomercе или помощи других плагинов (по типу Carbon, ACF, CFS и тп).
Добавил поле при помощи Woo следующим образом:
add_action( 'woocommerce_product_options_general_product_data', 'art_woo_add_custom_fields' );
function art_woo_add_custom_fields() {
global $product, $post;
echo '<div class="options_group">';// Группировка полей
woocommerce_wp_checkbox( array(
'id' => '_checkbox',
'wrapper_class' => 'show_if_simple',
'label' => 'Чекбокс',
'description' => 'Новинка',
) );
woocommerce_wp_text_input( array(
'id' => '_number_field',
'label' => __( 'Порядковый номер', 'woocommerce' ),
'placeholder' => 'Порядковый номер на главной',
'description' => __( 'Вводятся только числа', 'woocommerce' ),
'type' => 'number',
'custom_attributes' => array(
'step' => '1',
'min' => '0',
),
) );
echo '</div>';
}
И попытался вывести на главной:
<?php
$loop = new WP_Query( array(
'post_type' => 'product',
'posts_per_page' => 4,
'orderby' => 'date',
));
?>
<?php if ($loop->have_posts()) : ?>
<?php while ($loop->have_posts()) :
$loop->the_post();
$product = wc_get_product();
dump($product);
dump($product->get_meta( '_checkbox', true ));?>
<?php endwhile; endif;?>
Но ничего пока не получилось.
Вопрос в следующем: как это можно было бы реализовать более правильно или как доработать мой вариант? Палками не бейте, на ву первый опыт.