O projekcie
Sklep z kursami online dla Automatic AI — podstrona /szkolenia/ z katalogiem, stronami sprzedażowymi, płatnościami z dostępem do kursu po opłacie i monitoringiem. Produktem są trzy wtyczki WordPressa, wszystkie skończone i sprawdzone razem; prototyp w Next.js i PostgreSQL, na którym powstały, zostaje w repozytorium jako specyfikacja wykonawcza i źródło treści.
Świadoma decyzja: nie pisać własnej kasy ani własnego systemu kursów. Płatności robi WooCommerce, a lekcje Tutor LMS — obie rzeczy utrzymuje ktoś inny i robi to bezpieczniej. Praca polega na szwie między systemami: kurs zamienia się w produkt, przy zakupie powstaje konto, po zaksięgowaniu wpłaty otwiera się dostęp, a klik „Refund” w WooCommerce ten dostęp odbiera. To najtańsza część, a zarazem ta, której nie da się kupić gotowej.
Osobna wtyczka monitorująca pilnuje, czy ścieżka płatność → dostęp nadal działa: dziennik logowań rozróżnia logowanie formularzem od automatycznego wejścia z kasy, licznik nieudanych prób z siedmiu dni jest jedynym alarmem ekranu, a pomiar ruchu liczy czas realnej widoczności strony bez adresu IP, konta i przeglądarki w tabeli. Automatyzacja bez monitoringu to maszyna bez kontrolki.
Etap zamknął test całości trzech wtyczek — pierwszy przegląd pytający nie o wtyczkę, lecz o szwy między nimi. To on złapał wyciek całego produktu, którego nie widziała żadna z bramek: archiwum typu treści i kanał RSS oddawały gościowi prozę wszystkich 73 lekcji. Po nim wszedł release zabezpieczeniowy z twardym obwodem WordPressa: XML-RPC wyłączony, enumeracja użytkowników odcięta, polityka bezpieczeństwa egzekwująca z nonce’em na żądanie.
Kod jest otwarty, treść kursów nie. Publiczna kopia repozytorium zawiera wtyczki, prototyp i strażników jakości; materiał kursów, czyli sprzedawany produkt, został usunięty z całej historii gita przed publikacją. Sprzedaż jeszcze nie ruszyła — brakuje hostingu produkcyjnego, domeny i bramki płatności — o czym strona mówi wprost zamiast udawać otwarty sklep.
Problem
Firma chciała sprzedawać własne kursy o pracy z GitHubem i Claude bez budowania od zera kasy, kont i systemu lekcji — i bez ryzyka, że materiał kursów wycieknie ze sklepu, zanim ktoś za niego zapłaci.
Rozwiązanie
Trzy wtyczki WordPressa na WooCommerce i Tutor LMS: katalog z kreatorem, szew płatność → konto → dostęp i monitoring. Prototyp Next.js posłużył jako specyfikacja; treść kursów żyje tylko w prywatnym repozytorium.
Funkcje
- dwa kompletne kursy: 12 modułów, 73 lekcje, 20 godzin materiału
- katalog i strony sprzedażowe z własnych tabel, kreator kursów w kokpicie
- kurs → produkt WooCommerce; konto zakładane przy zakupie, dostęp po zaksięgowaniu wpłaty
- dwa maile: „Ustaw hasło” przy powstaniu konta i „Twój kurs jest gotowy” po opłacie
- zwrot w WooCommerce odbiera dostęp do kursu — zmierzone i utrwalone smoke’em
- dziennik logowań i pomiar ruchu bez adresów IP, kont i przeglądarek w tabeli
- obwód WordPressa: XML-RPC wyłączony, CSP egzekwujące z nonce’em, cztery nagłówki bezpieczeństwa
- test całości trzech wtyczek i audyt: 32 z 33 potwierdzonych usterek naprawione
Moduły
aai-sklep
wtyczka WordPressKatalog /szkolenia, strony sprzedażowe, kreator w kokpicie i widok kupionego kursu.
- pięć własnych tabel z prefiksem `wp_aai_sklep_`; kopia kursu w Tutorze po każdym zapisie
- oba kursy w tabelach — 73 lekcje zgodne co do znaku z prototypem
- dziennik zmian treści; wersja 0.45.0
aai-platnosci
wtyczka WordPressSzew do WooCommerce, nie własna kasa: kurs → produkt, konto przy zakupie, dostęp po opłacie.
- cena efektywna na froncie i w danych strukturalnych, przycisk zakupu w czterech stanach
- dziennik dostarczenia; otwarcie sprzedaży komendą
- zwroty i przypadki brzegowe: „Refund” odbiera dostęp; wersja 0.53.0
aai-monitor
wtyczka WordPressTylko patrzy: rejestruje logowania i ruch, nikogo nie blokuje.
- trzy haki rdzenia zapisują, kto i skąd wchodził; nieudane próby zasilają licznik z 7 dni
- beacon widoczności strony podpisywany przy renderze — zmyślonej ścieżki nie da się wstawić
- adresy IP znikają do 90 dni od ostatniej aktywności; wersja 0.58.0
prototyp Next.js
warsztat i specyfikacjaKatalog, strony sprzedażowe i kreator na Next.js z PostgreSQL — pierwowzór wtyczek.
- moduł treści z pięcioma tabelami i migracjami; dwa tryby budowania: serwerowy i statyczny
- 39 własnych strażników jakości i 84 testy
Architektura
- Podstawa
- WordPress z WooCommerce i Tutor LMS; wtyczki nie sięgają do cudzych tabel
- Prototyp
- Next.js 16, React 19, TypeScript, Tailwind, PostgreSQL
- Na tej stronie
- statyczna migawka katalogu i stron kursów z jednego pliku JSON, bez treści lekcji
- Bezpieczeństwo
- audyt trzech wtyczek bez zastrzeżeń w warstwie aplikacyjnej; obwód WP w osobnym mu-pluginie
- Repozytorium
- publiczna kopia pokazowa: 612 commitów, 69 tagów, bez treści kursów; oryginał prywatny
- Stan
- wtyczki skończone; produkcja czeka na hosting, domenę i bramkę płatności
Technologie
- PHP
- WordPress
- WooCommerce
- Next.js
- TypeScript
- PostgreSQL
Autor
Krzysztof LeszczyńskiAutomation & Plugins
