EverWebinar Connect PRO self-updates
WordPress plugin: Everwebinar form integration
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/lukelocksmith/everwebinar-form/archive/refs/heads/main.zipShips its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.
Antigravity 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.