Описание woocommerce_register_post_type
— Action
Хук woocommerce_register_post_type позволяет зарегистрировать пользовательские типы товаров в WooCommerce. Он срабатывает во время инициализации пользовательских типов постов и позволяет расширить функциональность магазина, добавляя новые типы товаров с уникальными характеристиками
Примеры использования
Пример регистрации пользовательского типа товара ‘мебель’:
add_action('woocommerce_register_post_type', function() {
register_post_type('furniture', array(
'labels' => array(
'name' => 'Мебель',
'singular_name' => 'Мебель'
),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'thumbnail')
));
});
В этом примере мы создаем новый тип товара ‘мебель’ с поддержкой заголовков, редактора и миниатюр
Пример добавления пользовательских полей для типа товара ‘мебель’:
add_action('woocommerce_register_post_type', function() {
register_post_type('furniture', array(
'labels' => array(
'name' => 'Мебель',
'singular_name' => 'Мебель'
),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'thumbnail'),
'meta_box_cb' => 'furniture_meta_box'
));
});
function furniture_meta_box($post) {
// Ваш код для отображения пользовательских полей
}
Здесь мы добавляем функцию для отображения пользовательских полей в метабоксе товара ‘мебель’
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо зарегистрировать новый пользовательский тип товара в WooCommerce, чтобы расширить функциональность магазина
– Производительность
Регистрация пользовательских типов товаров может повлиять на производительность, если используется неправильно. Убедитесь, что вы оптимизировали код и не добавляете избыточные функции
– Предупреждения
Будьте внимательны при использовании этого хука, чтобы избежать конфликтов с существующими типами товаров и плагинами
Альтернативы
Тип: action
Этот хук позволяет добавлять дополнительные поля к стандартным типам товаров WooCommerce
Используйте его, если нужно расширить функциональность стандартных товаров, а не создавать новые типы