Skip to content

Hooky a filtry

Plugin WPify Woo Comgate poskytuje řadu hooků a filtrů, které umožňují přizpůsobit jeho chování.

Umožňuje upravit parametry platby před odesláním do Comgate API.

apply_filters( 'wpify_woo_comgate_payment_args', array $args, WC_Order $order )

Parametry:

  • $args (array) - Argumenty platby odesílané do API
  • $order (WC_Order) - Objekt objednávky

Dostupné klíče v $args:

  • ref_no - Referenční číslo objednávky (výchozí: order ID)
  • amount - Částka k platbě
  • currency - Měna (CZK, EUR, …)
  • desc / label - Popis platby
  • email - Email zákazníka
  • channel - Platební metoda
  • country_code - Kód země
  • embedded - Inline platba (true/false)

Příklad použití:

/**
* Přidání vlastního popisu platby
*
* @param array $args Argumenty platby
* @param WC_Order $order Objednávka
* @return array
*/
function my_custom_payment_args( $args, $order ) {
$args['label'] = 'Objednávka #' . $order->get_order_number();
return $args;
}
add_filter( 'wpify_woo_comgate_payment_args', 'my_custom_payment_args', 10, 2 );

Filtr pro převod referenčního ID z Comgate zpět na ID objednávky. Používá se při zpracování platebních notifikací.

apply_filters( 'wpify_woo_comgate_custom_id', mixed $ref_id )

Parametry:

  • $ref_id (mixed) - Referenční ID přijaté z Comgate (hodnota, kterou jste poslali jako ref_no)

Návratová hodnota:

  • ID objednávky WooCommerce (integer)

Příklad - sekvenční čísla objednávek:

/**
* Změna ref_no na order_number při vytváření platby
*/
function my_custom_ref_no( $args, $order ) {
$args['ref_no'] = $order->get_order_number();
return $args;
}
add_filter( 'wpify_woo_comgate_payment_args', 'my_custom_ref_no', 10, 2 );
/**
* Převod order_number zpět na order_id při příjmu notifikace
*
* @param mixed $ref_id Order number přijatý z Comgate
* @return int Order ID
*/
function my_convert_ref_to_order_id( $ref_id ) {
// Pro WooCommerce Sequential Order Numbers Pro
if ( function_exists( 'wc_seq_order_number_pro' ) ) {
return wc_seq_order_number_pro()->find_order_by_order_number( $ref_id );
}
// Pro jiné pluginy - vlastní logika
global $wpdb;
$order_id = $wpdb->get_var( $wpdb->prepare(
"SELECT post_id FROM {$wpdb->postmeta}
WHERE meta_key = '_order_number' AND meta_value = %s",
$ref_id
) );
return $order_id ?: $ref_id;
}
add_filter( 'wpify_woo_comgate_custom_id', 'my_convert_ref_to_order_id' );

Filtruje seznam dostupných platebních metod.

apply_filters( 'wpify_woo_comgate_payment_methods', array $methods )

Parametry:

  • $methods (array) - Pole platebních metod

Příklad použití:

/**
* Odebrání specifické platební metody
*
* @param array $methods Platební metody
* @return array
*/
function my_filter_payment_methods( $methods ) {
// Odebrání platební metody
unset( $methods['BANK_CZ_CS'] );
return $methods;
}
add_filter( 'wpify_woo_comgate_payment_methods', 'my_filter_payment_methods' );

wpify_woo_comgate_checkout_enabled_methods

Section titled “wpify_woo_comgate_checkout_enabled_methods”

Filtruje platební metody zobrazené v pokladně.

apply_filters( 'wpify_woo_comgate_checkout_enabled_methods', array $methods )

Umožňuje upravit data jednotlivé platební metody.

apply_filters( 'wpify_woo_comgate_channel_method', array $method, string $method_key )

Parametry:

  • $method (array) - Data platební metody (název, popis, logo)
  • $method_key (string) - Klíč metody

Filtruje pole nastavení platební brány.

apply_filters( 'wpify_woo_comgate_settings', array $settings )

Příklad použití:

/**
* Přidání vlastního pole do nastavení
*
* @param array $settings Nastavení brány
* @return array
*/
function my_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_comgate_settings', 'my_custom_settings' );

Umožňuje přepsat přístupové údaje k Comgate API.

apply_filters( 'wpify_woo_comgate_client_data', array $data )

Parametry:

  • $data (array) - Pole s klíči merchant_number a secret

Příklad použití:

/**
* Dynamické nastavení přístupových údajů
*
* @param array $data Přístupové údaje
* @return array
*/
function my_dynamic_credentials( $data ) {
// Např. pro multisite nebo různé měny
if ( get_woocommerce_currency() === 'EUR' ) {
$data['merchant_number'] = 'EUR_MERCHANT_ID';
$data['secret'] = 'EUR_SECRET';
}
return $data;
}
add_filter( 'wpify_woo_comgate_client_data', 'my_dynamic_credentials' );

Filtruje URL pro přesměrování po dokončení platby.

apply_filters( 'wpify_woo_comgate_redirect_url', string $url, WC_Order $order )

Parametry:

  • $url (string) - URL pro přesměrování
  • $order (WC_Order) - Objekt objednávky

Příklad použití:

/**
* Vlastní přesměrování po platbě
*
* @param string $url URL přesměrování
* @param WC_Order $order Objednávka
* @return string
*/
function my_custom_redirect( $url, $order ) {
// Přesměrování na vlastní děkovací stránku
return home_url( '/dekujeme/?order=' . $order->get_id() );
}
add_filter( 'wpify_woo_comgate_redirect_url', 'my_custom_redirect', 10, 2 );

Filtruje seznam registrovaných platebních bran.

apply_filters( 'wpify_woo_comgate_gateways', array $gateways )

Parametry:

  • $gateways (array) - Pole tříd platebních bran

Příklad použití:

/**
* Odebrání platební brány
*
* @param array $gateways Platební brány
* @return array
*/
function my_filter_gateways( $gateways ) {
// Odebrání brány pro úvěry
unset( $gateways['comgate-all-loan'] );
return $gateways;
}
add_filter( 'wpify_woo_comgate_gateways', 'my_filter_gateways' );

Vlastní funkce můžete vložit:

  1. Do functions.php child šablony - Doporučeno pro úpravy specifické pro téma
  2. Pomocí pluginu Code Snippets - Doporučeno pro snadnou správu
  3. Do vlastního pluginu - Doporučeno pro komplexnější úpravy