Описание wc_product_has_unique_sku
— Filter
Хук wc_product_has_unique_sku позволяет проверить уникальность SKU товара при его сохранении. Он срабатывает перед сохранением товара в базе данных и может быть использован для изменения логики проверки уникальности SKU, влияя на возможность сохранения товара
Примеры использования
Пример изменения логики проверки уникальности SKU:
add_filter('wc_product_has_unique_sku', function($has_unique_sku, $product) {
// Проверяем на уникальность SKU только для определенного типа товара
if ($product->get_type() === 'simple') {
// Дополнительная логика проверки
$existing_skus = get_option('my_custom_skus', []);
if (in_array($product->get_sku(), $existing_skus)) {
return false;
}
}
return $has_unique_sku;
}, 10, 2);
В этом примере добавляем свою логику проверки SKU для простых товаров
Пример блокировки сохранения товара с неуникальным SKU:
add_filter('wc_product_has_unique_sku', function($has_unique_sku, $product) {
if (!$has_unique_sku) {
// Здесь можно добавить уведомление или другую логику
add_filter('woocommerce_admin_notices', function() {
echo 'SKU должен быть уникальным!';
});
}
return $has_unique_sku;
}, 10, 2);
В этом примере, если SKU не уникален, выводится уведомление в админке
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить логику проверки уникальности SKU при сохранении товара
– Производительность
Хук может повлиять на производительность, если логика проверки сложная или обращается к базе данных
– Предупреждения
Следите за тем, чтобы изменения не нарушали функциональность сохранения товара
Альтернативы
Тип: action
Этот хук позволяет добавлять дополнительный функционал к полю SKU на странице редактирования товара
Используйте его, если нужно добавить дополнительные проверки или функционал к полю SKU