Fundacja „Dom w Łodzi” — wtyczka WordPress do rezerwacji prezentów
Własna wtyczka WordPress do rezerwacji prezentów rzeczowych dla Fundacji „Dom w Łodzi”. Zastąpiła płatny WP Inventory Manager: ok. 4 000 linii zamiast 75 000.
75 000 → 4 000
linii kodu po wymianie wtyczki
0 zł
rocznej licencji
893
rezerwacji przeniesionych bez utraty historii
Fundacja „Dom w Łodzi” pomaga dzieciom, którym los odebrał zdrowie i opiekę najbliższych. Na stronie fundacji jest lista potrzeb: piżamy, pościel, sprzęt do rehabilitacji, tort na urodziny. Darczyńca wybiera prezent, rezerwuje go, a prezent znika z listy, żeby nikt nie kupił go drugi raz. Napisałem do tego własną wtyczkę WordPress. Zastąpiła płatny system magazynowy i działa na produkcji od 8 września 2026.

Na zrzutach są przykładowe prezenty i fikcyjni darczyńcy. Prawdziwych potrzeb fundacji i danych osób, które pomagają, nie pokazuję.
Zadanie
Lista działała wcześniej na WP Inventory Manager z dodatkiem do rezerwacji. To rozbudowany, płatny system magazynowy: ok. 75 000 linii kodu, 12 własnych tabel w bazie i licencja odnawiana co roku. Fundacja korzystała z ułamka jego możliwości. Potrzebowała listy prezentów z kategoriami, formularza rezerwacji, maila z podziękowaniem i tabeli z informacją, kto co zarezerwował.
Każda aktualizacja tak dużej wtyczki to ryzyko dla strony, a licencja to koszt, który organizacja pożytku publicznego wolałaby wydać na dzieci. Zaproponowałem więc, że napiszę wtyczkę, która robi tylko to, czego fundacja naprawdę używa.
Jak to zbudowałem
Prezent to zwykły wpis WordPressa. Tytuł, opis w edytorze, zdjęcie, kategorie, szkice, kosz i wyszukiwarka to funkcje, które WordPress już ma. Wtyczka ich nie pisze od nowa. Dochodzi jedno pole: ile sztuk potrzeba. Do tego jedna tabela na rezerwacje. Całość to ok. 4 000 linii PHP, bez Composera i bez kroku budowania.

Kilka rzeczy wymagało więcej uwagi, niż widać na pierwszy rzut oka:
- Ostatnia sztuka. Dwie osoby mogą kliknąć „Rezerwuję” w tej samej sekundzie. Sprawdzenie stanu i zdjęcie sztuki to jedno zapytanie do bazy danych, więc prezent dostaje jedna osoba, a druga widzi komunikat „Ktoś był szybszy”.
- Cache. Strona fundacji jest cache'owana na tydzień. Gdyby lista prezentów też była, zarezerwowany prezent wisiałby dalej na stronie i dwie osoby kupiłyby to samo. Wtyczka wyłącza cache tylko na stronie prezentów, a reszta serwisu dalej działa szybko.
- Spam. Formularz chronią cztery warstwy: ukryte pole na boty, minimalny czas wypełniania, limit rezerwacji z jednego adresu IP i opcjonalnie Cloudflare Turnstile. Jeśli Cloudflare nie odpowiada, rezerwacja przechodzi. Awaria zewnętrznej usługi nie powinna kosztować fundacji prezentu.
- Poczta. Darczyńca dostaje podziękowanie, a fundacja mail z kompletem danych. Odpowiedź trafia od razu do darczyńcy, bez kopiowania adresu.
Panel dla fundacji
Pracownicy fundacji nie musieli uczyć się nowego narzędzia. Prezenty dodaje się tak samo jak wpisy, a na liście od razu widać stan, np. „8 z 12”, i liczbę rezerwacji. Stan można zmienić w Szybkiej edycji, bez otwierania prezentu.

Rezerwacje mają osobną tabelę z filtrami, wyszukiwarką i anulowaniem. Anulowana rezerwacja oddaje sztukę z powrotem na listę. Eksport do CSV otwiera się w Excelu z polskimi znakami.

Migracja bez utraty historii
Napisałem komendę WP-CLI, która przeniosła ze starej wtyczki kategorie, prezenty ze stanami i zdjęciami, teksty powitania i podziękowania oraz 893 historyczne rezerwacje. Import można uruchomić najpierw na próbę, a powtórzony nie tworzy duplikatów.
Stare adresy prezentów, udostępniane na Facebooku i w newsletterach, przekierowują na nowe (301), a strona „Zrób prezent” działa bez zmian w treści. Dla darczyńców nic się nie zmieniło, poza tym, że lista działa szybciej.
Telefon
Większość darczyńców trafia na listę z Facebooka, czyli z telefonu. Na wąskim ekranie kategorie zawijają się w kilka wierszy, a prezenty układają się w jedną kolumnę z dużym zdjęciem.

Efekt
Fundacja ma listę prezentów, która robi dokładnie to, czego potrzebuje, bez rocznej licencji i z kodem ok. 18 razy mniejszym. W pierwszym miesiącu po wdrożeniu darczyńcy zarezerwowali przez nią 49 prezentów.
Masz w WordPressie dużą, płatną wtyczkę, z której używasz jednej funkcji? Często taniej i bezpieczniej jest ją zastąpić małym, własnym kodem. Zobacz, jak zajmuję się opieką nad stroną WordPress i tworzeniem stron www.
- Moja rola
- Analiza, wtyczka WordPress, migracja danych i wdrożenie
- Technologie
- WordPress, PHP 8, WP-CLI, Cloudflare Turnstile, LiteSpeed Cache
Może Cię również zainteresować
Powiązane artykuły
blog
Simple Donations — darmowa wtyczka WordPress do zbiórek z PayU i Przelewy24
Zbiórki na WordPressie z celem, paskiem postępu i wpłatami przez PayU, Przelewy24 i PayPal. Przejąłem starą wtyczkę Fundraising od WPMU DEV, unowocześniłem ją i…
blog
Gotowa automatyzacja Make: publikowanie wpisów blogowych w Wordpress
Dzisiaj podzielę się z wami gotową automatyzacją Make.com. Zamiast śledzić newsy ręcznie, pisać artykuły, tworzyć grafiki, optymalizować pod SEO i ręcznie publi…
blog
Wordpress 5.0 już wydany! Co nowego w nowej odsłonie Wordpressa?
Po wielu miesiącach wytężonej pracy, testów, wersji beta i RC, Wordpress 5 został właśnie wydany. Co nowego znajdziemy w tej wersji popularnego CMS-a? O tym dow…