Lowest price in the last 30 days on WooCommerce

Every advertised discount must show the lowest price from the thirty days before it. WooCommerce keeps no such history, so something has to keep it instead.

The full video has Croatian audio and English subtitles.Watch on YouTube (Croatian subtitles)

The 1 October 2026 start has been postponed, and permanent rules are expected in November. The minister says the aim has not been dropped. Setup takes five minutes, price history is recorded from day one, and updates for the new rules come through WordPress at no extra cost.

Watch the video
20,00 € + VAT (€25,00 incl. VAT). Pay once, no subscription. Card via Stripe, with an invoice. ZIP and key right away, updates through WordPress, support by e-mail. If it does not display correctly on your theme, we set it up free or refund you. The plugin is in Croatian and English, following your WordPress admin language.Price on 21.9.2026.: 20,00 € + VATRather not do it yourself? We set it up: €40,00 + VAT in total.

What has to be shown

When a discount is advertised, the lowest price the item was sold for in the 30 days before that discount must appear next to the new price. The rule comes from EU Omnibus Directive 2019/2161 and is transposed into Croatian consumer law.

The number is not the regular price and not the all-time low. It is the lowest price in the thirty-day window preceding the discount.

Why WooCommerce cannot do it alone

WooCommerce stores only the current state. A product has _regular_price and _sale_price, and when you change them the previous value is simply gone.

So a plugin that hands you a finished number on day one is either reading _regular_price, which in ERP-fed stores is the manufacturer's MSRP, or writing today's price as if it had also been yesterday's.

How this plugin computes it

Once a day, at an hour you choose, it walks the catalogue and records the price the buyer actually sees: the result of wc_get_price_to_display(), including tax and after every filter other pricing plugins apply.

  • Within one day the lowest price seen is kept, so a discount that started at ten in the morning does not erase the higher price that stood before it.
  • The window is rolling: every recorded day no older than thirty days, and the minimum among them.
  • Below two distinct recorded days nothing is claimed.
  • History is kept for a hundred days, so widening the window leaves no gap.
  • Variations are computed individually; a variable parent takes the lowest among its variations, and only when every one of them has a value.

What shows while there is no history

Nothing. A blank next to the price does less damage than a number you cannot back up.

Instead, the admin lists products advertised with a discount but without cover, and the same count appears as a dashboard warning.

Importing history from an ERP

History cannot be invented, but it very often already exists somewhere. Import takes one row per product and day, and days the plugin recorded itself are never overwritten.

The whole recorded history exports back to CSV in one click, as the document you hand over when proof is requested.

SKU;YYYY-MM-DD;PRICE
0100071;2026-09-10;25.00
0100071;2026-09-11;24.50

Where it prints in the store

It inserts itself under the product price on both classic and block themes, with no code. Only for custom themes that still show nothing are there three outputs that work anywhere.

The wording is a setting, and the klikoteka_cijene_redovi filter gives the theme the final say.

[klikoteka_cijene]

<?php do_action( 'klikoteka_cijene', $product ); ?>

<?php echo klikoteka_cijene_html( $product ); ?>
Cosmetics / Hair care
Shampoo for dry hair, 400 ml
27,90 €25,00 €

Price on 2.5.2025.: €29.90

Lowest price in the last 30 days: €24.50

Add to cart
Store footer: Price list (XML, CSV)
Example product page. Amounts are made up; the labels are the plugin's default text.

This is what your buyer sees under the price

This page explains one obligation. The plugin handles all three at once, including what the Ministry clarified on 18 September 2026.

  1. Price on 2.5.2025.

    Shampoo is cosmetics, so the earlier reference day applies. The plugin knows this by category.

  2. Lowest price in the last 30 days

    From daily snapshots of the price the buyer actually saw. Without enough snapshots it prints nothing.

  3. Price list

    The same data for the whole catalogue, every night in XML and CSV, at a permanent address.

From purchase to the first anchor price

  1. Buy

    By card through Stripe, with an invoice on your VAT id.

  2. Download the ZIP and key

    Right on the page and by e-mail.

  3. Install

    Open Plugins, Add new, Upload plugin, then Activate. Do not unzip the file.

  4. Go through the wizard

    It opens by itself after activation: key, label language, reference dates, anchor and lowest prices, a display check and the price list. Recording starts at once; updates arrive through WordPress.

If the download or install gets stuck, write to info@klikoteka.hr. We reply the same business day and sort it out with you.

The full video has Croatian audio and English subtitles.Watch on YouTube (Croatian subtitles)

€20 + VAT, paid once

Sidrena cijena i cjenik za WooCommerce
20,00 €+ VAT, once

€25,00 incl. VAT.Price on 21.9.2026.: 20,00 € + VAT

  • All three obligations, no tiers or add-ons
  • One store and its staging copy (3 addresses)
  • Updates through WordPress, no renewal
  • In Croatian and English: the plugin shows in the language your WordPress admin is set to
  • E-mail support in Croatian or English
  • Invoice with your VAT id

If we build your webshop, the plugin is included at no charge.

Version 1.8.6, WordPress 6.3+, PHP 7.4+.

The same job, three ways

History for the lowest price
Plugin: Recorded daily, automatically
By hand, in Excel: Someone logs it every day
Custom build: Has to be programmed
Two reference days
Plugin: Category rule
By hand, in Excel: Product by product
Custom build: Per specification
XML and CSV price list
Plugin: Publishes itself nightly
By hand, in Excel: Export and upload daily before 8:00
Custom build: Per specification
Regulatory clarifications
Plugin: The 18 Sep 2026 one shipped as update 1.3
By hand, in Excel: Track them yourself
Custom build: Changes by agreement
Cost
Plugin: €20 + VAT, once
By hand, in Excel: Your time, every day
Custom build: Quoted per scope

Rather not do it yourself? We will set it up.

For €40,00 + VAT you get the plugin and one of our people to set it up on your site. Within one business day of purchase we e-mail you and ask for administrator access to your WordPress, ideally a temporary admin user you delete once we are done. Then we:

  1. install and activate the plugin and enter your licence
  2. sort categories by reference day (2 May 2025 or 10 Sep 2026)
  3. switch on the XML and CSV price list and add a link to it
  4. check the display on product pages and product cards in your theme
  5. tell you what was done; you then delete the access

Something special, like a custom theme, an ERP without a price export or several shops? Write to info@klikoteka.hr and we will send an estimate and a quote for your system.

On Shopify? The Shopify version is finished and awaiting App Store approval. It will be available in the coming business days.

Plugin + setup
40,00 €+ VAT, once

€50,00 incl. VAT.Price on 24.9.2026.: 40,00 € + VAT

You get the key and ZIP right away, same as without setup. At checkout you enter your site address and phone.

Before you buy

  • Can the lowest price be computed thirty days back, starting today?

    No. WooCommerce keeps no history of displayed prices. The only honest way is to import it from a system that did keep it.

  • Is the price recorded with or without tax?

    What the buyer sees on the product page, following your store's tax display settings.

  • What if I change prices several times a day?

    One value per day is stored, and it is the lowest the plugin saw. Snapshots can also be triggered manually.

  • Does the daily snapshot slow the store down?

    Processing runs in batches with a cursor, so a catalogue of several thousand items is handled in short passes rather than one long one.

  • Does it work with WPML?

    Yes. History is tied to the product id, so each translation carries its own.

More time, and setup still takes five minutes

The 1 October 2026 start has been postponed, and permanent rules are expected in November.

Once, no subscription. Download right after payment.

Need theme integration or an ERP history import? Get in touch.