Hooky a filtry
Plugin WPify Woo ThePay poskytuje hooky a filtry, které umožňují vývojářům přizpůsobit jeho chování.
Filtry pro nastavení
Section titled “Filtry pro nastavení”wpify_woo_thepay_settings
Section titled “wpify_woo_thepay_settings”Filtruje pole nastavení platební brány.
apply_filters( 'wpify_woo_thepay_settings', array $settings );Parametry:
$settings(array) — Pole definic formulářových polí WooCommerce brány
Příklad — přidání vlastního pole do nastavení:
/** * Přidání vlastního pole do nastavení ThePay brány * * @param array $settings Nastavení brány * @return array */function my_thepay_custom_settings( $settings ) { $settings['my_custom_field'] = array( 'title' => 'Vlastní pole', 'type' => 'text', 'description' => 'Popis vlastního pole', 'default' => '', );
return $settings;}add_filter( 'wpify_woo_thepay_settings', 'my_thepay_custom_settings' );Příklad — změna výchozího názvu brány:
/** * Změna výchozího názvu platební brány * * @param array $settings Nastavení brány * @return array */function my_thepay_default_title( $settings ) { $settings['title']['default'] = 'Zaplatit přes ThePay';
return $settings;}add_filter( 'wpify_woo_thepay_settings', 'my_thepay_default_title' );Filtry pro platební metody
Section titled “Filtry pro platební metody”wpify_woo_thepay_checkout_enabled_methods
Section titled “wpify_woo_thepay_checkout_enabled_methods”Filtruje platební metody zobrazené na platební stránce ThePay (pouze hlavní brána).
apply_filters( 'wpify_woo_thepay_checkout_enabled_methods', array $methods );Parametry:
$methods(array) — Pole identifikátorů povolených platebních metod
Příklad — povolení pouze vybraných metod:
/** * Povolení pouze karty a bankovních převodů * * @param array $methods Platební metody * @return array */function my_thepay_filter_methods( $methods ) { return array_filter( $methods, function ( $method ) { return in_array( $method, [ 'card', 'platba24', 'csob' ] ); } );}add_filter( 'wpify_woo_thepay_checkout_enabled_methods', 'my_thepay_filter_methods' );Příklad — odebrání konkrétní metody:
/** * Odebrání platební metody Bitcoin z pokladny * * @param array $methods Platební metody * @return array */function my_thepay_remove_bitcoin( $methods ) { return array_filter( $methods, function ( $method ) { return $method !== 'bitcoin'; } );}add_filter( 'wpify_woo_thepay_checkout_enabled_methods', 'my_thepay_remove_bitcoin' );Filtry pro platební brány
Section titled “Filtry pro platební brány”wpify_woo_thepay_gateways
Section titled “wpify_woo_thepay_gateways”Filtruje seznam registrovaných platebních bran ThePay. Pole je numericky indexovaný seznam názvů tříd bran.
apply_filters( 'wpify_woo_thepay_gateways', array $gateways );Parametry:
$gateways(array) — Numericky indexované pole názvů tříd bran
Příklad — odebrání brány:
use WpifyWooThepay\Modules\WpifyWooThepay\Channels\BitcoinChannel;
/** * Odebrání Bitcoin brány * * @param array $gateways Platební brány * @return array */function my_thepay_remove_gateway( $gateways ) { return array_filter( $gateways, function ( $class ) { return $class !== BitcoinChannel::class; } );}add_filter( 'wpify_woo_thepay_gateways', 'my_thepay_remove_gateway' );wpify_woo_thepay_payment_status_notification
Section titled “wpify_woo_thepay_payment_status_notification”Spuštěno při přijetí notifikace o stavu platby z ThePay. Umožňuje reagovat na změny stavu platby (zaplacení, refundaci apod.).
do_action( 'wpify_woo_thepay_payment_status_notification', $status, $order, $payment );Parametry:
$status(string) — Stav platby (např.paid,preauthorized,expired,refunded)$order(WC_Order) — Objekt WooCommerce objednávky$payment(Payment) — Objekt platby ThePay API
Příklad — vlastní logika po úspěšné platbě:
/** * Odeslání notifikace po úspěšné platbě * * @param string $status Stav platby * @param WC_Order $order Objednávka * @param object $payment Objekt platby ThePay */function my_thepay_payment_notification( $status, $order, $payment ) { if ( $status === 'paid' ) { // Odeslání vlastní emailové notifikace wp_mail( 'admin@example.com', 'Platba přijata pro objednávku #' . $order->get_order_number(), 'Objednávka #' . $order->get_order_number() . ' byla zaplacena.' ); }}add_action( 'wpify_woo_thepay_payment_status_notification', 'my_thepay_payment_notification', 10, 3 );Příklad — logování stavů platby:
/** * Logování změn stavů platby do WooCommerce logu * * @param string $status Stav platby * @param WC_Order $order Objednávka * @param object $payment Objekt platby ThePay */function my_thepay_log_status( $status, $order, $payment ) { $logger = wc_get_logger(); $logger->info( sprintf( 'ThePay notifikace: objednávka #%s, stav: %s', $order->get_order_number(), $status ), [ 'source' => 'thepay-custom' ] );}add_action( 'wpify_woo_thepay_payment_status_notification', 'my_thepay_log_status', 10, 3 );Kde umístit kód
Section titled “Kde umístit kód”Vlastní funkci můžete vložit buď do tzv. child šablony nebo pomocí pluginu Code Snippets.