Hooks pro UI a info bloky
Tento obsah zatím není dostupný ve vašem jazyce.
Filtry pro úpravu zobrazení slev na produktových stránkách a v košíku.
Úprava labelu v info bloku
Section titled “Úprava labelu v info bloku”Filtr umožňuje upravit label (název slevy) v info bloku.
apply_filters( 'wpify_woo_discounts_info_block_item_label', $label, $rule, $product );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$label | string | Text labelu (název pravidla) |
$rule | array | Pole s nastavením pravidla |
$product | WC_Product | Aktuální produkt |
Příklad použití
Section titled “Příklad použití”Přidání emoji podle typu slevy
Section titled “Přidání emoji podle typu slevy”/** * Přidat emoji k labelu podle typu slevy * * @param string $label Text labelu * @param array $rule Pravidlo * @param WC_Product $product Produkt * * @return string */function add_emoji_to_label( $label, $rule, $product ): string { $emoji = match ( $rule['rule_type'] ?? '' ) { 'bulk' => '📦 ', 'bundle' => '🎁 ', 'free_gift' => '🎀 ', 'buy_x_get_x' => '🔥 ', default => '💰 ', };
return $emoji . $label;}add_filter( 'wpify_woo_discounts_info_block_item_label', 'add_emoji_to_label', 10, 3 );Úprava obsahu info bloku
Section titled “Úprava obsahu info bloku”Filtr umožňuje upravit obsah info bloku (zprávu a countdown) na produktové stránce.
apply_filters( 'wpify_woo_discounts_info_block_item_content', $content, $rule, $product );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$content | string | HTML obsah (message + countdown) |
$rule | array | Pole s nastavením pravidla |
$product | WC_Product | Aktuální produkt |
Příklady použití
Section titled “Příklady použití”Přidání vlastního textu
Section titled “Přidání vlastního textu”/** * Přidat informaci o dopravě zdarma k info bloku * * @param string $content HTML obsah * @param array $rule Pravidlo * @param WC_Product $product Produkt * * @return string */function add_free_shipping_info( $content, $rule, $product ): string { $content .= '<p class="free-shipping-note">+ doprava zdarma při objednávce nad 1000 Kč</p>'; return $content;}add_filter( 'wpify_woo_discounts_info_block_item_content', 'add_free_shipping_info', 10, 3 );Podmíněný obsah podle typu pravidla
Section titled “Podmíněný obsah podle typu pravidla”/** * Přidat badge podle typu slevy * * @param string $content HTML obsah * @param array $rule Pravidlo * @param WC_Product $product Produkt * * @return string */function add_discount_badge( $content, $rule, $product ): string { $badge = '';
switch ( $rule['rule_type'] ?? '' ) { case 'bulk': $badge = '<span class="discount-badge bulk">Množstevní sleva</span>'; break; case 'bundle': $badge = '<span class="discount-badge bundle">Balíčková sleva</span>'; break; case 'buy_x_get_x': case 'buy_x_get_y': $badge = '<span class="discount-badge bogo">BOGO akce</span>'; break; }
return $badge . $content;}add_filter( 'wpify_woo_discounts_info_block_item_content', 'add_discount_badge', 10, 3 );Úprava pricing tabulky
Section titled “Úprava pricing tabulky”Filtr umožňuje upravit HTML výstup cenové tabulky (pro bulk/bundle slevy).
apply_filters( 'wpify_woo_discounts_info_block_item_pricing', $html, $rule, $product );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$html | string | HTML cenové tabulky |
$rule | array | Nastavení pravidla (od v1.0.2 obsahuje pouze validní subrules) |
$product | WC_Product | Aktuální produkt |
Příklady použití
Section titled “Příklady použití”Přidání hlavičky tabulky
Section titled “Přidání hlavičky tabulky”/** * Přidat vlastní hlavičku nad pricing tabulku * * @param string $html HTML tabulky * @param array $rule Pravidlo * @param WC_Product $product Produkt * * @return string */function add_pricing_table_header( $html, $rule, $product ): string { $header = '<h4 class="pricing-table-title">Čím více kupujete, tím více šetříte!</h4>'; return $header . $html;}add_filter( 'wpify_woo_discounts_info_block_item_pricing', 'add_pricing_table_header', 10, 3 );Skrytí tabulky pro určité produkty
Section titled “Skrytí tabulky pro určité produkty”/** * Skrýt pricing tabulku pro produkty v kategorii "výprodej" * * @param string $html HTML tabulky * @param array $rule Pravidlo * @param WC_Product $product Produkt * * @return string */function hide_pricing_for_clearance( $html, $rule, $product ): string { if ( has_term( 'vyprodej', 'product_cat', $product->get_id() ) ) { return ''; // Skrýt tabulku } return $html;}add_filter( 'wpify_woo_discounts_info_block_item_pricing', 'hide_pricing_for_clearance', 10, 3 );Úprava celého info bloku
Section titled “Úprava celého info bloku”Filtr umožňuje upravit kompletní argumenty pro šablonu info bloku.
apply_filters( 'wpify_woo_discounts_info_block_args', $args, $product );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$args | array | Argumenty pro šablonu |
$product | WC_Product | Aktuální produkt |
Struktura $args
Section titled “Struktura $args”$args = array( 'items' => array( array( 'label' => '...', // Text labelu (název pravidla) 'content' => '...', // HTML obsah (message + countdown) 'pricing' => '...', // HTML pricing tabulky 'rule' => array(), // Data pravidla ), // další položky... ), 'classes' => array( 'block' => array( 'wpify-woo-discount-info-block' ), 'item' => array( 'wpify-woo-discount-info-block__item' ), 'label' => array( 'wpify-woo-discount-info-block__label' ), 'content' => array( 'wpify-woo-discount-info-block__content' ), 'pricing' => array( 'wpify-woo-discount-info-block__pricing' ), ), 'product' => WC_Product,);Příklady použití
Section titled “Příklady použití”Přidání vlastní CSS třídy
Section titled “Přidání vlastní CSS třídy”/** * Přidat vlastní CSS třídu k info bloku * * @param array $args Argumenty šablony * @param WC_Product $product Produkt * * @return array */function add_custom_class_to_info_block( $args, $product ): array { $args['classes']['block'][] = 'my-custom-discount-block';
// Přidat třídu podle kategorie produktu if ( has_term( 'premium', 'product_cat', $product->get_id() ) ) { $args['classes']['block'][] = 'premium-product-discount'; }
return $args;}add_filter( 'wpify_woo_discounts_info_block_args', 'add_custom_class_to_info_block', 10, 2 );Seřazení položek podle priority
Section titled “Seřazení položek podle priority”/** * Seřadit položky info bloku podle priority pravidel * * @param array $args Argumenty šablony * @param WC_Product $product Produkt * * @return array */function sort_info_block_items( $args, $product ): array { usort( $args['items'], function( $a, $b ) { $priority_a = $a['rule']['priority'] ?? 10; $priority_b = $b['rule']['priority'] ?? 10; return $priority_a - $priority_b; } );
return $args;}add_filter( 'wpify_woo_discounts_info_block_args', 'sort_info_block_items', 10, 2 );Omezení počtu zobrazených slev
Section titled “Omezení počtu zobrazených slev”/** * Zobrazit maximálně 2 slevy na produktové stránce * * @param array $args Argumenty šablony * @param WC_Product $product Produkt * * @return array */function limit_displayed_discounts( $args, $product ): array { if ( count( $args['items'] ) > 2 ) { $args['items'] = array_slice( $args['items'], 0, 2 ); } return $args;}add_filter( 'wpify_woo_discounts_info_block_args', 'limit_displayed_discounts', 10, 2 );Breaking change v1.0.1
Section titled “Breaking change v1.0.1”Parametr $rule v UI filtrech je nyní pole s nastavením pravidla (rule settings array), dříve byl subrule array. Pokud používáte tyto filtry, ověřte kompatibilitu.
Product Badge hooky
Section titled “Product Badge hooky”Filtry pro úpravu štítků (badges) na produktech.
Úprava seznamu badges
Section titled “Úprava seznamu badges”Filtr umožňuje upravit seznam štítků pro produkt.
apply_filters( 'wpify_woo_discounts_product_badges', $badges, $product );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$badges | array | Pole badges pro produkt |
$product | WC_Product | Aktuální produkt |
Příklad: Přidání vlastního badge
Section titled “Příklad: Přidání vlastního badge”/** * Přidat badge "Bestseller" pro produkty s vysokým prodejem * * @param array $badges Pole badges * @param WC_Product $product Produkt * * @return array */function add_bestseller_badge( $badges, $product ): array { $total_sales = $product->get_total_sales();
if ( $total_sales > 100 ) { $badges[] = array( 'type' => 'custom', 'label' => 'Bestseller', 'class' => 'bestseller-badge', ); }
return $badges;}add_filter( 'wpify_woo_discounts_product_badges', 'add_bestseller_badge', 10, 2 );Úprava HTML badges
Section titled “Úprava HTML badges”Filtr umožňuje upravit výsledné HTML štítků.
apply_filters( 'wpify_woo_discounts_product_badges_html', $html, $badges, $product );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$html | string | HTML výstup badges |
$badges | array | Pole badges |
$product | WC_Product | Aktuální produkt |
Úprava textu badge
Section titled “Úprava textu badge”Filtr umožňuje upravit text štítku včetně placeholderů.
apply_filters( 'wpify_woo_discounts_badge_text', $result, $replacements, $label, $data );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$result | string | Výsledný text po nahrazení |
$replacements | array | Pole nahrazení ({discount}, {price}, atd.) |
$label | string | Původní label šablona |
$data | array | Data pro badge |
Příklad: Vlastní placeholder
Section titled “Příklad: Vlastní placeholder”/** * Přidat vlastní placeholder {stock} pro počet skladem * * @param string $result Výsledný text * @param array $replacements Pole nahrazení * @param string $label Šablona * @param array $data Data * * @return string */function add_stock_placeholder( $result, $replacements, $label, $data ): string { if ( isset( $data['product'] ) && strpos( $label, '{stock}' ) !== false ) { $stock = $data['product']->get_stock_quantity() ?? 0; $result = str_replace( '{stock}', $stock, $result ); } return $result;}add_filter( 'wpify_woo_discounts_badge_text', 'add_stock_placeholder', 10, 4 );Přeskočení injektáže badges
Section titled “Přeskočení injektáže badges”Filtr umožňuje zakázat automatické vkládání badges.
apply_filters( 'wpify_woo_discounts_skip_badge_injection', $skip );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$skip | bool | Výchozí false, vrátit true pro přeskočení |
Příklad: Zakázat na specifické stránce
Section titled “Příklad: Zakázat na specifické stránce”/** * Zakázat badges na stránce "výprodej" * * @param bool $skip Přeskočit injektáž * * @return bool */function skip_badges_on_clearance( $skip ): bool { if ( is_page( 'vyprodej' ) ) { return true; } return $skip;}add_filter( 'wpify_woo_discounts_skip_badge_injection', 'skip_badges_on_clearance' );Úprava CSS badges
Section titled “Úprava CSS badges”Filtr umožňuje upravit generované CSS pro badges.
apply_filters( 'wpify_woo_discounts_badge_css', $css );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$css | string | CSS string |
Detekce nového produktu
Section titled “Detekce nového produktu”Filtr umožňuje upravit logiku určení “nového” produktu.
apply_filters( 'wpify_woo_discounts_is_product_new', $is_new, $product, $days );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$is_new | bool | Zda je produkt nový (výchozí: publikován před $days dny) |
$product | WC_Product | Produkt |
$days | int | Počet dní pro “nový” |
Selektory galerie pro single product
Section titled “Selektory galerie pro single product”Filtr umožňuje přidat vlastní CSS selektory pro detekci produktové galerie na stránce produktu.
apply_filters( 'wpify_woo_discounts_badge_gallery_selectors', $selectors );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$selectors | array | Pole CSS selektorů |
Příklad: Přidání selektoru pro vlastní téma
Section titled “Příklad: Přidání selektoru pro vlastní téma”/** * Přidat selektor pro vlastní téma * * @param array $selectors CSS selektory * * @return array */function add_my_theme_gallery_selector( $selectors ): array { $selectors[] = '.my-theme-product-gallery'; return $selectors;}add_filter( 'wpify_woo_discounts_badge_gallery_selectors', 'add_my_theme_gallery_selector' );Inicializace modulu Product Badge
Section titled “Inicializace modulu Product Badge”Action se spustí při inicializaci modulu Product Badge.
do_action( 'wpify_woo_discounts_product_badge_init', $module );Parametry
Section titled “Parametry”| Parametr | Typ | Popis |
|---|---|---|
$module | ProductBadgeModule | Instance modulu |
Countdown badge integrace
Section titled “Countdown badge integrace”Filtr umožňuje přidat countdown badge z modulu Countdown nebo vlastního řešení.
apply_filters( 'wpify_woo_discounts_countdown_badge', $badge, $product );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$badge | array|null | Data badge (null = nezobrazovat) |
$product | WC_Product | Aktuální produkt |
Struktura badge
Section titled “Struktura badge”$badge = array( 'type' => 'countdown', // Typ badge pro CSS třídu 'text' => '2:30:45', // Text zobrazený na badge);Příklad: Vlastní countdown badge
Section titled “Příklad: Vlastní countdown badge”/** * Přidat countdown badge pro produkty s omezenou nabídkou * * @param array|null $badge Existující badge * @param WC_Product $product Produkt * * @return array|null */function add_custom_countdown_badge( $badge, $product ): ?array { $end_date = get_post_meta( $product->get_id(), '_sale_end_date', true );
if ( ! $end_date ) { return $badge; }
$remaining = strtotime( $end_date ) - time(); if ( $remaining <= 0 ) { return $badge; }
$hours = floor( $remaining / 3600 ); $minutes = floor( ( $remaining % 3600 ) / 60 );
return array( 'type' => 'countdown', 'text' => sprintf( '%d:%02d', $hours, $minutes ), );}add_filter( 'wpify_woo_discounts_countdown_badge', 'add_custom_countdown_badge', 10, 2 );Manual Select hooky
Section titled “Manual Select hooky”Filtry pro úpravu výběrového bloku (dárek zdarma, BOGO).
Pozice zobrazení výběru
Section titled “Pozice zobrazení výběru”Filtr umožňuje upravit pozice, kde se zobrazí výběrový blok.
apply_filters( 'wpify_woo_discounts_selection_hooks', $hooks_map );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$hooks_map | array | Mapa pozic a WooCommerce hooků |
Příklad: Přidání vlastní pozice
Section titled “Příklad: Přidání vlastní pozice”/** * Přidat vlastní pozici pro výběrový blok * * @param array $hooks_map Mapa hooků * * @return array */function add_custom_selection_position( $hooks_map ): array { $hooks_map['my_custom_position'] = array( 'hook' => 'my_theme_after_cart', 'priority' => 10, ); return $hooks_map;}add_filter( 'wpify_woo_discounts_selection_hooks', 'add_custom_selection_position' );Úprava dat výběrového bloku
Section titled “Úprava dat výběrového bloku”Filtr umožňuje upravit data pro šablonu výběrového bloku.
apply_filters( 'wpify_woo_discounts_selection_html_data', $data );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$data | array | Data pro šablonu (CSS třídy, texty) |
Úprava dat položky výběru
Section titled “Úprava dat položky výběru”Filtr umožňuje upravit data jednotlivé položky ve výběru.
apply_filters( 'wpify_woo_discounts_selection_html_item_data', $item_data, $product, $settings, $hidden_elements );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$item_data | array | Data položky (obrázek, název, atd.) |
$product | WC_Product | Produkt |
$settings | array | Nastavení Manual Select skupiny |
$hidden_elements | array | Seznam skrytých elementů |
Úprava ceny položky výběru
Section titled “Úprava ceny položky výběru”Filtr umožňuje upravit zobrazení ceny ve výběrovém bloku.
apply_filters( 'wpify_woo_discounts_selection_html_item_price_data', $price_data, $product, $rule );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$price_data | array | Data ceny (původní, sleva, výsledná) |
$product | WC_Product | Produkt |
$rule | array | Data pravidla |
Upsell Bar hooky
Section titled “Upsell Bar hooky”Filtry pro úpravu progress baru (upsell lišty).
Úprava dat upsell baru
Section titled “Úprava dat upsell baru”Filtr umožňuje upravit data pro konkrétní upsell bar.
apply_filters( 'wpify_woo_discounts_upsell_bar_data', $data, $bar, $index );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$data | array | Data pro bar (progress, zprávy, cíl) |
$bar | array | Nastavení baru |
$index | int | Index baru |
Příklad: Vlastní zpráva podle progressu
Section titled “Příklad: Vlastní zpráva podle progressu”/** * Upravit zprávu podle aktuálního progressu * * @param array $data Data baru * @param array $bar Nastavení * @param int $index Index * * @return array */function custom_upsell_message( $data, $bar, $index ): array { $progress = $data['progress'] ?? 0;
if ( $progress >= 75 ) { $data['message'] = 'Už jen kousek! ' . $data['message']; }
return $data;}add_filter( 'wpify_woo_discounts_upsell_bar_data', 'custom_upsell_message', 10, 3 );Úprava CSS tříd upsell baru
Section titled “Úprava CSS tříd upsell baru”Filtr umožňuje upravit CSS třídy wrapperu upsell baru.
apply_filters( 'wpify_woo_discounts_upsell_bar_wrapper_classes', $classes, $bar, $index );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$classes | array | Pole CSS tříd |
$bar | array | Nastavení baru |
$index | int | Index baru |
Action hooky
Section titled “Action hooky”Kromě filtrů jsou k dispozici také action hooky pro přidání vlastního obsahu.
Renderování výběrových bloků
Section titled “Renderování výběrových bloků”Action se spustí při vykreslování výběrových bloků v košíku.
do_action( 'wpify_woo_discounts_render_selections' );Příklad použití
Section titled “Příklad použití”/** * Přidat vlastní obsah před výběrové bloky */function add_content_before_selections(): void { echo '<div class="my-custom-selection-header">'; echo '<h3>Vyberte si svůj dárek</h3>'; echo '</div>';}add_action( 'wpify_woo_discounts_render_selections', 'add_content_before_selections', 5 );Renderování položky výběru
Section titled “Renderování položky výběru”Action se spustí při vykreslování jednotlivé položky ve výběrovém bloku.
do_action( 'wpify_woo_discounts_selection_html_item', $product, $rule );Parametry
Section titled “Parametry”| Parametr | Typ | Popis |
|---|---|---|
$product | WC_Product | Produkt |
$rule | array | Nastavení pravidla |
Příklad použití
Section titled “Příklad použití”/** * Přidat informaci o skladové dostupnosti k položce * * @param WC_Product $product Produkt * @param array $rule Pravidlo */function add_stock_info_to_selection_item( $product, $rule ): void { $stock = $product->get_stock_quantity(); if ( $stock !== null && $stock < 5 ) { echo '<span class="low-stock-warning">Pouze ' . $stock . ' ks skladem!</span>'; }}add_action( 'wpify_woo_discounts_selection_html_item', 'add_stock_info_to_selection_item', 10, 2 );Info block hooky v šabloně
Section titled “Info block hooky v šabloně”V šabloně info bloku jsou k dispozici action hooky pro přidání vlastního obsahu.
do_action( 'wpify_woo_discounts_info_block_html_before' );do_action( 'wpify_woo_discounts_info_block_html_after' );do_action( 'wpify_woo_discounts_info_block_html_item_before', $item, $product );do_action( 'wpify_woo_discounts_info_block_html_item_after', $item, $product );Parametry (pro item hooky)
Section titled “Parametry (pro item hooky)”| Parametr | Typ | Popis |
|---|---|---|
$item | array | Data položky (content, pricing, rule) |
$product | WC_Product | Aktuální produkt |
Příklad použití
Section titled “Příklad použití”/** * Přidat CTA tlačítko za info blok */function add_cta_after_info_block(): void { echo '<a href="/akce" class="discount-cta-button">Zobrazit všechny akce</a>';}add_action( 'wpify_woo_discounts_info_block_html_after', 'add_cta_after_info_block' );
/** * Přidat ikonu před každou položku info bloku * * @param array $item Data položky * @param WC_Product $product Produkt */function add_icon_before_info_item( $item, $product ): void { $rule_type = $item['rule']['rule_type'] ?? ''; $icon = match( $rule_type ) { 'bulk' => '📦', 'bundle' => '🎁', default => '💰', }; echo '<span class="discount-icon">' . $icon . '</span>';}add_action( 'wpify_woo_discounts_info_block_html_item_before', 'add_icon_before_info_item', 10, 2 );Savings Summary hooky
Section titled “Savings Summary hooky”V šabloně Savings Summary jsou k dispozici action hooky pro přidání vlastního obsahu.
do_action( 'wpify_woo_discounts_savings_summary_start', $tracking, $total_saved );do_action( 'wpify_woo_discounts_savings_summary_end', $tracking, $total_saved );Parametry
Section titled “Parametry”| Parametr | Typ | Popis |
|---|---|---|
$tracking | array | Data o sledovaných slevách |
$total_saved | float | Celková ušetřená částka |
Příklad použití
Section titled “Příklad použití”/** * Přidat motivační zprávu před souhrn úspor * * @param array $tracking Data sledování * @param float $total_saved Ušetřená částka */function add_savings_motivation( $tracking, $total_saved ): void { if ( $total_saved > 500 ) { echo '<p class="savings-motivation">🎉 Skvělý nákup! Ušetřili jste více než 500 Kč!</p>'; }}add_action( 'wpify_woo_discounts_savings_summary_start', 'add_savings_motivation', 10, 2 );
/** * Přidat odkaz na další akce za souhrn úspor * * @param array $tracking Data sledování * @param float $total_saved Ušetřená částka */function add_more_deals_link( $tracking, $total_saved ): void { echo '<a href="/akce" class="more-deals-link">Zobrazit další akce →</a>';}add_action( 'wpify_woo_discounts_savings_summary_end', 'add_more_deals_link', 10, 2 );Kde umístit kód
Section titled “Kde umístit kód”Vlastní funkci můžete vložit buď do tzv. child šablony (functions.php) nebo pomocí pluginu Code Snippets.