Описание woocommerce_widget_settings_sanitize_option
— Filter
Хук woocommerce_widget_settings_sanitize_option позволяет изменять и очищать параметры виджетов WooCommerce перед их сохранением. Он срабатывает при сохранении настроек виджетов в админке и позволяет модифицировать значения перед их хранением в базе данных
Примеры использования
Пример очистки текстового поля виджета от лишних пробелов:
add_filter('woocommerce_widget_settings_sanitize_option', function($value, $id) {
if ($id === 'widget_text') {
return trim($value);
}
return $value;
}, 10, 2);
В этом примере мы удаляем лишние пробелы из текстового поля виджета, если это виджет текста.
Пример изменения массива значений в виджете:
add_filter('woocommerce_widget_settings_sanitize_option', function($value, $id) {
if ($id === 'widget_recent_products') {
return array_map('sanitize_text_field', $value);
}
return $value;
}, 10, 2);
Здесь мы очищаем каждое значение массива виджета недавних товаров с помощью функции sanitize_text_field.
Пример установки значения по умолчанию, если пользователь не ввел его:
add_filter('woocommerce_widget_settings_sanitize_option', function($value, $id) {
if ($id === 'widget_custom') {
return empty($value) ? 'Значение по умолчанию' : $value;
}
return $value;
}, 10, 2);
В этом примере мы устанавливаем значение по умолчанию, если пользователь не ввел ничего в пользовательском виджете.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо модифицировать или очищать данные виджета перед их сохранением
– Производительность
Этот хук обычно не влияет на производительность, но стоит избегать сложных операций, чтобы не замедлять процесс сохранения
– Предупреждения
Убедитесь, что изменения не нарушают логику работы виджета и не приводят к ошибкам при отображении
Альтернативы
Тип: action
Этот хук позволяет добавлять дополнительные настройки к виджетам, но не очищает их.
Используйте его, если нужно добавлять настройки, а не изменять существующие