3.7 KiB
3.7 KiB
Architektura
Data analizy: 2026-05-19
Przegląd Wzorca
Ogólnie: monolityczna aplikacja WordPress/WooCommerce z dużą liczbą pluginów i vendorowym motywem.
Kluczowe cechy:
- Request lifecycle kontroluje WordPress core przez
index.php,wp-blog-header.php,wp-load.phpiwp-settings.php. - Logika sprzedażowa przechodzi przez WooCommerce w
wp-content/plugins/woocommerce/. - Customizacja rozpoznana w kodzie to plugin
wp-content/plugins/ws-inpost-map/. - Motyw
wp-content/themes/betheme/dostarcza dużą część warstwy prezentacji i shortcodeów.
Warstwy
WordPress Core:
- Cel: bootstrap aplikacji, ładowanie konfiguracji, pluginów, motywów i hooków.
- Lokalizacje:
index.php,wp-load.php,wp-settings.php,wp-config.php. - Uwaga: w repozytorium nie ma pełnego
wp-admin/aniwp-includes/, więc snapshot jest niepełnym drzewem WordPress.
WooCommerce:
- Cel: koszyk, checkout, zamówienia, płatności, wysyłki i model danych sklepu.
- Lokalizacje:
wp-content/plugins/woocommerce/, pluginywoo-*,woocommerce-*. - Używane przez: customowy plugin
wp-content/plugins/ws-inpost-map/oraz liczne integracje płatności/dostaw.
Motyw:
- Cel: frontend, szablony, shortcode'y i builder.
- Lokalizacje:
wp-content/themes/betheme/,wp-content/themes/twentytwenty*/. - Ryzyko: brak widocznego child theme; customizacje w
wp-content/themes/betheme/utrudnią aktualizacje.
Custom Plugin: ws-inpost-map:
- Cel: dodać wybór Paczkomatu InPost na checkout i zapisać wybrany punkt do zamówienia.
- Entry point:
wp-content/plugins/ws-inpost-map/ws-inpost-map.php. - Manager:
wp-content/plugins/ws-inpost-map/App/WsInpostMap.php. - Hooki checkoutu:
wp-content/plugins/ws-inpost-map/App/WsInpostActions.php. - Metoda wysyłki:
wp-content/plugins/ws-inpost-map/App/WsInpostShippingMethod.php. - Panel ustawień:
wp-content/plugins/ws-inpost-map/App/WSInpostSettings.php. - Assety:
wp-content/plugins/ws-inpost-map/App/Assets.php.
Przepływ Danych
Checkout z Paczkomatem:
- WordPress ładuje plugin przez
wp-content/plugins/ws-inpost-map/ws-inpost-map.php. WSIM_InpostMapPluginuruchamiaWsInpostMapOnCheckout\App\WsInpostMap.WsInpostMaptworzyWsInpostActions,AssetsiWSInpostSettings.WsInpostActionsrejestruje hooki WooCommerce, jeśli istnieje klasawoocommercei opcjaactive-buttonjest włączona.- Frontend checkoutu ładuje mapę i pole
billing__paczkomat_id. saveCustomFieldOrderMetazapisuje wartość jako order metapaczkomat_id.displayPaczkomatFieldInOrderpokazuje zapisany Paczkomat w adminie zamówienia.
Metoda dostawy:
woocommerce_shipping_initładujeApp/WsInpostShippingMethod.php.woocommerce_shipping_methodsrejestrujewsim_inpost_shipping_method.WSIM_InpostShippingMethodpobiera ustawienia instancji WooCommerce i dodaje rate przezcalculate_shipping.
Entry Points
index.php- web entry point WordPress.wp-login.php,xmlrpc.php,wp-cron.php- standardowe entry pointy WordPress.wp-content/plugins/ws-inpost-map/ws-inpost-map.php- entry point customowego pluginu.wp-content/themes/betheme/functions.php- bootstrap motywu.
Cross-Cutting Concerns
- Hooki WordPress/WooCommerce są głównym mechanizmem integracji.
- Dane sklepu żyją w bazie WordPress/WooCommerce, a customowe dane InPost są w order meta
paczkomat_id. - Tłumaczenia przez text domain
ws-inpost-mapi katalogwp-content/plugins/ws-inpost-map/languages/. - Assety frontendowe pluginu InPost są ładowane globalnie przez
wp_enqueue_scripts, a nie tylko na checkout.
Aktualizuj po zmianie aktywnego motywu, checkoutu, płatności, dostaw albo custom pluginów.