Přeskočit na obsah

Řešení potíží

  1. Přejděte do WPify → WPify Woo
  2. Ověřte, že je modul Historie cen zapnutý
  3. Uložte změny

Modul zaznamenává pouze změny cen. Pokud je cena stejná jako při posledním záznamu, nový záznam se nevytvoří.

Kontrola:

// Poslední záznam má stejnou cenu jako aktuální
$last = $repository->get_last_by_product_id( $product_id );
if (
$last->regular_price === $product->get_regular_price()
&& $last->sale_price === $product->get_sale_price()
) {
// Nový záznam se nevytvoří
}

Historie se zaznamenává při uložení produktu. Pokud změníte cenu přímo v databázi nebo přes API bez triggeru woocommerce_update_product, záznam se nevytvoří.

Modul začne zaznamenávat ceny až po aktivaci. Data před aktivací neexistují.

Řešení:

  • Pro existující produkty upravte a uložte cenu, aby se vytvořil první záznam
  • Nebo počkejte na přirozenou změnu ceny

Pokud produkt nemá žádné historické záznamy za posledních 30 dní, zobrazí se aktuální cena produktu.

$price = $repository->find_lowest_price( $id ) ?: 0;
if ( ! $price ) {
// Fallback na aktuální cenu
$price = wc_get_product( $id )->get_price();
}

Nový produkt ještě nemá žádné záznamy. Záznamy se vytvoří až po první změně ceny.

U variabilního produktu se záznamy ukládají pro každou variaci zvlášť. Záložka zobrazuje tabulky pro každou variaci.

Při aktivaci modulu se automaticky vytvoří databázová tabulka. Pokud tabulka chybí:

  1. Deaktivujte modul
  2. Znovu aktivujte modul
  3. Zkontrolujte, zda má WordPress práva pro vytvoření tabulky

Zkontrolujte error log WordPress:

wp-content/debug.log
// V administraci produktu nebo debug pluginu
$repository = wpify_woo_container()->get(
\WpifyWoo\Modules\PricesLog\PricesLogRepository::class
);
$logs = $repository->find_by_product_id( $product_id );
echo '<pre>';
print_r( $logs );
echo '</pre>';
$prices_log = wpify_woo_container()->get(
\WpifyWoo\Modules\PricesLog\PricesLogModule::class
);
$lowest = $prices_log->get_lowest_price( $product_id );
echo 'Nejnižší cena: ' . wc_price( $lowest );

Pro produkty s častými změnami cen může tabulka narůst. Modul nezahrnuje automatické čištění starých záznamů.

Ruční čištění (volitelné):

-- Smazání záznamů starších než 90 dní
DELETE FROM wp_wpify_woo_prices_log
WHERE created_at < DATE_SUB(NOW(), INTERVAL 90 DAY);