# 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](https://hub.hellowp.io/hu/plugins/learndash-restrict-content-pro/fejlesztok-altalanos-akciok-es-szurok-listaja/) 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

### `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`

Akció. Tartalmat írhatsz vele a fizetések oldalának tetejére.

- Paraméter: nincs.

## Fizetési beállítások

### `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.

```php
/**
 * 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`

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

### `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ő

### `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 az `RCP_Payment_Gateway` osztá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.

```php
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`

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

### `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 a `WP_User` osztá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:

```php
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

### `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`

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`

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

### `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”).

```php
/**
 * 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.
