Přeskočit na obsah

Hooky a filtry

Plugin WPify Woo Product Vouchers poskytuje filtry pro přizpůsobení generování voucherů, šablon a dat kupónů.

wpify_woo_product_vouchers_generate_coupon_data

Section titled “wpify_woo_product_vouchers_generate_coupon_data”

Filtruje data kupónu před vytvořením WooCommerce kupónu.

apply_filters( 'wpify_woo_product_vouchers_generate_coupon_data', array $coupon_data, array $item_data, WC_Order $order );

Parametry:

  • $coupon_data (array) — Data WooCommerce kupónu (kód, částka, limit použití, datum expirace atd.)
  • $item_data (array) — Data položky objednávky
  • $order (WC_Order) — Objekt WooCommerce objednávky

Struktura $coupon_data:

  • code — Vygenerovaný kód kupónu
  • amount — Hodnota kupónu
  • usage_limit — Maximální počet použití
  • date_expires — Datum expirace (formát Y-m-d)
  • meta_data — Další metadata kupónu

Příklad — omezení kupónu na email zákazníka:

/**
* Omezení kupónu na fakturační email zákazníka
*
* @param array $coupon_data Data kupónu
* @param array $item_data Data položky
* @param WC_Order $order Objednávka
* @return array
*/
function my_restrict_coupon_to_email( $coupon_data, $item_data, $order ) {
$coupon_data['email_restrictions'] = [ $order->get_billing_email() ];
return $coupon_data;
}
add_filter( 'wpify_woo_product_vouchers_generate_coupon_data', 'my_restrict_coupon_to_email', 10, 3 );

Příklad — nastavení minimální hodnoty objednávky:

/**
* Nastavení minimální hodnoty objednávky pro použití kupónu
*
* @param array $coupon_data Data kupónu
* @param array $item_data Data položky
* @param WC_Order $order Objednávka
* @return array
*/
function my_set_minimum_order( $coupon_data, $item_data, $order ) {
$coupon_data['minimum_amount'] = 500;
return $coupon_data;
}
add_filter( 'wpify_woo_product_vouchers_generate_coupon_data', 'my_set_minimum_order', 10, 3 );

Úprava názvu vygenerovaného souboru voucheru.

apply_filters( 'wpify_woo_product_vouchers_file_name', string $file_name, array $voucher, array $template );

Parametry:

  • $file_name (string) — Výchozí název souboru
  • $voucher (array) — Data voucheru
  • $template (array) — Konfigurace šablony

Příklad — vlastní název souboru s kódem kupónu:

/**
* Vlastní název souboru voucheru
*
* @param string $file_name Výchozí název
* @param array $voucher Data voucheru
* @param array $template Šablona
* @return string
*/
function my_voucher_file_name( $file_name, $voucher, $template ) {
return 'darkovy-poukaz-' . $voucher['code'];
}
add_filter( 'wpify_woo_product_vouchers_file_name', 'my_voucher_file_name', 10, 3 );

Úprava dat šablony před vygenerováním obrázku voucheru.

apply_filters( 'wpify_woo_product_vouchers_template_data', array $template, WC_Coupon|null $coupon );

Parametry:

  • $template (array) — Konfigurace šablony včetně textových prvků, souboru obrázku atd.
  • $coupon (WC_Coupon|null) — Objekt WooCommerce kupónu

Příklad — přidání vlastního textového prvku:

/**
* Přidání vlastního textu na voucher
*
* @param array $template Konfigurace šablony
* @param WC_Coupon|null $coupon Kupón
* @return array
*/
function my_add_voucher_text( $template, $coupon ) {
$template['texts'][] = [
'type' => 'value',
'content' => 'Děkujeme za nákup!',
'position_x' => 100,
'position_y' => 200,
'font_size' => 14,
'color' => '#000000',
];
return $template;
}
add_filter( 'wpify_woo_product_vouchers_template_data', 'my_add_voucher_text', 10, 2 );

wpify_woo_product_vouchers_allowed_templates

Section titled “wpify_woo_product_vouchers_allowed_templates”

Filtruje, které šablony jsou dostupné pro konkrétní produkt.

apply_filters( 'wpify_woo_product_vouchers_allowed_templates', array $allowed_templates, $product, WC_Product $wc_product );

Parametry:

  • $allowed_templates (array) — Pole povolených šablon
  • $product (ProductModel) — Model produktu pluginu
  • $wc_product (WC_Product) — Objekt WooCommerce produktu

Příklad — omezení šablon pro prémiové produkty:

/**
* Zobrazit pouze prémiovou šablonu pro produkty v kategorii premium
*
* @param array $allowed_templates Povolené šablony
* @param mixed $product Model produktu
* @param WC_Product $wc_product WooCommerce produkt
* @return array
*/
function my_filter_voucher_templates( $allowed_templates, $product, $wc_product ) {
if ( has_term( 'premium', 'product_cat', $wc_product->get_id() ) ) {
return [ 'premium-template-id' ];
}
return $allowed_templates;
}
add_filter( 'wpify_woo_product_vouchers_allowed_templates', 'my_filter_voucher_templates', 10, 3 );

Plugin poskytuje shortcode pro stránku výběru šablony:

[wpify_woo_vouchers_select_voucher]

Vykreslí formulář pro výběr šablony voucheru a stažení na WordPress stránce.

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