Přeskočit na obsah

Pro vývojáře

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;
} );

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 );

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();
} );

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 );

V nastavení modulu můžete zadat vlastní WordPress hook pro zobrazení bloku vlastních cen:

// Příklad: zobrazení pod krátkým popisem
add_action( 'woocommerce_single_product_summary', function() {
do_action( 'my_custom_prices_location' );
}, 25 );

V nastavení modulu pak zadáte: my_custom_prices_location

TřídaPopis
.wpify-woo-pricesWrapper blok vlastních cen
.wpify-woo-prices__priceJednotlivá vlastní cena
.wpify-woo-prices__price-infoIkona info (otazník)
.wpify-woo-prices__price-info__textText tooltip
.wpify-woo-prices__regular-price-labelPopisek běžné ceny
.wpify-woo-prices__badgeBadge štítek pro produkty bez slevy

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
// ]
// ]

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 );
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 );