Разработка кастомного плагина WooCommerce под бизнес-логику с нуля

Кастомный плагин WooCommerce: когда готовые аддоны бессильны

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Разработка кастомного плагина WooCommerce под бизнес-логику с нуля
Средний
~5 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    980
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1240
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Кастомный плагин WooCommerce: когда готовые аддоны бессильны

Один наш клиент торговал оборудованием с отсрочкой платежа и накопительными скидками в зависимости от общей суммы заказов. Стандартный WooCommerce не умел ни рассчитывать такие скидки, ни создавать кастомный статус «Ожидает отправки». Пришлось разрабатывать кастомный плагин с нуля. Итог — полностью автоматизированная система лояльности и процесса отгрузки, обрабатывающая до 200 заказов в день. Такие задачи не решить готовыми аддонами.

WooCommerce построен на хуках WordPress и собственном слое фильтров — action и filter для каждого этапа: заказ, товар, платёж. Кастомный плагин — это бизнес-логика, которая не покрывается стандартными модулями: нестандартное ценообразование, интеграция с ERP, кастомные статусы, поля товара, отчёты. Разработка плагина средней сложности занимает 5–10 рабочих дней. Наша команда имеет 5+ лет опыта в WooCommerce и реализовала более 30 кастомных решений, включая интеграции с 1С и CRM.

Как добавить кастомные статусы заказов в WooCommerce?

Регистрируем статус через register_post_status с префиксом wc-, затем добавляем его в список статусов через фильтр wc_order_statuses. Можно задать цвет бейджа в админке и настроить отправку письма при переходе в статус.

Пошаговая инструкция:

  1. Зарегистрировать статус с помощью register_post_status.
  2. Добавить статус в массив wc_order_statuses через фильтр.
  3. (Опционально) Назначить цвет бейджа и email-уведомление.

Пример кода:

add_action('init', function () { register_post_status('wc-awaiting-delivery', [ 'label' => 'Ожидает отправки', 'public' => true, 'show_in_admin_status_list' => true, 'show_in_admin_all_list' => true, 'exclude_from_search' => false, 'label_count' => _n_noop('Ожидает отправки <span class="count">(%s)</span>', 'Ожидает отправки <span class="count">(%s)</span>'), ]); }); add_filter('wc_order_statuses', function (array $statuses): array { $statuses['wc-awaiting-delivery'] = 'Ожидает отправки'; return $statuses; }); 

Почему важна интеграция с HPOS (High-Performance Order Storage)?

Начиная с WooCommerce 7.1, заказы хранятся в отдельных таблицах wc_orders, а не в wp_posts. При работе с заказами используйте только WC_Order API — прямые SQL-запросы сломаются при включённом HPOS. Кастомный плагин должен декларировать совместимость через FeaturesUtil::declare_compatibility:

add_action('before_woocommerce_init', function () { if (class_exists(\Automattic\WooCommerce\Utilities\FeaturesUtil::class)) { \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true ); } }); 

Использование wc_get_orders с параметрами гарантирует работу на обоих хранилищах.

Пример реализации накопительной скидки

Система лояльности: чем больше клиент потратил, тем выше скидка на текущий заказ. Реализуем через woocommerce_cart_calculate_fees:

add_action('woocommerce_cart_calculate_fees', function (WC_Cart $cart): void { if (is_admin() && !defined('DOING_AJAX')) return; $user_id = get_current_user_id(); if (!$user_id) return; $total_spent = wc_get_customer_total_spent($user_id); $discount_pct = 0; if ($total_spent >= 100000) $discount_pct = 10; elseif ($total_spent >= 50000) $discount_pct = 7; elseif ($total_spent >= 20000) $discount_pct = 5; if ($discount_pct > 0) { $cart->add_fee(sprintf('Накопительная скидка %d%%', $discount_pct), -($cart->get_subtotal() * $discount_pct / 100), true); } }); 

Что такое Action Scheduler и как его использовать для фоновых задач?

Action Scheduler — это встроенный в WooCommerce менеджер фоновых задач. Он основан на таблицах WordPress и надёжнее стандартного wp_cron: повторяет задачи при ошибках, имеет UI для мониторинга.

Пример синхронизации остатков:

as_schedule_single_action(time() + 60, 'my_plugin_sync_stock', ['supplier_id' => 42], 'my-plugin'); add_action('my_plugin_sync_stock', function (int $supplier_id): void { $items = fetch_supplier_stock($supplier_id); foreach ($items as $sku => $qty) { $product_id = wc_get_product_id_by_sku($sku); if ($product_id) { $product = wc_get_product($product_id); $product->set_stock_quantity($qty); $product->save(); } } }); 

Кастомные поля товара: когда это нужно?

Если товар требует дополнительных атрибутов (производитель, страна происхождения, сертификация), добавляем вкладку в редактор товара через woocommerce_product_data_tabs и поля через woocommerce_product_data_panels. Данные сохраняются как post meta. Это позволяет фильтровать товары в админке и выводить информацию на витрине.

Сравнение кастомного плагина и готового аддона

Критерий Кастомный плагин Готовый аддон
Гибкость Полная свобода логики Ограничен хуками и настройками
Совместимость Гарантируется под вашу версию Зависит от разработчика
Производительность Оптимизирован под задачу Часто тяжёлый и избыточный
Цена Индивидуально Ежемесячная подписка или разовая
Поддержка Персональная, 1 месяц гарантии По документации
Безопасность Код проверен и не содержит лишнего Может иметь уязвимости

Типичные ошибки при разработке кастомных плагинов WooCommerce

Ошибка Решение
Использование прямых SQL-запросов к wp_posts Перейти на WC_Order API
Отсутствие совместимости с HPOS Объявить поддержку через FeaturesUtil
Забыли Action Scheduler для фоновых задач Внедрить асинхронную очередь
Твёрдое хранение поля без санитизации Использовать WooCommerce validate/sanitize

Что входит в разработку кастомного плагина WooCommerce

  • Анализ бизнес-требований и проектирование архитектуры
  • Написание кода с соблюдением стандартов WordPress и WooCommerce
  • Интеграция с HPOS и актуальными версиями
  • Документация API и кода (в формате README)
  • Передача доступов к плагину и инструкция по установке
  • Гарантийная поддержка 1 месяц после сдачи

Сроки и стоимость

Стоимость рассчитывается индивидуально после брифа. Ориентировочные сроки:

  • Плагин с кастомными полями и статусами: от 3 до 5 дней
  • Плагин со сложной логикой скидок и интеграцией API: от 8 до 12 дней
  • Плагин с фоновыми задачами и синхронизацией ERP: от 10 до 15 дней

Хотите автоматизировать свой интернет-магазин? Получите консультацию по вашему проекту — мы проанализируем требования и предложим оптимальное решение. Закажите разработку кастомного плагина WooCommerce и избавьтесь от ограничений готовых решений. Гарантируем совместимость с последними версиями WooCommerce и опыт 5+ лет в разработке.