Кастомные настройки
Создание шаблона настроек
- Создайте шаблон в папке
templates/admin/tabs(название папки должно соответствовать разделу настроек) - Для рендера частей шаблона используйте:
php
echo AJAX::render_form_parts(''); // Можно перегрузить через jQueryСоздание стандартных настроек
Добавление секции настроек
Ключ секции: my_section
php
add_filter('woocommerce_get_sections_iiko', function ($sections) {
return array_merge($sections, [
'my_section' => esc_html__('My section', 'iiko')
]);
}, 19);Добавление полей в секцию
php
add_filter('iiko_fields', function (?array $settings, ?string $section) {
$prefix = SettingsPage::PREFIX . 'table_';
if ('my_section' === $section) {
$_settings = [
[
'type' => 'title',
'name' => __('Title', 'iiko'),
'desc' => '',
],
// Добавьте здесь другие поля настроек
];
$_settings[] = ['type' => 'sectionend'];
}
return array_merge($settings, $_settings);
}, 19, 2);Структура полей настроек
Основные параметры поля:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
type | string | Да | Тип поля (text, select, checkbox и т.д.) |
name | string | Да | Название поля |
id | string | Да | Идентификатор поля |
desc | string | Нет | Описание поля |
default | mixed | Нет | Значение по умолчанию |
Примеры полей
php
[
'type' => 'text',
'name' => __('Название поля', 'iiko'),
'id' => $prefix . 'text_field',
'default' => 'Значение',
'desc' => __('Описание поля', 'iiko')
]Особенности реализации
- Все настройки автоматически сохраняются в WooCommerce
- Для префиксов используйте константу
SettingsPage::PREFIX - Обязательно закрывайте секцию элементом
sectionend
Внимание
При изменении структуры настроек убедитесь, что старые значения остаются доступными для миграции данных.