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

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

Розробка та обслуговування будь-яких видів сайтів:

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

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

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

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

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1286
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1243
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    998

Кастомний плагін 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+ років у розробці.