Specyfikacja techniczna - InPost Pay Plugin
Minimalne wymagania środowiskowe
PHP: wersja >= 7.4 (zalecane ≥ 8.1)
Wymagane rozszerzenia PHP:
curl (komunikacja z API Inpost)
json (obsługa danych JSON)
mbstring (operacje na stringach UTF-8)
openssl (weryfikacja podpisów i bezpieczeństwo komunikacji)
dom, simplexml, pdo_mysql (wymagane przez WooCommerce)
soap (wymagane tylko w przypadku niektórych integracji WooCommerce)
WordPress: wersja >= 6.0 (zalecane najnowsze stabilne wydanie)
WooCommerce: wersja >= 7.0.0 (zalecane >= 9.0.0)
Serwer: Apache lub Nginx z obsługą mod_rewrite i pełnym wsparciem dla HTTPS
Baza danych: MySQL >= 5.7 lub MariaDB >= 10.3
SSL: sklep musi działać w pełni na HTTPS, brak wsparcia dla HTTP
Integracje i kompatybilność
Koszyk i produkty złożone: wsparcie dla Composite Products
Bloki: kompatybilność z Gutenberg / WooCommerce Blocks
Page Buildery: kompatybilność z Elementor
Języki: kompatybilność z Polylang, WPML
Waluty: kompatybilność z Curcy, FoxCurrency, YayCurrency, WPML Currency
Wysyłka: pełna integracja z metodami InPost PL - Wtyczka logistyczna
Konfiguracja i środowisko sklepu
WP-Cron: musi być aktywny. Rekomendowane dodatkowe ustawienie crona systemowego (np. co minutę php wp-cron.php) dla stabilniejszej obsługi zadań w tle.
Cache/CDN: wymagane wykluczenie ścieżek API /wp-json/inpost/* z cache i CDN, aby uniknąć błędów synchronizacji koszyka.
Konflikty wtyczek: wtyczki, które ingerują w sesję WooCommerce (np. niestandardowe cache koszyka), mogą powodować problemy - wymagana indywidualna weryfikacja.
Działające REST API: ścieżka /wp-json/ musi być poprawnie dostępna z zewnątrz (bez przekierowań ani blokad).
LiteSpeed Cache: w przypadku sklepów działających z LiteSpeed wymagane jest dodanie wyjątków w konfiguracji wtyczki LiteSpeed Cache (wykluczenie dynamicznych żądań koszyka i checkoutu oraz cache’owania widoków i assetów).
Hooki i filtry w motywach: customowe motywy mogą modyfikować lub usuwać standardowe hooki WooCommerce, co wpływa na integrację - wymagana zgodność z podstawowymi hookami koszyka i checkoutu. Szczegółowa lista wymaganych hooków oraz zasady integracji motywu znajdują się w sekcji “Wymagania dotyczące motywu” poniżej.
Wymagania dotyczące motywu
Dla prawidłowego działania wtyczki InPost Pay motyw sklepu musi spełniać poniższe wymagania techniczne.
Hooki WooCommerce
Wtyczka korzysta z mechanizmu hooków WooCommerce do wyświetlania widgetu InPost Pay w odpowiednich miejscach sklepu.
Motyw musi implementować standardowe akcje WooCommerce - ich brak uniemożliwia poprawne osadzenie widgetu.
Na stronie produktu:
woocommerce_before_add_to_cart_form
woocommerce_before_variations_form
woocommerce_before_add_to_cart_button
woocommerce_before_single_variation
woocommerce_before_add_to_cart_quantity
woocommerce_after_add_to_cart_quantity
woocommerce_after_add_to_cart_button
woocommerce_after_variations_form
woocommerce_after_add_to_cart_form
woocommerce_product_meta_start
woocommerce_product_meta_end
woocommerce_after_single_product_summary
Na stronie koszyka:
woocommerce_before_cart
woocommerce_before_cart_table
woocommerce_before_cart_contents
woocommerce_cart_contents
woocommerce_cart_coupon
woocommerce_after_cart_contents
woocommerce_after_cart_table
woocommerce_cart_collaterals
woocommerce_before_cart_totals
woocommerce_cart_totals_before_shipping
woocommerce_before_shipping_calculator
woocommerce_after_shipping_calculator
woocommerce_cart_totals_after_shipping
woocommerce_cart_totals_before_order_total
woocommerce_cart_totals_after_order_total
woocommerce_proceed_to_checkout
woocommerce_after_cart_totals
woocommerce_after_cart
W przypadku posiadania wyżej wymienionych hook’ów, należy sprawdzić czy w szablonie, najczęściej w pliku functions.php nie występuje funkcja remove_all_actions(‘nazwa_hook’), która usuwa wszystkie podpięte akcje z danego hook’a
Hook wp_body_open()
W pliku header.php motywu powinno znajdować się wywołanie funkcji:<?php wp_body_open(); ?>
(zazwyczaj tuż po otwarciu znacznika <body>.
Brak tego hooka powoduje błąd w konsoli przeglądarki: Uncaught (in promise) ReferenceError: IPPWidgetOptions is not defined i uniemożliwia załadowanie widgetu InPost Pay.
Strona podziękowania (TYP)
Wtyczka InPost Pay wykorzystuje mechanizm Virtual Page do dynamicznego generowania strony podziękowania po zakończonej transakcji.
Adres strony: /inpost-pay/thank-you-page
Strona nie istnieje w bazie danych WordPressa - jest tworzona dynamicznie przez wtyczkę na podstawie zarejestrowanego slug’a i szablonu PHP.
Motyw musi umożliwiać renderowanie layoutu również dla strony wirtualnych (np. poprzez index.php)
W przypadku serwerów Apache: Aby strona Thank You Page (TYP) mogła się poprawnie wyświetlać należy zadbać również o prawidłowy plik .htaccess. Wymagany jest podstawowy blok konfiguracyjny WordPressa:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Przed ręczną konfiguracją zaleca się najpierw odświeżenie reguł WordPressa poprzez panel administracyjny. WordPress automatycznie wygeneruje lub przywróci domyślny blok .htaccess, który zapewnia prawidłowe przekierowanie żądań (w tym strony /inpost-pay/thank-you-page) do index.php:
przejdź do Ustawienia,
kliknij w “Bezpośrednie odnośniki (permalinks)”,
kliknij “Zapisz Zmiany”,
sprawdź zawartość .htaccess
Jeśli po zapisaniu ustawień plik .htaccess się zgadza, a strona TYP nadal zwraca błąd 404, należy upewnić się, że serwer obsługuje moduł mod_rewrite dla Apache, lub odpowiedni blok rewrite dla Nginx.
Zalecenia dodatkowe
Regularne aktualizacje WordPress, WooCommerce i wtyczek.
Stosowanie aktualnych certyfikatów TLS.
W sklepach o dużym ruchu: rekomendowane Redis/Memcached dla cache sesji i kolejek.
Wtyczka obecnie nie spełnia w pełni standardów WordPress.org i WPCS - możliwe stopniowe dostosowanie kodu podczas dalszego rozwoju.