Skip to content

Хуки плагина

Справочник всех хуков (фильтров и экшенов) плагинов wc-iikocloud и wc-iikocloud-modules.

Вы можете использовать перечисленные ниже хуки для расширения функциональности плагина:

  • кастомизации экспорта заказов,
  • изменения текстов и настроек на странице оформления заказа,
  • интеграции с собственным кодом или сторонними плагинами,
  • и др.

Хуки позволяют гибко подстраивать работу плагина под ваши бизнес-процессы без изменения исходного кода.

Префикс хуков: wc_iikocloud_ (константа WC_IIKOCLOUD_PREFIX).


Хуки основного плагина wc-iikocloud

Фильтры

wc_iikocloud_address_format_type

Переопределение формата адреса при экспорте.

ПараметрТипОписание
$formatstringТекущий формат: 'legacy', 'city' или 'auto'
$order_idintID заказа WooCommerce
$organization_idstringID организации iiko

Возвращает: string'legacy' или 'city'

Пример:

php
add_filter( 'wc_iikocloud_address_format_type', function ( $format, $order_id, $organization_id ) {
    return 'city'; // Принудительно использовать формат City для всех заказов
}, 10, 3 );

wc_iikocloud_delivery_address_line1

Кастомизация строки адреса line1 (формат City).

ПараметрТипОписание
$line1stringСобранная строка адреса
$orderWC_OrderЗаказ WooCommerce
$order_idintID заказа

Возвращает: string

Пример:

php
add_filter( 'wc_iikocloud_delivery_address_line1', function ( $line1, $order, $order_id ) {
    return strtoupper( $line1 ); // Собственное форматирование
}, 10, 3 );

wc_iikocloud_order_complete_before

Переопределение времени «готовить к» для заказа.

ПараметрТипОписание
$valuemixedПо умолчанию: null
$order_idintID заказа

Возвращает: mixed — строка даты/времени ISO 8601 или null


wc_iikocloud_order_phone

Фильтр номера телефона клиента при экспорте.

ПараметрТипОписание
$phonestringТолько цифры (без +)
$order_idintID заказа (не передаётся)

Возвращает: string — только цифры; плагин добавляет префикс +


wc_iikocloud_order_service_type

Переопределение типа услуги: DeliveryByClient (самовывоз) или DeliveryByCourier.

ПараметрТипОписание
$typestringТекущий тип
$order_idintID заказа

Возвращает: string


wc_iikocloud_order_delivery_point

Переопределение данных точки доставки (адрес, координаты, комментарий).

ПараметрТипОписание
$pointarraynull
$order_idintID заказа

Возвращает: array|null


wc_iikocloud_order_comment

Фильтр комментария к заказу при экспорте.

ПараметрТипОписание
$commentstringКомментарий к заказу
$order_idintID заказа

Возвращает: string

Пример:

php
add_filter( 'wc_iikocloud_order_comment', function ( $comment, $order_id ) {
    // Добавить информацию о применённой скидке в комментарий
    $order = wc_get_order( $order_id );
    if ( $order && $order->get_fees() ) {
        foreach ( $order->get_fees() as $fee ) {
            if ( $fee->get_total() < 0 ) {
                return $fee->get_name() . PHP_EOL . $comment;
            }
        }
    }
    return $comment;
}, 10, 2 );

wc_iikocloud_order_customer

Фильтр данных клиента при экспорте.

ПараметрТипОписание
$customerarrayДанные клиента
$orderWC_OrderОбъект заказа

Возвращает: array


wc_iikocloud_order_status_notifications

Флаг для поля shouldReceiveOrderStatusNotifications в объекте клиента при экспорте в iiko (уведомления о статусе заказа, в том числе SMS — при настройке в iiko).

ПараметрТипОписание
$valuemixedПо умолчанию: true. Можно вернуть false, true или null (см. ниже)
$orderWC_OrderОбъект заказа

Возвращает: bool|nulltrue/false передаётся в API как boolean; null — поле не включается в JSON (поведение по умолчанию на стороне iiko).

Пример (привязка к чекбоксу на checkout, сохранённому в мета заказа):

php
add_filter( 'wc_iikocloud_order_status_notifications', function ( $value, $order ) {
    if ( ! $order instanceof \WC_Order ) {
        return $value;
    }
    $meta = $order->get_meta( '_my_sms_consent' );
    return 'yes' === $meta;
}, 10, 2 );

wc_iikocloud_order_guests

Фильтр количества гостей.

ПараметрТипОписание
$guestsmixedКоличество гостей
$order_idintID заказа

Возвращает: mixed


wc_iikocloud_order_items

Фильтр массива позиций заказа при экспорте.

ПараметрТипОписание
$itemsarrayПозиции заказа
$order_idintID заказа

Возвращает: array

Пример:

php
add_filter( 'wc_iikocloud_order_items', function ( $order_items, $order_id ) {
    // Добавить обязательный товар к каждому заказу
    $order_items[] = [
        'productId'        => 'uuid-товара-из-iiko',
        'modifiers'        => null,
        'price'            => 0,
        'positionId'       => null,
        'type'             => 'Product',
        'amount'           => 1.0,
        'productSizeId'    => null,
        'comboInformation' => null,
        'comment'          => null,
    ];
    return $order_items;
}, 10, 2 );

wc_iikocloud_order_discounts

Предоставление кастомных данных о скидках при экспорте.

ПараметрТипОписание
$discountsarraynull
$orderWC_OrderОбъект заказа

Возвращает: array|null


wc_iikocloud_order_payments

Предоставление кастомных данных об оплате при экспорте.

ПараметрТипОписание
$paymentsarraynull
$orderWC_OrderОбъект заказа

Возвращает: array|null


wc_iikocloud_delivery_point_comment

Переопределение комментария к точке доставки.

ПараметрТипОписание
$commentstringnull
$order_idintID заказа

Возвращает: string|null


wc_iikocloud_export_delivery_modifiers

Фильтр модификаторов товара при экспорте доставки.

ПараметрТипОписание
$modifiersarrayМодификаторы товара
$order_itemWC_Order_Item_ProductПозиция заказа

Возвращает: array


wc_iikocloud_order_export_terminal_id

Переопределение ID группы терминалов при экспорте.

ПараметрТипОписание
$terminal_idstringID группы терминалов
$order_idintID заказа

Возвращает: string

Пример:

php
add_filter( 'wc_iikocloud_order_export_terminal_id', function ( $terminal_id, $order_id ) {
    // Выбрать терминал в зависимости от времени (например, «счастливые часы»)
    $current_day  = (int) date( 'N' );
    $current_hour = (int) date( 'H' );
    if ( $current_day >= 1 && $current_day <= 4 && $current_hour >= 11 && $current_hour < 16 ) {
        return 'uuid-терминала-для-специальных-часов';
    }
    return $terminal_id;
}, 10, 2 );

wc_iikocloud_order_table_ids

Предоставление ID столов для заказа (режим ресторана).

ПараметрТипОписание
$table_idsarraynull
$order_idintID заказа

Возвращает: array|null


wc_iikocloud_order_cheque_additional_info

Фильтр дополнительной информации для чека.

ПараметрТипОписание
$infoarraynull
$order_idintID заказа

Возвращает: array|null


wc_iikocloud_plugin_subheader

Фильтр HTML подзаголовка на странице плагина в админке.

ПараметрТипОписание
$htmlstringHTML подзаголовка

Возвращает: string


wc_iikocloud_kbzhu

Фильтр вывода шорткода КБЖУ (пищевая ценность).

ПараметрТипОписание
$htmlstringСформированный HTML
$product_kbzhuarrayДанные КБЖУ товара

Возвращает: string


Экшены

wc_iikocloud_loaded

Вызывается после полной загрузки плагина.

Параметры: нет

Пример:

php
add_action( 'wc_iikocloud_loaded', function () {
    // Кастомная инициализация после загрузки плагина
} );

wc_iikocloud_add_plugin_page_fieldsets

Добавление кастомных блоков полей на страницу плагина в админке.

Параметры: нет

Пример:

php
add_action( 'wc_iikocloud_add_plugin_page_fieldsets', function () {
    echo '<fieldset>...</fieldset>';
} );

wc_iikocloud_created_delivery

Вызывается после создания доставки в iiko.

ПараметрТипОписание
$created_deliveryarrayОтвет API iiko
$order_idstringID заказа
$organization_idstringID организации

Пример:

php
add_action( 'wc_iikocloud_created_delivery', function ( $created_delivery, $order_id, $organization_id ) {
    // Логирование или синхронизация после экспорта
}, 10, 3 );

Хуки премиум плагина wc-iikocloud-modules (дополнительные модули)

Фильтры

wc_iikocloud_modifiers_title

Фильтр заголовка блока модуля «Модификаторы».

ПараметрТипОписание
$titlestringПо умолчанию: «Модификаторы»

Возвращает: string

Пример:

php
add_filter( 'wc_iikocloud_modifiers_title', function ( $title ) {
    return 'Добавь по вкусу / не забудь добавить начинки';
} );

wc_iikocloud_delivery_zones_title

Фильтр заголовка поля «Зоны доставки».

ПараметрТипОписание
$titlestringПо умолчанию: «Зоны доставки»

Возвращает: string


wc_iikocloud_delivery_zones_full_address

Фильтр полного адреса, используемого в модуле «Зоны доставки».

ПараметрТипОписание
$addressstringПолный адрес плательщика

Возвращает: string

Пример:

php
add_filter( 'wc_iikocloud_delivery_zones_full_address', function ( $address ) {
    return str_replace( 'город Воронеж ', '', $address );
} );

wc_iikocloud_default_city

Фильтр города по умолчанию для модуля «Зоны доставки» (Яндекс.Карты).

ПараметрТипОписание
$citystringНазвание города по умолчанию

Возвращает: string

Пример:

php
add_filter( 'wc_iikocloud_default_city', function ( $city ) {
    return ''; // Убрать город по умолчанию
} );

wc_iikocloud_city_suggest_prefix

Префикс для запросов к API подсказок городов.

ПараметрТипОписание
$prefixstringПо умолчанию: ''

Возвращает: string

Пример:

php
add_filter( 'wc_iikocloud_city_suggest_prefix', function ( $prefix ) {
    return 'Брянский район, ';
} );

wc_iikocloud_suggest_offset

Фильтр смещения для подсказок адресов (Яндекс).

ПараметрТипОписание
$offsetarrayПо умолчанию: [ 0, 36 ]

Возвращает: array

Пример:

php
add_filter( 'wc_iikocloud_suggest_offset', function ( $offset ) {
    return [ 0, 36 ]; // Смещение для карты
} );

wc_iikocloud_suggest_results

Фильтр количества результатов подсказок.

ПараметрТипОписание
$countintПо умолчанию: 3

Возвращает: int


wc_iikocloud_map_address_messages

Фильтр сообщений, связанных с адресом, для карты в модуле «Зоны доставки».

ПараметрТипОписание
$messagesarrayКлючи: inaccurate_address_text, specify_house_number_text и др.

Возвращает: array


wc_iikocloud_map_shipping_messages

Фильтр сообщений, связанных с доставкой, для модуля «Зоны доставки».

ПараметрТипОписание
$messagesarrayКлючи: can_order_text, minimum_order_text, no_zone_found_text

Возвращает: array


wc_iikocloud_time_title

Фильтр заголовка блока «Время доставки» на странице оформления заказа.

ПараметрТипОписание
$titlestringПо умолчанию: «Время доставки»

Возвращает: string


wc_iikocloud_complete_before_types

Фильтр опций «Готовить к» (Как можно скорее / К определённому времени).

ПараметрТипОписание
$optionsarrayКлючи: billing_complete_before_asap, billing_complete_before_btt

Возвращает: array

Пример:

php
add_filter( 'wc_iikocloud_complete_before_types', function ( $options ) {
    // Убрать «Как можно скорее» для определённых категорий (например, торты)
    foreach ( WC()->cart->get_cart() as $cart_item ) {
        if ( has_term( 'cakes', 'product_cat', $cart_item['product_id'] ) ) {
            unset( $options['billing_complete_before_asap'] );
            add_filter( 'wc_iikocloud_complete_before_minutes_offset', fn() => 60 * 24 * 2 ); // 2 дня
            break;
        }
    }
    return $options;
} );

wc_iikocloud_complete_before_minutes_offset

Фильтр шага минут для выбора времени (например, округление до 30 мин).

ПараметрТипОписание
$minutesintПо умолчанию: 30

Возвращает: int

Пример:

php
add_filter( 'wc_iikocloud_complete_before_minutes_offset', function ( $minutes ) {
    // Для пицц и пирогов — минимум 4 часа
    foreach ( WC()->cart->get_cart() as $cart_item ) {
        if ( has_term( 'pizza-pies', 'product_cat', $cart_item['product_id'] ) ) {
            return 60 * 4;
        }
    }
    return $minutes;
} );

wc_iikocloud_tables_title

Фильтр заголовка поля «Стол» на странице оформления заказа.

ПараметрТипОписание
$titlestringПо умолчанию: «Стол»

Возвращает: string


wc_iikocloud_change_title

Фильтр заголовка поля «Сдача с» на странице оформления заказа.

ПараметрТипОписание
$titlestringПо умолчанию: «Сдача с»

Возвращает: string


wc_iikocloud_guests_title

Фильтр заголовка поля «Количество человек» на странице оформления заказа.

ПараметрТипОписание
$titlestringПо умолчанию: «Количество человек»

Возвращает: string


wc_iikocloud_checkout_settings

Фильтр настроек модуля оформления заказа.

ПараметрТипОписание
$settingsarrayКонфигурация checkout

Возвращает: array


wc_iikocloud_delivery_switch_types

Фильтр опций переключения типа доставки (модуль «Зоны доставки»).

ПараметрТипОписание
$optionsarrayОпции переключения

Возвращает: array

Пример:

php
add_filter( 'wc_iikocloud_delivery_switch_types', function ( $options ) {
    asort( $options ); // Изменить порядок опций
    return $options;
} );

Фильтры WooCommerce (wc-iikocloud-modules)

Метод доставки iiko_local_pickup использует стандартные фильтры WooCommerce:

  • woocommerce_shipping_iiko_local_pickup_is_available — фильтр доступности метода доставки.

См. также