Hooky a filtry
Plugin WPify Woo Product Vouchers poskytuje filtry pro přizpůsobení generování voucherů, šablon a dat kupónů.
Filtry
Section titled “Filtry”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ónuamount— Hodnota kupónuusage_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 );wpify_woo_product_vouchers_file_name
Section titled “wpify_woo_product_vouchers_file_name”Ú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 );wpify_woo_product_vouchers_template_data
Section titled “wpify_woo_product_vouchers_template_data”Ú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 );Shortcode
Section titled “Shortcode”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.
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.