Predplatne
Modul predplatneho pridava produkty s cyklickou platbou. Zakaznici nakupuji predplatne s rucnim obnovenim a administrator je spravuje ve WooCommerce.
Jak to funguje
Sekce “Jak to funguje”- Administrator vytvori produkt typu “Predplatne” s cyklem a cenou
- Zakaznik koupi predplatne a uhradi prvni objednavku
- Plugin vytvori predplatne se stavem “Aktivni”
- Pred datem obnoveni zakaznik obdrzi e-mailovou pripominku
- V den obnoveni plugin vytvori objednavku obnoveni
- Zakaznik uhradi objednavku obnoveni (rucni obnoveni)
- Cyklus se opakuje az do zruseni predplatneho
Konfigurace
Sekce “Konfigurace”Prejdete do WooCommerce > Nastaveni > Polski > Moduly PRO > Predplatne.
Modul je ovladan volbou:
polski_subscriptionsObecna nastaveni
Sekce “Obecna nastaveni”| Nastaveni | Popis |
|---|---|
| Zapnout predplatne | Aktivuje modul |
| Rezim obnoveni | Rucni (zakaznik hradi objednavku) |
| Prvni pripominka | Kolik dni pred obnovenim odeslat prvni pripominku (vychozi 14) |
| Druha pripominka | Kolik dni pred obnovenim odeslat druhou pripominku (vychozi 7) |
| Ochranna lhuta | Kolik dni po terminu obnoveni zustava predplatne aktivni (vychozi 7) |
| Automaticke pozastaveni | Pozastavit predplatne po uplynuti ochranne lhuty |
Vytvoreni produktu predplatneho
Sekce “Vytvoreni produktu predplatneho”- Prejdete do Produkty > Pridat novy
- Vyberte typ produktu: Predplatne
- Nakonfigurujte cenu a cyklus:
| Pole | Popis |
|---|---|
| Cena predplatneho | Castka za zuctovaci obdobi |
| Zuctovaci obdobi | Den / Tyden / Mesic / Rok |
| Delka obdobi | Pocet obdobi (napr. 1 mesic, 3 mesice) |
| Pocatecni cena | Volitelna - jina cena za prvni obdobi |
| Aktivacni poplatek | Volitelny - jednorazovy poplatek pri prvni objednavce |
| Limit obnoveni | 0 = bez limitu, nebo pocet obnoveni |
- Publikujte produkt
Pocatecni cena vs cena obnoveni
Sekce “Pocatecni cena vs cena obnoveni”Cena za prvni obdobi muze byt jina nez za nasledujici. Pouziti:
- zkusebni obdobi zdarma nebo za snizenou cenu
- promo cena na start
- aktivacni poplatek + nizsi cyklicka cena
Pocatecni cena se tyka pouze prvni objednavky. Nasledujici obnoveni maji standardni cenu.
Zivotni cyklus predplatneho
Sekce “Zivotni cyklus predplatneho”Pending → Active → On Hold → Active → ... → Expired → Cancelled| Stav | Popis |
|---|---|
| Pending | Cekajici na uhradu prvni objednavky |
| Active | Aktivni - zakaznik ma pristup k produktu |
| On Hold | Pozastavene - objednavka obnoveni ceka na uhradu |
| Expired | Vyprsele - pocet obnoveni dosahl limitu nebo uplynula ochranna lhuta |
| Cancelled | Zruseno zakaznikem nebo administratorem |
Obnoveni
Sekce “Obnoveni”Rucni obnoveni
Sekce “Rucni obnoveni”Plugin podporuje rucni obnoveni:
- Plugin vytvori objednavku obnoveni se stavem “Cekajici na platbu”
- Zakaznik obdrzi e-mail s odkazem na uhradu objednavky
- Zakaznik uhradi objednavku zvolenou platebni metodou
- Po uhrade je predplatne obnoveno na dalsi obdobi
Proces obnoveni
Sekce “Proces obnoveni”Plugin kontroluje predplatne k obnoveni denne pres WP-Cron:
polski_daily_maintenanceDenni cron uloha:
- kontroluje predplatne k obnoveni
- vytvari objednavky obnoveni
- pozastavuje predplatne po ochranne lhute
- ukoncuje predplatne po dosazeni limitu obnoveni
E-mailove pripominky
Sekce “E-mailove pripominky”Plugin posila dve e-mailove pripominky pred datem obnoveni:
| Kdy | Obsah | |
|---|---|---|
| Prvni pripominka | 14 dni pred obnovenim (konfigurovatelne) | Informace o blizicim se obnoveni, castka, odkaz na zruseni jednim kliknutim |
| Druha pripominka | 7 dni pred obnovenim (konfigurovatelne) | Posledni pripominka, castka, odkaz na zruseni a odkaz na panel |
| Objednavka obnoveni | V den obnoveni | Objednavka k uhrade s odkazem na platbu |
| Predplatne pozastaveno | Po uplynuti terminu platby | Informace o pozastaveni, odkaz na uhradu |
| Predplatne vyprselo | Po uplynuti ochranne lhuty | Informace o vyprseni, odkaz na opakovany nakup |
Sablony e-mailu lze prizpusobit v WooCommerce > Nastaveni > E-maily.
Panel Muj ucet
Sekce “Panel Muj ucet”Modul pridava sekci v Muj ucet na adrese:
/moje-konto/polski-subscriptions/Seznam predplatnych
Sekce “Seznam predplatnych”Zakaznik vidi tabulku s predplatnymi:
| Sloupec | Popis |
|---|---|
| Produkt | Nazev produktu predplatneho |
| Stav | Aktualni stav predplatneho |
| Cena | Castka za obdobi |
| Dalsi obnoveni | Datum nasledujiciho obnoveni |
| Akce | Zrusit / Uhradit obnoveni |
Detaily predplatneho
Sekce “Detaily predplatneho”Po kliknuti na predplatne zakaznik vidi:
- uplne udaje predplatneho (produkt, cena, cyklus, data)
- historii obnoveni (seznam souvisejicich objednavek)
- tlacitko zruseni predplatneho
- tlacitko uhrady cekajiciho obnoveni (pokud se tyka)
Zruseni predplatneho
Sekce “Zruseni predplatneho”Zakaznik muze zrusit aktivni predplatne v Muj ucet. Zruseni:
- meni stav predplatneho na “Cancelled”
- predplatne zustava aktivni do konce aktualniho uhrazeneho obdobi
- zakaznik je informovan o datu ukonceni pristupu
Hooky
Sekce “Hooky”polski_pro/subscription/status_changed
Sekce “polski_pro/subscription/status_changed”Akce volana po zmene stavu predplatneho.
/** * @param int $subscription_id ID predplatneho * @param string $new_status Novy stav * @param string $old_status Predchozi stav */do_action('polski_pro/subscription/status_changed', int $subscription_id, string $new_status, string $old_status);Priklad:
add_action('polski_pro/subscription/status_changed', function (int $subscription_id, string $new_status, string $old_status): void { if ($new_status === 'cancelled') { $subscription = polski_pro_get_subscription($subscription_id); // Odeslani dotazniku o duvod ukonceni wp_mail( $subscription->get_customer_email(), 'Skoda, ze odchazite', 'Reknete nam, proc rusite predplatne: https://example.com/ankieta' ); }}, 10, 3);polski_pro/subscription/renewal_created
Sekce “polski_pro/subscription/renewal_created”Akce volana po vytvoreni objednavky obnoveni.
/** * @param int $order_id ID objednavky obnoveni * @param int $subscription_id ID predplatneho */do_action('polski_pro/subscription/renewal_created', int $order_id, int $subscription_id);Priklad:
add_action('polski_pro/subscription/renewal_created', function (int $order_id, int $subscription_id): void { $order = wc_get_order($order_id); $order->add_order_note( sprintf('Objednavka obnoveni pro predplatne #%d', $subscription_id) );}, 10, 2);polski_pro/subscription/renewal_paid
Sekce “polski_pro/subscription/renewal_paid”Akce volana po uhrade objednavky obnoveni.
/** * @param int $order_id ID objednavky obnoveni * @param int $subscription_id ID predplatneho */do_action('polski_pro/subscription/renewal_paid', int $order_id, int $subscription_id);Hooky pripominek o obnoveni (1.8.2+)
Sekce “Hooky pripominek o obnoveni (1.8.2+)”Engine pripominek (14 dni + 7 dni pred obnovenim) zpristupnuje filtry a akce pro plnou personalizaci:
// Zmen okna pripominek (ve dnech)add_filter('polski_subscription_reminder_windows', fn ($w) => ['first' => 21, 'second' => 7, 'last' => 1]);
// Zmen predmet e-mailuadd_filter('polski_subscription_reminder_subject', fn ($subject, $sub, $type) => "[$type] $subject", 10, 3);
// Zmen obsah e-mailuadd_filter('polski_subscription_reminder_body', fn ($body, $sub, $type) => $body . "\n\nDekujeme!", 10, 3);
// Dalsi hlavicky (napr. HTML mode)add_filter('polski_subscription_reminder_headers', fn () => ['Content-Type: text/html; charset=UTF-8']);
// Preskoc pripominku pro konkretni predplatneadd_filter('polski_subscription_skip_reminder', fn ($skip, $sub) => $sub->productId === 42, 10, 2);
// Sleduj odeslaniadd_action('polski_subscription_reminder_sent', fn ($sub, $type, $days) => error_log("Sent $type to $sub->email"), 10, 3);add_action('polski_subscription_reminder_failed', fn ($sub, $type) => error_log("Failed $type"), 10, 2);Oznameni o zmene ceny (1.8.3+)
Sekce “Oznameni o zmene ceny (1.8.3+)”SubscriptionRepository::updateRecurringAmount() detekuje zmenu castky a automaticky posila e-mail zakaznikovi s:
- starou a novou castkou,
- datem vstupu zmeny v platnost (nasledujici zuctovaci cyklus),
- odkazem one-click cancel (pozadavky EU consumer protection).
Hooky:
// Sleduj zmenu castkyadd_action('polski_subscription_amount_changed', function (int $id, float $previous, float $next) { error_log("Subscription $id: $previous -> $next");}, 10, 3);
// Personalizuj obsah e-mailuadd_filter('polski_subscription_amount_change_body', fn ($body, $sub, $prev, $next) => $body, 10, 4);
// Sleduj vysledek odeslaniadd_action('polski_subscription_amount_change_notified', fn ($sub, $prev, $next, $sent) => null, 10, 4);Administracni panel
Sekce “Administracni panel”Seznam predplatnych
Sekce “Seznam predplatnych”Prejdete do WooCommerce > Predplatne. Tabulka obsahuje:
- ID predplatneho
- zakaznik (jmeno, prijmeni, e-mail)
- produkt
- stav
- cena a cyklus
- datum nasledujiciho obnoveni
- datum vytvoreni
Dostupne filtry: stav, produkt, datum vytvoreni.
Editace predplatneho
Sekce “Editace predplatneho”Administrator muze:
- zmenit stav predplatneho
- zmenit datum nasledujiciho obnoveni
- zmenit cenu (ovlivni nasledujici obnoveni)
- pridat poznamku
- prochazet historii stavu a souvisejici objednavky
Nejcastejsi problemy
Sekce “Nejcastejsi problemy”Objednavky obnoveni se nevytvareji
Sekce “Objednavky obnoveni se nevytvareji”- Zkontrolujte, zda WP-Cron funguje spravne (
wp_cronje volan) - Prejdete do Nastroje > Scheduled Actions a zkontrolujte, zda je uloha
polski_daily_maintenancenaplanovana - Overte, zda ma predplatne stav “Active” a spravne datum obnoveni
Zakaznik nedostava pripominky
Sekce “Zakaznik nedostava pripominky”- Zkontrolujte konfiguraci e-mailu WooCommerce
- Overte, zda je sablona e-mailu pripominky zapnuta
- Zkontrolujte nastaveni “Dny pripominky” - zda je vetsi nez 0
Predplatne nemeni stav po uhrade
Sekce “Predplatne nemeni stav po uhrade”- Zkontrolujte, zda ma objednavka obnoveni spravne propojeni s predplatnym
- Overte logy WooCommerce, zda neobsahuji chyby
- Zkontrolujte, zda platebni brana spravne meni stav objednavky