Akciók és szűrők: fizetések oldala, regisztrációs összeg, manuális fizetés, kivonat
Tizenkét akció és szűrő: a fizetések oldalának fejléce és teteje, fizetési beállítások, PayPal-argumentumok, kivonat, manuális regisztráció, profilszerkesztő, sikertelen ismétlődő fizetés, regisztrációs összegek és a gomb szövege.
Ez a fejezet a hookfejezetek sorát folytatja. 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.
A fizetések oldala
Szekció neve “A fizetések oldala”rcp_payments_page_table_header
Szekció neve “rcp_payments_page_table_header”Akció. Új fejlécoszlopot adhatsz vele a fizetések táblázatához (Restrict → Payments). A hozzá tartozó cellák tartalmát az rcp_payments_page_table_column akció adja, a lábléc oszlopát az rcp_payments_page_table_footer.
- Paraméter: nincs.
rcp_payments_page_top
Szekció neve “rcp_payments_page_top”Akció. Tartalmat írhatsz vele a fizetések oldalának tetejére.
- Paraméter: nincs.
Fizetési beállítások
Szekció neve “Fizetési beállítások”rcp_payments_settings
Szekció neve “rcp_payments_settings”Akció. Saját beállításmezőket adhatsz a Restrict → Settings → Payments fülhöz. A bővítmény a fizetési beállítások táblázata után hívja meg, ezért a saját mezőidet is egy táblázatba tedd.
$rcp_options(tömb): a bővítmény beállításai.
A beviteli mező name attribútuma rcp_settings[kulcs] formájú legyen, így a bővítmény a többi fizetési beállítással együtt menti el.
/** * Egyedi mező a Restrict → Settings → Payments fülön. * * @param array $rcp_options A bővítmény beállításai. */function mytheme_rcp_payments_settings( $rcp_options ) { $value = isset( $rcp_options['sajat_beallitas'] ) ? $rcp_options['sajat_beallitas'] : ''; ?> <table class="form-table"> <tr valign="top"> <th> <label for="rcp_settings[sajat_beallitas]"><?php esc_html_e( 'Saját beállítás', 'mytheme' ); ?></label> </th> <td> <input class="regular-text" id="rcp_settings[sajat_beallitas]" name="rcp_settings[sajat_beallitas]" type="text" value="<?php echo esc_attr( $value ); ?>" /> <p class="description"><?php esc_html_e( 'A mező leírása.', 'mytheme' ); ?></p> </td> </tr> </table> <?php}add_action( 'rcp_payments_settings', 'mytheme_rcp_payments_settings' );rcp_paypal_args
Szekció neve “rcp_paypal_args”Szűrő. A PayPal felé küldött fizetési vagy előfizetési argumentumokat módosíthatod vele.
$args(tömb): az argumentumok.$gateway(RCP_Payment_Gateway_PayPal): a fizetési átjáró objektuma.
Kivonat
Szekció neve “Kivonat”rcp_post_excerpt
Szekció neve “rcp_post_excerpt”Szűrő. A korlátozott bejegyzéshez vagy oldalhoz generált kivonatot módosíthatod vele.
$excerpt(szöveg): az alapértelmezetten előállított kivonat.$post(WP_Post): a korlátozott bejegyzés vagy oldal.$length(egész szám): a kivonat kívánt hossza szavakban, alapértelmezés szerint 50.$tags(szöveg): azok a HTML-címkék, amelyeket nem távolít el a kivonatból.$extra(szöveg): a kivonat végére fűzött szöveg, alapértelmezés szerint. . ..
Manuális regisztráció és profilszerkesztő
Szekció neve “Manuális regisztráció és profilszerkesztő”rcp_process_manual_signup
Szekció neve “rcp_process_manual_signup”Akció. Akkor fut le, amikor egy „manuális” fizetéssel történő regisztráció elkészült, de a tag még nem került át a sikeres oldalra.
$member(RCP_Member): a tag objektuma.$payment_id(egész szám): az éppen létrejött, függőben lévő fizetés azonosítója.$gateway(RCP_Payment_Gateway_Manual): a manuális fizetési átjáró objektuma, amely azRCP_Payment_Gatewayosztályból származik.
Az alábbi példa a függőben lévő fizetést azonnal „complete” állapotra állítja, így a tagság aktiválódik. Vigyázz: ilyenkor a tagság a fizetés ellenőrzése előtt aktív lesz.
function mytheme_rcp_auto_activate_manual_payments( $member, $payment_id, $gateway ) { /** @var RCP_Payments $rcp_payments_db */ global $rcp_payments_db;
// A fizetés „complete” állapota a tagságot is aktiválja. $rcp_payments_db->update( $payment_id, array( 'status' => 'complete' ) );}add_action( 'rcp_process_manual_signup', 'mytheme_rcp_auto_activate_manual_payments', 10, 3 );rcp_profile_editor_after
Szekció neve “rcp_profile_editor_after”Akció. Szöveget vagy HTML-t írhatsz vele a profilszerkesztő rövidkód kimenetébe, közvetlenül a „Jelszó módosítása” mezők fölé.
$user_id: a bejelentkezett felhasználó azonosítója.
Sikertelen ismétlődő fizetés
Szekció neve “Sikertelen ismétlődő fizetés”rcp_recurring_payment_failed
Szekció neve “rcp_recurring_payment_failed”Akció. Akkor fut le, amikor egy automatikus megújítási fizetés meghiúsul a fizetési átjárónál.
$member(RCP_Member): a tag objektuma, amely aWP_Userosztályból származik.$gateway(RCP_Payment_Gateway): a fizetési átjáró objektuma.
A példa jegyzetet fűz a tagsághoz, ha az ismétlődő terhelés nem sikerült, és naplóbejegyzést is készít:
function mytheme_rcp_add_recurring_payment_failure_note( $member, $gateway ) { $membership = $gateway->membership; $gateway_classes = wp_list_pluck( rcp_get_payment_gateways(), 'class' ); $gateway_name = array_search( get_class( $gateway ), $gateway_classes );
$note = sprintf( __( 'Recurring charge failed in %s.', 'rcp' ), ucwords( $gateway_name ) );
if ( ! empty( $gateway->webhook_event_id ) ) { $note .= sprintf( __( ' Event ID: %s', 'rcp' ), $gateway->webhook_event_id ); }
$membership->add_note( $note );
rcp_log( sprintf( 'Recurring payment failed for membership #%d. Gateway: %s; Membership Level: %s; Expiration Date: %s', $membership->get_id(), ucwords( $gateway_name ), $member->get_subscription_name(), $membership->get_expiration_date() ) );}add_action( 'rcp_recurring_payment_failed', 'mytheme_rcp_add_recurring_payment_failure_note', 10, 2 );Összegek és ismétlődés a regisztrációnál
Szekció neve “Összegek és ismétlődés a regisztrációnál”rcp_registration_get_total
Szekció neve “rcp_registration_get_total”Szűrő. A regisztrációkor ma fizetendő teljes összeget (a kezdeti árat) módosíthatod vele.
$total(lebegőpontos szám): a ma fizetendő összeg.$registration(RCP_Registration): a regisztráció objektuma.
rcp_registration_get_recurring_total
Szekció neve “rcp_registration_get_recurring_total”Szűrő. Az ismétlődő fizetés összegét módosíthatod vele, vagyis azt, amit az automatikus megújítások terhelnek.
$total(lebegőpontos szám): az ismétlődő összeg.$registration(RCP_Registration): a regisztráció objektuma.
rcp_registration_is_recurring
Szekció neve “rcp_registration_is_recurring”Szűrő. Azt döntheted el vele, hogy az „automatikus megújítás” be van-e kapcsolva az éppen zajló regisztrációnál. A szűrő futása közben a $_POST['rcp_level'] elérhető, így megnézheted, melyik tagsági szintet választotta a látogató a regisztrációs űrlapon.
A regisztrációs gomb szövege
Szekció neve “A regisztrációs gomb szövege”rcp_registration_register_button
Szekció neve “rcp_registration_register_button”Szűrő. A regisztrációs űrlap küldőgombjának szövegét módosíthatod vele. Ez jobb megoldás, mint a sablonfájl szövegének közvetlen átírása.
$button_text(szöveg): az eredeti gombszöveg („Register”).
/** * A gomb szövege „Register” helyett „Submit Payment”. * * @param string $button_text Az eredeti szöveg. * * @return string A módosított szöveg. */function mytheme_rcp_registration_register_button( $button_text ) { return __( 'Submit Payment', 'rcp' );}add_filter( 'rcp_registration_register_button', 'mytheme_rcp_registration_register_button' );Ha a Stripe Checkout van használatban, ez a szűrő nem elég: a gomb szövegét más módon, a wp_footer akcióba kötött, a gombot átíró kóddal kell cserélni.
Készült: