Přeskočit na obsah

Hooky a filtry

Plugin WPify Woo ThePay poskytuje hooky a filtry, které umožňují vývojářům přizpůsobit jeho chování.

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

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

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

Vlastní funkci můžete vložit buď do tzv. child šablony nebo pomocí pluginu Code Snippets.