EverWebinar Connect PRO
WordPress plugin: Everwebinar form integration
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/lukasz-slusarski/everwebinar-form/archive/refs/heads/main.zipAntigravity EverWebinar Connect PRO - Dokumentacja Techniczna
1. Cel i Problem
Wtyczka rozwiązuje problem integracji Landingi.com z platformą EverWebinar w scenariuszu autowebinarów (Just-In-Time lub Recurring), gdzie standardowy widget EverWebinar (iframe) jest niewystarczający z powodu braku możliwości stylowania i ukrywania strefy czasowej.
Główne wyzwania techniczne, które rozwiązuje wtyczka:
- CORS (Cross-Origin Resource Sharing): EverWebinar API nie pozwala na bezpośrednie zapytania AJAX z domeny
landingi.com. - Bezpieczeństwo: Bezpośrednie odpytywanie API z poziomu przeglądarki wymagałoby zaszycia
API_KEYw kodzie źródłowym strony, co jest krytycznym błędem bezpieczeństwa.
2. Architektura Rozwiązania
Wtyczka działa jako API Proxy (Bramka Pośrednicząca) zainstalowana na instancji WordPress klienta.
Przepływ danych (Data Flow):
- Frontend (Landingi): Skrypt JS wysyła zapytanie
POSTdo endpointu WordPressa (/wp-json/ewf/v1/proxy). Przesyławebinar_id,embed_idorazpublic_token(token publiczny). - Middleware (WordPress Plugin):
- Odbiera zapytanie.
- Weryfikuje poprawność (czy podano Webinar ID).
- Dokleja tajny
API_KEY(przechowywany bezpiecznie w bazie WP, tabelawp_options). - Wysyła zapytanie backend-to-backend (via
wp_remote_post) do EverWebinar API.
- EverWebinar: Zwraca harmonogram (schedules) lub potwierdzenie zapisu.
- WordPress: Przekazuje odpowiedź z powrotem do Frontendu, dodając nagłówki CORS tylko dla dozwolonych domen.
3. Struktura Wtyczki
Plik główny: everwebinar-form.php realizuje 7 funkcji:
A. Konfiguracja Globalna
- Rejestruje stronę ustawień (
ewf_settings). - Przechowuje API Key w opcji
ewf_settings[ewf_api_key]. - Lista dozwolonych domen w
ewf_settings[ewf_allowed_origins].
B. Custom Post Type (ewf_webinar)
- Służy do zarządzania webinarami.
- Każdy
postto jeden webinar. - Meta field
_ewf_idprzechowuje ID webinaru z platformy EverWebinar. - Meta field
_ewf_public_tokenprzechowuje publiczny token do proxy.
C. Generator Kodu (Metabox)
- Automatycznie generuje gotowy snippet HTML/CSS/JS.
- Wstrzykuje dynamicznie
WEBINAR_ID,EMBED_ID,PUBLIC_TOKENoraz URL endpointu (get_rest_url), dzięki czemu kod jest "portable".
D. REST API Endpoint (/ewf/v1/proxy)
- Publicznie dostępny endpoint z kontrolą CORS.
- Obsługuje akcję
get_schedules: pobiera dostępne daty (wymuszatimezone: GMT+1). - Obsługuje akcję
register: zapisuje uczestnika. - Weryfikuje
public_tokeniembed_idoraz ogranicza liczbę żądań (rate limit).
E. CORS Headers
- CORS jest ograniczony do listy dozwolonych domen w ustawieniach.
- Domena WordPressa jest zawsze dozwolona.
4. Instrukcja dla Programisty / Administratora
Instalacja
- Wgraj folder
everwebinar-formdo/wp-content/plugins/. - Aktywuj wtyczkę w panelu WordPress.
Konfiguracja
- Wejdź w Webinary -> Ustawienia API.
- Wklej klucz API z panelu EverWebinar (zakładka Advanced -> API).
- Dodaj dozwolone domeny (originy), np.
https://twoja-domena.pl. - Użyj przycisku Testuj połączenie, aby sprawdzić klucz.
Dodawanie nowego webinaru
- Wejdź w Webinary -> Dodaj nowy.
- Kliknij Pobierz listę i wybierz webinar z EverWebinar. Pole ID jest ukryte, ale dostępne jako fallback (np. gdy API nie działa). Możesz też kliknąć Ustaw demo.
- Zapisz post.
- Skopiuj gotowy kod z sekcji "Gotowy kod na Landingi".
- Po aktualizacji wtyczki skopiuj snippet ponownie (token publiczny jest generowany automatycznie).
Pola formularza zapisu
- API EverWebinar nie udostępnia listy pól formularza, więc ustaw je ręcznie w edycji webinaru.
- Możesz włączać i oznaczać jako wymagane pola: nazwisko, kraj, stan/województwo, telefon, kod kraju telefonu oraz zgodę SMS/telefon (Twilio).
- Pola imię i e-mail są zawsze włączone (wymagane przez API).
Modyfikacje Frontendowe
Kod JS w generatorze (funkcja ewf_code_callback) jest samowystarczalny (Vanilla JS). Nie wymaga jQuery. Style CSS (modal) są dołączone inline, ale można je przenieść do globalnego arkusza stylów Landingi, aby odchudzić kod.
Releases
1 release.
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.