Pro vývojáře
Shortcode
Section titled “Shortcode”[wpify_woo_lowest_price]
Section titled “[wpify_woo_lowest_price]”Zobrazí nejnižší cenu produktu za posledních 30 dní.
Použití:
// V šabloně produktuecho do_shortcode( '[wpify_woo_lowest_price]' );Výstup:
Formátovaná cena pomocí wc_price().
Programové získání nejnižší ceny
Section titled “Programové získání nejnižší ceny”// Získání instance modulu$prices_log = wpify_woo_container()->get( \WpifyWoo\Modules\PricesLog\PricesLogModule::class);
// Získání nejnižší ceny$lowest_price = $prices_log->get_lowest_price( $product_id );Struktura dat
Section titled “Struktura dat”Databázová tabulka
Section titled “Databázová tabulka”Modul ukládá historii cen do vlastní tabulky:
| Sloupec | Typ | Popis |
|---|---|---|
id | INT | Primární klíč |
product_id | INT | ID produktu |
regular_price | VARCHAR | Běžná cena (uložena jako text) |
sale_price | VARCHAR | Slevová cena (uložena jako text) |
created_at | VARCHAR | Datum záznamu (formát Y-m-d H:i:s) |
Repository
Section titled “Repository”// Získání repository$repository = wpify_woo_container()->get( \WpifyWoo\Modules\PricesLog\PricesLogRepository::class);
// Všechny záznamy produktu$logs = $repository->find_by_product_id( $product_id );
// Poslední záznam$last = $repository->get_last_by_product_id( $product_id );
// Nejnižší cena za 30 dní$lowest = $repository->find_lowest_price( $product_id );Integrace s modulem Ceny
Section titled “Integrace s modulem Ceny”Modul Historie cen poskytuje data pro modul Ceny (typ ceny “Lowest price in 30 days”):
// V modulu Ceny se volá:$module = wpify_woo_container()->get( \WpifyWoo\Modules\PricesLog\PricesLogModule::class);$price['value'] = $module->get_lowest_price( get_the_ID() );Příklad: Vlastní zobrazení nejnižší ceny
Section titled “Příklad: Vlastní zobrazení nejnižší ceny”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 && $lowest < $product->get_regular_price() ) { printf( '<div class="omnibus-price">%s: %s</div>', esc_html__( 'Nejnižší cena za 30 dní', 'my-theme' ), wc_price( $lowest ) ); }}, 15 );Příklad: Export historie cen
Section titled “Příklad: Export historie cen”function export_price_history( $product_id ) { $repository = wpify_woo_container()->get( \WpifyWoo\Modules\PricesLog\PricesLogRepository::class );
$logs = $repository->find_by_product_id( $product_id );
$data = []; foreach ( $logs as $log ) { $data[] = [ 'date' => $log->created_at, 'regular_price' => $log->regular_price, 'sale_price' => $log->sale_price, ]; }
return $data;}