Tovább a tartalomhoz

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 ).

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 $_POST tömb, vagyis az űrlappal elküldött összes adat.

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.

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' );

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).

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.

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.

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.

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' );

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.

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' );

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.

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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások