Задать вопрос

Как добавить поле Carbon Fields в категорию товара WooCommerce

Настройки:

use Carbon_Fields\Container;
use Carbon_Fields\Field;

add_action('carbon_fields_register_fields', 'register_homepage_category_fields');
function register_homepage_category_fields() {
    Container::make('term_meta', __('Настройки для главной страницы'))
        ->where('term_taxonomy', '=', 'product_cat') // Только для категорий товаров
        ->add_fields(array(
            Field::make('checkbox', 'cat_main', __('Показывать в категоризаторе на главной'))
                ->set_option_value('yes')
                ->set_help_text('Отметьте, чтобы вывести эту категорию в блоке категоризатора на главной странице'),
                
            Field::make('image', 'cat_image_bg', __('Фоновое изображение категории'))
                ->set_value_type('url')
                ->set_help_text('Рекомендуемый размер: 1920x600px')
                ->set_width(50),
                
            Field::make('image', 'cat_image_icon', __('Иконка категории (PNG)'))
                ->set_value_type('url')
                ->set_help_text('Загрузите иконку в формате PNG с прозрачным фоном')
                ->set_width(50),
                
            Field::make('color', 'cat_color', __('Акцентный цвет категории'))
                ->set_palette(array('#FF0000', '#00FF00', '#0000FF'))
                ->set_help_text('Выберите цвет для акцентов этой категории'),
        ));
}

Вывод в шаблоне:

$categories = get_terms(array(
    'taxonomy' => 'product_cat',
    'hide_empty' => true,
    'meta_query' => array(
        array(
            'key' => '_cat_main',
            'value' => 'yes',
            'compare' => '='
        )
    )
));

foreach ($categories as $category) {
    $bg_image = carbon_get_term_meta($category->term_id, 'cat_image_bg');
    $icon = carbon_get_term_meta($category->term_id, 'cat_image_icon');
    $color = carbon_get_term_meta($category->term_id, 'cat_color');
    
    echo '<div class="category-item" style="background-color: '.$color.'">';
    echo '<div class="category-bg" style="background-image: url('.$bg_image.')"></div>';
    echo '<img src="'.$icon.'" alt="'.$category->name.'" class="category-icon">';
    echo '<h3>'.$category->name.'</h3>';
    echo '</div>';
}
Яндекс.Метрика