Pro vývojáře
Dostupné filtry
Section titled “Dostupné filtry”wpify_woo_prices_data
Section titled “wpify_woo_prices_data”Umožňuje upravit data vlastní ceny před zobrazením.
Parametry:
$price(array) - Data ceny obsahujícílabel,value,type,suffix, atd.
Příklad:
add_filter( 'wpify_woo_prices_data', function( $price ) { // Přidat suffix ke všem cenám $price['suffix'] .= ' vč. DPH';
return $price;} );wpify_woo_prices_should_display_price
Section titled “wpify_woo_prices_should_display_price”Kontroluje, zda se má vlastní cena zobrazit.
Parametry:
$display(bool) - Zda zobrazit cenu$custom_price(array) - Nastavení vlastní ceny$product(WC_Product) - Produkt
Příklad:
add_filter( 'wpify_woo_prices_should_display_price', function( $display, $custom_price, $product ) { // Nezobrazovat vlastní ceny pro virtuální produkty if ( $product->is_virtual() ) { return false; }
return $display;}, 10, 3 );wcml_raw_price_amount
Section titled “wcml_raw_price_amount”Filtr pro podporu WPML multi-currency. Modul automaticky aplikuje tento filtr pro správnou konverzi měn.
Příklad:
add_filter( 'wcml_raw_price_amount', function( $price ) { // Vlastní konverze měny return $price * get_exchange_rate();} );Filtr pro úpravu ceny HTML
Section titled “Filtr pro úpravu ceny HTML”woocommerce_get_price_html
Section titled “woocommerce_get_price_html”Modul používá tento WooCommerce filtr s prioritou 999.
Příklad přidání vlastního obsahu:
add_filter( 'woocommerce_get_price_html', function( $price, $product ) { if ( ! is_product() ) { return $price; }
// Přidat badge ke zlevněným produktům if ( $product->is_on_sale() ) { $price = '<span class="sale-badge">SLEVA</span>' . $price; }
return $price;}, 1000, 2 );Vlastní hook pro zobrazení
Section titled “Vlastní hook pro zobrazení”V nastavení modulu můžete zadat vlastní WordPress hook pro zobrazení bloku vlastních cen:
// Příklad: zobrazení pod krátkým popisemadd_action( 'woocommerce_single_product_summary', function() { do_action( 'my_custom_prices_location' );}, 25 );V nastavení modulu pak zadáte: my_custom_prices_location
CSS třídy
Section titled “CSS třídy”| Třída | Popis |
|---|---|
.wpify-woo-prices | Wrapper blok vlastních cen |
.wpify-woo-prices__price | Jednotlivá vlastní cena |
.wpify-woo-prices__price-info | Ikona info (otazník) |
.wpify-woo-prices__price-info__text | Text tooltip |
.wpify-woo-prices__regular-price-label | Popisek běžné ceny |
.wpify-woo-prices__badge | Badge štítek pro produkty bez slevy |
Meta data produktu
Section titled “Meta data produktu”_custom_prices
Section titled “_custom_prices”Vlastní ceny se ukládají do post meta produktu.
// Získání hodnot vlastních cen$custom_prices = get_post_meta( $product_id, '_custom_prices', true );
// Struktura:// [// 'uuid-1234' => 150.00, // Pro typ 'custom'// 'uuid-5678' => [ // Pro typ 'by_unit'// 'unit' => 'kg',// 'quantity' => 0.5// ]// ]Integrace s modulem Historie cen
Section titled “Integrace s modulem Historie cen”Pro získání nejnižší ceny programově:
$prices_log_module = wpify_woo_container()->get( \WpifyWoo\Modules\PricesLog\PricesLogModule::class);$lowest_price = $prices_log_module->get_lowest_price( $product_id );Příklad: Vlastní cenový blok
Section titled “Příklad: Vlastní cenový blok”add_action( 'woocommerce_single_product_summary', function() { global $product;
if ( ! $product->is_on_sale() ) { return; }
$prices_log = wpify_woo_container()->get( \WpifyWoo\Modules\PricesLog\PricesLogModule::class ); $lowest = $prices_log->get_lowest_price( $product->get_id() );
if ( $lowest ) { printf( '<div class="omnibus-notice">%s: %s</div>', __( 'Nejnižší cena za 30 dní', 'my-theme' ), wc_price( $lowest ) ); }}, 15 );