Akciók és szűrők: tagságok, beállítások, jelszóűrlap, fizetések oldala
Tizenkét hook paraméterekkel és példákkal: új és megújított tagság, a tagságok táblázata, a beállítóoldalak saját mezői, a korlátozás-metabox típusai, a jelszóűrlap hibái, a fizetés állapotának felirata és a fizetések oldala.
Ez a fejezet az előző hookfejezet folytatása. A hookok teljes 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 kapnia, a prioritás után add meg a paraméterek számát is, például add_action( 'rcp_membership_post_renew', 'fuggveny', 10, 3 ). A szűrőnek mindig vissza kell adnia az (esetleg módosított) első paramétert.
Tagságok
Szekció neve “Tagságok”rcp_new_membership_added
Szekció neve “rcp_new_membership_added”Akció. Akkor fut le, amikor új tagság jön létre, szintemelésnél és szintcsökkentésnél is. Fontos, hogy a tagságrekord létrejöttekor indul, nem az aktiváláskor. Ha a tagság „függőben” (pending) állapotban jön létre, a hook akkor is lefut, ezért ne feltételezd, hogy a tagság már aktív.
Ha a kódodnak csak aktiváláskor kell futnia, használd inkább az rcp_transition_membership_status_active vagy az rcp_membership_post_activate hookot.
| Paraméter | Típus | Jelentés |
|---|---|---|
$membership_id |
egész | Az új tagságrekord azonosítója. |
$data |
tömb | A tagságrekord létrehozásához használt adatok. |
function mytheme_rcp_new_membership_added( $membership_id, $data ) { $membership = rcp_get_membership( $membership_id ); if ( $membership ) { error_log( 'Új tagság jött létre: ' . $membership_id ); }}add_action( 'rcp_new_membership_added', 'mytheme_rcp_new_membership_added', 10, 2 );rcp_membership_post_renew
Szekció neve “rcp_membership_post_renew”Akció. A tagság megújítása után fut le, az automatikus és a kézi megújításnál is. Az első aktiváláskor nem indul el, ahhoz az rcp_membership_post_activate való.
| Paraméter | Típus | Jelentés |
|---|---|---|
$expiration |
szöveg | A tagság új lejárati dátuma MySQL formátumban. |
$membership_id |
egész | A tagság azonosítója. |
$membership |
RCP_Membership |
A tagság objektuma. |
function mytheme_rcp_membership_post_renew( $expiration, $membership_id, $membership ) { error_log( sprintf( 'A(z) %d tagság megújult, új lejárat: %s', $membership_id, $expiration ) );}add_action( 'rcp_membership_post_renew', 'mytheme_rcp_membership_post_renew', 10, 3 );Kapcsolódó: rcp_membership_pre_renew, rcp_membership_post_activate.
A tagságok táblázata
Szekció neve “A tagságok táblázata”A Restrict → Memberships oldal táblázatának oszlopait két szűrővel alakíthatod. Az első az oszlopokat adja meg, a második az egyes cellák tartalmát. A teljes, lépésenkénti példa a Kódpéldák fejezetben van.

A képen a táblázat alapértelmezett oszlopai látszanak: Customer, Membership, Status, Recurring, Created és Expiration. Ezeket módosítják az alábbi szűrők.
rcp_memberships_list_table_columns
Szekció neve “rcp_memberships_list_table_columns”Szűrő. A tagságok táblázatának oszlopait módosítja: hozzáadhatsz, átnevezhetsz vagy eltávolíthatsz oszlopot.
| Paraméter | Típus | Jelentés |
|---|---|---|
$columns |
tömb | Az oszlopkulcsok és az oszlopnevek tömbje. |
function mytheme_rcp_memberships_columns( $columns ) { $columns['company'] = __( 'Cég', 'mytheme' ); return $columns;}add_filter( 'rcp_memberships_list_table_columns', 'mytheme_rcp_memberships_columns' );rcp_memberships_list_table_column_{column}
Szekció neve “rcp_memberships_list_table_column_{column}”Szűrő. Egy oszlop cellájának értékét adja meg. A {column} helyére az oszlop kulcsa kerül, így az új company oszlophoz az rcp_memberships_list_table_column_company szűrő tartozik.
| Paraméter | Típus | Jelentés |
|---|---|---|
$value |
vegyes | A cellában megjelenő érték. |
$membership |
RCP_Membership |
A sorhoz tartozó tagság objektuma. |
function mytheme_rcp_memberships_column_company( $value, $membership ) { return esc_html( get_user_meta( $membership->get_user_id(), 'company', true ) );}add_filter( 'rcp_memberships_list_table_column_company', 'mytheme_rcp_memberships_column_company', 10, 2 );Beállítások és korlátozás-metabox
Szekció neve “Beállítások és korlátozás-metabox”rcp_messages_settings
Szekció neve “rcp_messages_settings”Akció. Saját beállítást vehetsz fel a Restrict → Settings → General oldalon, a korlátozott tartalom üzenetét tartalmazó rész alá (az üzenetek közé, a Restricted Content Message mező után).
- Paraméter:
$rcp_options, a bővítmény beállításainak tömbje.
A beviteli mező nevének rcp_settings[kulcs] formájúnak kell maradnia, mert a bővítmény így menti el a saját beállításai mellett.
function mytheme_rcp_messages_settings( $rcp_options ) { $value = isset( $rcp_options['your_custom_setting'] ) ? $rcp_options['your_custom_setting'] : ''; ?> <tr valign="top"> <th> <label for="rcp_settings[your_custom_setting]"><?php esc_html_e( 'Saját beállítás', 'mytheme' ); ?></label> </th> <td> <input class="regular-text" id="rcp_settings[your_custom_setting]" name="rcp_settings[your_custom_setting]" type="text" value="<?php echo esc_attr( $value ); ?>" /> <p class="description"><?php esc_html_e( 'Ide jön a leírás.', 'mytheme' ); ?></p> </td> </tr> <?php}add_action( 'rcp_messages_settings', 'mytheme_rcp_messages_settings' );rcp_misc_settings
Szekció neve “rcp_misc_settings”Akció. Ugyanúgy működik, mint az rcp_messages_settings, de a Restrict → Settings → Misc oldalra teszi a saját beállításodat. Paramétere szintén $rcp_options, és a mező nevének itt is rcp_settings[kulcs] alakúnak kell lennie, hogy a bővítmény a többi beállítással együtt mentse.
function mytheme_rcp_misc_settings( $rcp_options ) { $value = isset( $rcp_options['your_custom_setting'] ) ? $rcp_options['your_custom_setting'] : ''; ?> <tr valign="top"> <th> <label for="rcp_settings[your_custom_setting]"><?php esc_html_e( 'Saját beállítás', 'mytheme' ); ?></label> </th> <td> <input class="regular-text" id="rcp_settings[your_custom_setting]" name="rcp_settings[your_custom_setting]" type="text" value="<?php echo esc_attr( $value ); ?>" /> <p class="description"><?php esc_html_e( 'Ide jön a leírás.', 'mytheme' ); ?></p> </td> </tr> <?php}add_action( 'rcp_misc_settings', 'mytheme_rcp_misc_settings' );rcp_metabox_post_types
Szekció neve “rcp_metabox_post_types”Szűrő. A „tartalom korlátozása” metabox alapból minden nyilvános tartalomtípushoz megjelenik. Ha egy másik típushoz is szeretnéd, add hozzá a típus nevét a tömbhöz.
| Paraméter | Típus | Jelentés |
|---|---|---|
$post_types |
tömb | Azoknak a tartalomtípusoknak a nevei, amelyeknél a metabox megjelenik. |
function mytheme_rcp_metabox_post_types( $post_types ) { $post_types[] = 'post_type_name'; return $post_types;}add_filter( 'rcp_metabox_post_types', 'mytheme_rcp_metabox_post_types' );Jelszóűrlap
Szekció neve “Jelszóűrlap”rcp_password_form_errors
Szekció neve “rcp_password_form_errors”Akció. A jelszómódosítás feldolgozásakor fut le, miután a bővítmény a beépített ellenőrzésekkel megnézte, hogy üres-e a mező és egyezik-e a két jelszó, de még azelőtt, hogy az új jelszót elmentené.
Hibát az rcp_errors()->add( $code, $message, 'password' ) hívással adhatsz hozzá. Ha marad hiba, a bővítmény nem frissíti a jelszót.
| Paraméter | Típus | Jelentés |
|---|---|---|
$posted_data |
tömb | A jelszómódosító kérés nyers $_POST adata. |
function mytheme_rcp_password_form_errors( $posted_data ) { if ( ! empty( $posted_data['rcp_user_pass'] ) && false !== strpos( $posted_data['rcp_user_pass'], ' ' ) ) { rcp_errors()->add( 'password_has_spaces', __( 'A jelszó nem tartalmazhat szóközt.', 'mytheme' ), 'password' ); }}add_action( 'rcp_password_form_errors', 'mytheme_rcp_password_form_errors' );Kapcsolódó: rcp_before_password_form_errors (a beépített ellenőrzések előtt fut, lásd az űrlap-hookok fejezetet), [password_form] rövidkód.
Fizetések
Szekció neve “Fizetések”rcp_payment_status_label
Szekció neve “rcp_payment_status_label”Szűrő. A fizetés állapotának feliratát módosítja (például „Complete”, „Pending”, „Refunded”). Ez a felirat három helyen jelenik meg: a [subscription_details] rövidkód fizetési táblázatában, a fizetés számláján és az adminisztrációs fizetéstáblázatban a Restrict → Payments oldalon.
| Paraméter | Típus | Jelentés |
|---|---|---|
$label |
szöveg | A megjelenő felirat, például „Complete”, „Pending” vagy „Refunded”. |
$status |
szöveg | A fizetés állapotának kulcsa, például complete, pending vagy refunded. |
$payment |
objektum | A fizetés adatbázisbeli objektuma. |
function mytheme_rcp_payment_status_label( $label, $status, $payment ) { if ( 'complete' === $status ) { return __( 'Kifizetve', 'mytheme' ); } return $label;}add_filter( 'rcp_payment_status_label', 'mytheme_rcp_payment_status_label', 10, 3 );A fizetések oldalának hookjai
Szekció neve “A fizetések oldalának hookjai”A Restrict → Payments oldal táblázatán három akcióval bővíthetsz tartalmat.

A képen a fizetések táblázata látszik a szűrőkkel (átjáró, típus, tagsági szint, dátumtartomány). A táblázat alatti rész és az új oszlopok az alábbi hookokkal bővíthetők.
| Hook | Típus | Mit csinál | Paraméter |
|---|---|---|---|
rcp_payments_page_bottom |
akció | Tartalmat ír a fizetések oldalának aljára. | nincs |
rcp_payments_page_table_column |
akció | Tartalmat ad egy új oszlopba a fizetések táblázatában. | $payment_id: a megjelenített fizetés azonosítója |
rcp_payments_page_table_footer |
akció | Új oszlopot ad a táblázat láblécéhez. | nincs |
function mytheme_rcp_payments_page_bottom() { echo '<p>' . esc_html__( 'A fizetésekkel kapcsolatos megjegyzések.', 'mytheme' ) . '</p>';}add_action( 'rcp_payments_page_bottom', 'mytheme_rcp_payments_page_bottom' );Ha a táblázatban saját oszlopot szeretnél, az rcp_payments_page_table_column az oszlop cellájának tartalmát írja ki, az rcp_payments_page_table_footer pedig a hozzá tartozó láblécmezőt.
Készült: