Akciók és szűrők: űrlapok, tagsági szintek, kedvezmények, fizetés
Tizenkét akció és szűrő leírása paraméterekkel és példákkal: regisztrációs és bejelentkezési űrlap, tagsági szint mentése, kedvezménykód, fizetési átjáró, regisztrációs díj.
Ez a fejezet néhány gyakran használt akciót és szűrőt ír le részletesen. A hookok teljes, témák szerinti listája az Akciók és szűrők áttekintő listája fejezetben van. Az itt szereplő kód egyedi fejlesztés: a bővítmény támogatása nem terjed ki rá, bonyolultabb feladathoz érdemes fejlesztőt bevonni.
Az akciót add_action, a szűrőt add_filter hívással csatlakoztatod. Ha a függvényednek több paramétert kell megkapnia, a harmadik szám (a prioritás) után a paraméterek számát is add meg, például add_action( 'rcp_add_subscription', 'fuggveny', 10, 2 ).
Regisztrációs űrlap
Szekció neve “Regisztrációs űrlap”rcp_before_form_errors
Szekció neve “rcp_before_form_errors”Akció. Közvetlenül azelőtt fut le, hogy a regisztrációs vagy bejelentkezési űrlap ellenőrzése megtörténik. Itt tudsz hibát megjeleníteni az általad felvett egyedi mezőkhöz.
- Paraméter: a
$_POSTtömb, vagyis az űrlappal elküldött összes adat.
rcp_after_password_registration_field
Szekció neve “rcp_after_password_registration_field”Akció. Extra mezőket szúrhatsz be vele a regisztrációs űrlapba. Az itt kiírt mezők a Jelszó mező után jelennek meg, közvetlenül a tagsági szint választása felett.
rcp_after_register_form_fields
Szekció neve “rcp_after_register_form_fields”Akció. Az űrlap végére tehetsz vele extra mezőket: a mezők közvetlenül a fizetési mód választása felett jelennek meg. A mezők ellenőrzését az rcp_form_errors akcióval végezheted el.
A példa egy jelölőnégyzetet ad az űrlaphoz, és hibát jelez, ha nincs bejelölve:
/** * Jelölőnégyzet a regisztrációs űrlapon. */function pelda_rcp_after_register_form_fields() { ?> <p> <input name="rcp_sample_required_field" id="rcp_sample_required_field" type="checkbox" checked="checked" /> <label for="rcp_sample_required_field"><?php esc_html_e( 'A mező felirata*', 'rcp' ); ?></label> </p> <?php}add_action( 'rcp_after_register_form_fields', 'pelda_rcp_after_register_form_fields' );
/** * Hibát jelez, ha a jelölőnégyzet nincs bejelölve. * * @param array $posted Az űrlappal elküldött adatok. */function pelda_rcp_form_errors( $posted ) { if ( ! isset( $posted['rcp_sample_required_field'] ) ) { rcp_errors()->add( 'sample_field_required', __( 'Ezt a mezőt be kell jelölnöd', 'rcp' ), 'register' ); }}add_action( 'rcp_form_errors', 'pelda_rcp_form_errors' );rcp_after_register_form
Szekció neve “rcp_after_register_form”Akció. A rcp_registration_form_fields() függvényben fut le, közvetlenül azután, hogy a bővítmény betöltötte a regisztrációs sablont (register.php, register-single.php vagy egy szintspecifikus felülírás), és még azelőtt, hogy az űrlap HTML-je visszatérne. A teljes űrlap alatti tartalomhoz használd azokon az oldalakon, ahol a register_form vagy a register_form_stripe rövidkód van. Az űrlap belsejébe szánt mezőkhöz az rcp_after_register_form_fields való.
Paraméterek:
| Paraméter | Típus | Jelentés |
|---|---|---|
$level_id |
int vagy null | A tagsági szint azonosítója, ha az űrlap egyetlen szintre van szűkítve. Ha minden szint látszik, null. |
$atts |
tömb | A rövidkód attribútumai, például a registered_message, ha a felhasználó már rajta van az adott szinten. |
function pelda_rcp_after_register_form( $level_id, $atts ) { echo '<p class="rcp-register-footer">' . esc_html__( 'Kérdésed van? Írj nekünk.', 'pelda' ) . '</p>';}add_action( 'rcp_after_register_form', 'pelda_rcp_after_register_form', 10, 2 );Kapcsolódó akció: rcp_before_register_form (az űrlap előtt fut).
rcp_apply_signup_fee_to_registration
Szekció neve “rcp_apply_signup_fee_to_registration”Szűrő. Eldönti, hogy az adott regisztrációra rákerüljön-e a regisztrációs díj. Alapértelmezés szerint akkor igaz, ha a regisztráció megújítás, különben hamis.
| Paraméter | Típus | Jelentés |
|---|---|---|
$add_signup_fee |
bool | Rákerüljön-e a díj. |
$membership |
objektum | A tagsági szint sora az adatbázisból. |
$registration |
RCP_Registration |
A regisztrációs objektum. |
Bejelentkezési és jelszóűrlap
Szekció neve “Bejelentkezési és jelszóűrlap”rcp_after_login_form
Szekció neve “rcp_after_login_form”Akció. A bejelentkezési sablon betöltése után fut le, még az rcp_login_form_fields() függvényen belül. Az űrlap alatti tartalomhoz használd: hivatkozás, figyelmeztetés vagy a sablonon kívüli extra mező. Nincs paramétere.
function pelda_rcp_after_login_form() { echo '<p><a href="' . esc_url( wp_lostpassword_url() ) . '">' . esc_html__( 'Elfelejtetted a jelszavad?', 'pelda' ) . '</a></p>';}add_action( 'rcp_after_login_form', 'pelda_rcp_after_login_form' );Kapcsolódó hookok: rcp_before_login_form, rcp_login_form_errors.
rcp_after_password_form
Szekció neve “rcp_after_password_form”Akció. A jelszóváltoztató sablon után fut le, az rcp_change_password_form() függvényben. Nincs paramétere.
function pelda_rcp_after_password_form() { echo '<p>' . esc_html__( 'A jelszó módosítása után bejelentkezve maradsz.', 'pelda' ) . '</p>';}add_action( 'rcp_after_password_form', 'pelda_rcp_after_password_form' );Kapcsolódó hookok: rcp_before_password_form, rcp_password_form_errors.
Tagsági szintek
Szekció neve “Tagsági szintek”rcp_add_subscription_form
Szekció neve “rcp_add_subscription_form”Akció. Tartalmat szúr be az Új szint hozzáadása táblázatba, így egyedi mezőt tehetsz az űrlapra. A mező értékét az rcp_add_subscription akcióval mentheted.
function pelda_szint_mezo() { ?> <tr class="form-field"> <th scope="row" valign="top"> <label for="pelda-csoport-engedelyezes"><?php esc_html_e( 'Csoportfiók engedélyezése', 'pelda' ); ?></label> </th> <td> <input id="pelda-csoport-engedelyezes" type="checkbox" name="pelda-csoport-engedelyezes" /> <p class="description"><?php esc_html_e( 'Jelöld be, ha ennél a szintnél csoportfiók is legyen.', 'pelda' ); ?></p> </td> </tr> <?php}add_action( 'rcp_add_subscription_form', 'pelda_szint_mezo' );rcp_add_subscription
Szekció neve “rcp_add_subscription”Akció. Egy újonnan felvett tagsági szint mentésekor fut le. Az rcp_add_subscription_form akcióval együtt használd, ha egyedi mezőt adtál az új szint űrlapjához.
| Paraméter | Típus | Jelentés |
|---|---|---|
$level_id |
int | Az új szint azonosítója. |
$args |
tömb | A szint létrehozásához használt adatok. |
function pelda_szint_mezo_mentese( $level_id, $args ) { if ( empty( $_POST['pelda-csoport-engedelyezes'] ) ) { return; }
// Itt mentsd az egyedi értéket a $level_id szinthez.}add_action( 'rcp_add_subscription', 'pelda_szint_mezo_mentese', 10, 2 );A 2 az add_action hívásban kötelező, különben a függvény nem kapja meg mindkét paramétert.
rcp_access_levels
Szekció neve “rcp_access_levels”Szűrő. A választható hozzáférési szintek listáját módosítja. A paraméter ($levels) számokból álló tömb, ahol a kulcs és az érték ugyanaz a szám. A példa 20-ra növeli a szintek számát:
function pelda_rcp_access_levels( $levels ) { for ( $i = 11; $i <= 20; $i++ ) { $levels[ $i ] = $i; } return $levels;}add_filter( 'rcp_access_levels', 'pelda_rcp_access_levels' );Kedvezménykódok
Szekció neve “Kedvezménykódok”rcp_add_discount
Szekció neve “rcp_add_discount”Akció. Közvetlenül azután fut le, hogy egy új kedvezménykód bekerült az adatbázisba.
| Paraméter | Jelentés |
|---|---|
$args |
A kedvezmény adatai: name, description, amount, status, unit, code, expiration, max_uses, use_count, subscription_id. |
$discount_id |
Az új kedvezménykód azonosítója. |
Fizetési átjárók
Szekció neve “Fizetési átjárók”rcp_gateway_{átjáró azonosítója}
Szekció neve “rcp_gateway_{átjáró azonosítója}”Akció. A regisztráció elküldésekor fut le, és ez adja át az összes regisztrációs adatot a kiválasztott fizetési átjárónak. Az akció neve az átjáró azonosítójától függ (például rcp_gateway_stripe).
Paraméter: $subscription_data, a felhasználó és az előfizetés adatait tartalmazó tömb. Kulcsai: user_email, user_id, user_name, currency, price, fee, discount, discount_code, length, length_unit, key, subscription_id, subscription_name, auto_renew, return_url.
Készült: