Title: MJDD Sidrena Cijena
Author: Jure Zadravec
Published: <strong>September 20, 2026</strong>
Last modified: September 21, 2026

---

Search plugins

![](https://ps.w.org/mjdd-sidrena-cijena/assets/banner-772x250.jpg?rev=3704026)

![](https://ps.w.org/mjdd-sidrena-cijena/assets/icon.svg?rev=3704026)

# MJDD Sidrena Cijena

 By [Jure Zadravec](https://profiles.wordpress.org/juremjdd/)

[Download](https://downloads.wordpress.org/plugin/mjdd-sidrena-cijena.1.13.0.zip)

 * [Details](https://wordpress.org/plugins/mjdd-sidrena-cijena/#description)
 * [Reviews](https://wordpress.org/plugins/mjdd-sidrena-cijena/#reviews)
 *  [Installation](https://wordpress.org/plugins/mjdd-sidrena-cijena/#installation)
 * [Development](https://wordpress.org/plugins/mjdd-sidrena-cijena/#developers)

 [Support](https://wordpress.org/support/plugin/mjdd-sidrena-cijena/)

## Description

With WooCommerce active, MJDD Sidrena Cijena stores each product and variation regular
price in its own field and shows it next to the current price. Without WooCommerce,
you enter products in a repeater and publish the same XML/CSV feed plus a public
HTML pricelist at `/sidrena-cjenik`.

The prefix is text only; the date is added automatically in one of two formats:

    ```
    Sidrena cijena (10.09.2026.) : 19,99 €
    Sidrena cijena na 10.09.2026. : 19,99 €
    ```

Hovering the row shows a tooltip with an explanation (can be turned off). The prefix
and tooltip can be translated with WPML, Polylang, TranslatePress, or Loco Translate.

The line under the product price has the CSS class `sidrena-cijena` so you can style
it in the theme or Customizer (Appearance  Customize  Additional CSS). The default
size is 14px (12px on mobile), without bold.

#### Features

 * Works with WooCommerce, or standalone on a plain WordPress site
 * Snapshot of the regular price on activation (does not overwrite values already
   entered)
 * Display follows WooCommerce tax settings (same VAT treatment as the regular price)
 * Filter `sidrena_cijena_price_to_display` when MPC is calculated outside WooCommerce
   Tax
 * Field below the sale price on simple products and on every variation
 * WooCommerce  Sidrena cijena tabs: Settings, Import/Export, Public feed (top-level
   menu when Woo is not active)
 * Without Woo: product repeater (name, SKU, URL, regular, sale, sidrena) feeding
   the same export; each row has `[sidrena-cijena id="x"]` for pages
 * Without Woo: public HTML pricelist at `/sidrena-cjenik`
 * Prefix without a date; storefront format: `Prefix (date)` or `Prefix date` (the
   word “na” belongs in the prefix)
 * Default reference date plus an optional per-product date (FMCG 02.05.2025. vs
   other goods 10.09.2026.)
 * Tooltip on hover of the whole row (switch, on by default)
 * Prefix and tooltip translations in WPML, Polylang, TranslatePress, or Loco Translate
 * Export of the price list and of products missing a sidrena price (CSV or XML)
 * Bulk import CSV/XML by SKU, with price column mapping (creates catalog rows when
   Woo is off)
 * Public price list at `/sidrena-cijena.xml` or `/sidrena-cijena.csv` (choose format
   in settings; manual or daily after 00:05)
 * Public feed always includes `dostupno`/`nedostupno` from stock and barcode from
   GTIN, UPC, EAN or ISBN
 * 30-day archive at `/arhiva-sidrene-cijene` (`OBLIK_ADRESA_OZNAKA_POHRANA_YYYYMMDD_HHMM.
   xml` or `.csv`)
 * Optional unit-price (CJM) switch on the product, appended to the prefix, e.g.“
   za kg/l”
 * Automatic display below the price (can be turned off; the shortcode remains)
 * Shortcode `[sidrena-cijena]` for product loops and custom templates (`[sidrena-
   cijena id="123"]`)
 * Universal hook: `do_action( 'sidrena_cijena' );` or `sidrena_cijena();`
 * WooCommerce CSV product import / export columns
 * HPOS compatibility

Development: MJDD / Jure Zadravec – https://mjdd.hr

This is not legal advice.

### WP-CLI

The admin **Fill empty fields** button processes 40 products per AJAX request. For
a full catalog:

    ```
    wp sidrena-cijena status
    wp sidrena-cijena fill --dry-run
    wp sidrena-cijena fill
    wp sidrena-cijena fill --today
    ```

Default fill is a SQL copy of `_regular_price` into empty `_sidrena_cijena` (does
not overwrite values already stored). Variable/grouped parents are skipped; variations
are filled. `--today` also writes today’s date as the per-product reference date
when that field is empty (products first put on sale after 10.09.2026.).

    ```
    wp sidrena-cijena fill --safe uses WooCommerce product objects (same as the admin button, slower). Fallback: `wp eval-file wp-content/plugins/sidrena-cijena/bin/fill.php`<h3>Tax (VAT)</h3>
    ```

The sidrena price is stored in the same form as the WooCommerce regular price. On
the storefront the plugin uses `wc_get_price_to_display()`, so the display follows
WooCommerce  Settings  Tax (entered including or excluding tax, shop display with
or without VAT). You do not need to re-enter prices after an update.

If the shop shows MPC with a custom VAT calculation (not WooCommerce Tax), hook `
sidrena_cijena_price_to_display` so the sidrena amount matches the regular price.
See **Hook and shortcode**.

### Settings

Sidrena cijena settings (WooCommerce submenu, or a top-level menu without Woo):

 * **Automatic sidrena price display** – Woo only; below the current price; when
   off, only `[sidrena-cijena]` / `[sidrena-cijena id="x"]` remain
 * **Prefix** – words only, e.g. `Sidrena cijena` (do not type the date here)
 * **Date format** – `Prefix (date)` or `Prefix date` (e.g. put `Sidrena cijena 
   na` in the prefix)
 * **Default reference date** – e.g. `10.09.2026.` (used for every product without
   its own date)
 * **Per-product reference date** – Woo only; leave empty for the default; for FMCG
   enter `02.05.2025.`
 * **Tooltip** – switch and text (translate in WPML / Polylang / Loco)
 * **CJM** – Woo only
 * **Products** tab (without Woo) – repeater for the public pricelist. Required:
   name, regular price, sidrena price. Saved as one JSON field to avoid `max_input_vars`
   limits.
 * At the bottom of the Woo settings tab: **Fill empty fields from the regular price**–
   empty fields only; existing sidrena values are left alone. The date stays the
   shop default (e.g. 10.09.2026.). **Fill empty sidrena prices with today’s date**–
   same fill, plus today’s date on products that have no date yet (new products 
   after the reference day). Empty-field snapshot also runs on activation. Saving
   a product does not fill sidrena automatically. For large catalogs use WP-CLI:`
   wp sidrena-cijena fill` or `wp sidrena-cijena fill --today` (see **WP-CLI**).
 * **Delete all data and deactivate** – removes sidrena prices, standalone catalog,
   settings, public XML and archive, then deactivates the plugin. Cannot be undone.

### Import / export

**Import/Export** tab:

 * **Bulk import** – CSV or XML. With Woo: match by SKU (choose the column/node).
   Regular, sale, and sidrena prices are mapped separately; the default is **Do 
   not import**. Import does not create Woo products, it only updates existing ones.
   Without Woo: rows with a matching SKU are updated, other rows are appended to
   the catalog (name, regular, and sidrena are required for new rows). Empty cells
   are skipped. The progress bar uses AJAX batches.
 * **Export price list** – all products and variations (or standalone catalog rows):`
   naziv`, `sku`, `cijena_redovna`, `cijena_akcijska`, `sidrena_cijena`
 * **Export products without a sidrena price** – same columns, only rows where sidrena
   is empty
 * Sidrena price, date, and CJM remain columns in WooCommerce **Products  Import/
   Export** (for the catalog, not for the price list itself)

After importing sidrena prices, regenerate the public feed if you use it.

### Public feed

**Public feed** tab. Price list of published products and variations (or the standalone
catalog): `https://shop.example/sidrena-cijena.xml` or `.csv` (format is a setting;
default XML).

Fields: `id`, `naziv`, `sku`, `url`, `cijena_redovna`, `cijena_akcijska`, `sidrena_cijena`,`
barkod`, `dostupnost`. Barcode is read from WooCommerce GTIN/UPC/EAN/ISBN (`_global_unique_id`).
Availability is always `dostupno` or `nedostupno` from stock status (no setting 
to turn this off).

Generated with the “Generate public feed” button, on the first visit to the URL,
or daily after 00:05 (on by default; WordPress timezone, so the file is ready before
08:00). The file is stored in `wp-content/uploads/sidrena-cijena/`.

The daily cron also stores a legally named file in the archive, following the HOK
webinar template `OBLIK_ADRESA_OZNAKA_POHRANA_YYYYMMDD_HHMM.xml` (date YYYYMMDD,
time HHMM; 30 files maximum; the oldest is deleted). Older `sidrena-cijena_DD-MM-
YYYY` files stay listed. HTML listing: `https://shop.example/arhiva-sidrene-cijene/`.
Set store type, address and object code on the Public feed tab.

Without WooCommerce, a searchable HTML pricelist is also published at `https://shop.
example/sidrena-cjenik/`.

### CJM

In settings, enable “Enable CJM switch”. On the product and variation, next to the
sidrena price, a **CJM** switch appears. When it is on, you enter a prefix suffix(
e.g. `za kg/l`).

    ```
    Sidrena cijena + `za kg/l` + parentheses format = `Sidrena cijena za kg/l (10.09.2026.)`
    Sidrena cijena + `za kg/l` + “na” format = `Sidrena cijena za kg/l na 10.09.2026.`<h3>Compatibility</h3>
    ```

Works alongside the Croatian 30-day Omnibus plugins **WooCommerce Lowest Price**
by Igor Kovačić (1.x) and Media X / Borko Livić (2.x). Sidrena cijena is the fixed
reference price; those plugins show the lowest price in the last 30 days while a
product is on sale. When both are active the storefront order is: current price  
sidrena cijena  30-day lowest price, without a duplicate sidrena line.

The core filter is `woocommerce_get_price_html` (priority 9999). It covers Storefront,
Astra, GeneratePress, OceanWP, Kadence, Blocksy, and most themes that call `$product-
>get_price_html()`.

Builders that often skip that filter have extra PHP hooks plus JS injection into
their `.price` container:

 * **Elementor / AnyWhere Elementor** – widget `woocommerce-product-price`
 * **JetWooBuilder / ShopEngine** – `jet-single-price`, `shopengine-product-price`
 * **WPBakery** – shortcode `[product_price]`, wrapper `.wpb_wrapper > p.price`
 * **Oxygen** – Product Price element (`.oxy-product-price`)
 * **Divi 4 / Divi 5** – module `et_pb_wc_price` / block `divi/wc-product-price`
 * **Bricks** – element `product-price`
 * **Beaver Builder** – WooCommerce price module
 * **Breakdance / Brizy** – CSS selectors for price elements
 * **Avada / Fusion** – Woo Price theme builder element
 * **Woodmart / Flatsome** – `.wd-single-price`, `.product-page-price`
 * **WooCommerce Blocks** – `woocommerce/product-price`

If a theme still does not show the line, put the shortcode or hook below the price
in the template or loop.

### Hook and shortcode

Output goes through `woocommerce_get_price_html` (product page, shop, archive, related
products — anywhere the theme calls `get_price_html()`), Woo blocks, and popular
page builders.

For custom product loops (Elementor, page builder, custom PHP) use:

    ```
    [sidrena-cijena]
    [sidrena-cijena id="123"]
    ```

Without WooCommerce, `[sidrena-cijena id="123"]` prints that catalog row’s current
price and sidrena line, so you can paste it once on a page and only change prices
in Sidrena cijena  Proizvodi.

In a PHP template:

    ```
    echo do_shortcode( '[sidrena-cijena]' );
    do_action( 'sidrena_cijena' );
    sidrena_cijena();
    sidrena_cijena( $product );
    ```

Filter the storefront amount after WooCommerce tax display. Arguments: `$amount`(
float), `$product` (`WC_Product`), `$raw` (stored sidrena string, same basis as `
_regular_price`). Does not change the value stored in the product field.

    ```
    `
    ```

add_filter( ‘sidrena_cijena_price_to_display’, function( $amount, $product, $raw){

return (float) $amount * 1.25; }, 10, 3 ); `<h3>Custom CSS</h3> The line under the
product price has the classsidrena-cijena. Use it for color, size, or alignment.
The tooltip is on hover/focus of the whole row (no “i” icon). Default: 14px / 12px
on mobile,font-weight: 400`.

HTML structure:

    ```
    <span class="sidrena-cijena sidrena-cijena--has-tooltip">
      <span class="sidrena-cijena__text">…</span>
      <span class="sidrena-cijena__tooltip">…</span>
    </span>
    ```

Classes:

 * `.sidrena-cijena` – the whole row under the product price (main class for styling)
 * `.sidrena-cijena__prefix` – prefix text with the date (e.g. Sidrena cijena (10.09.2026.))
 * `.sidrena-cijena__sep` – colon between prefix and amount
 * `.sidrena-cijena__amount` – sidrena price amount
 * `.sidrena-cijena__tooltip` – tooltip text (hover/focus on the whole row, no icon)
 * `.sidrena-cijena--variable` – variable product while no variation is selected

Example:

    ```
    .sidrena-cijena { font-size: 14px; color: #555; }
    .sidrena-cijena__amount { font-weight: 700; color: #111; }
    ```

## Screenshots

[⌊Sidrena cijena on a WooCommerce product: regular price, sale price, and the sidrena
line with tooltip.⌉⌊Sidrena cijena on a WooCommerce product: regular price, sale
price, and the sidrena line with tooltip.⌉[

Sidrena cijena on a WooCommerce product: regular price, sale price, and the sidrena
line with tooltip.

## Installation

 1. Copy the `sidrena-cijena` folder to `wp-content/plugins/`.
 2. Activate the plugin.

**With WooCommerce**

 1. WooCommerce  Sidrena cijena  **Settings**: prefix, date format, default date, tooltip.
 2. Edit the sidrena price and date on a product if needed (below the sale price).
 3. **Import/Export**: export the price list or bulk-import CSV/XML by SKU.
 4. **Public feed**: choose XML or CSV, generate `/sidrena-cijena.xml` or `/sidrena-
    cijena.csv`, or leave daily regeneration after 00:05. The archive is at `/arhiva-
    sidrene-cijene`.

**Without WooCommerce**

 1. Sidrena cijena  **Proizvodi**: add rows (name, SKU, URL, regular price, sale price,
    sidrena price) or import CSV/XML. Copy `[sidrena-cijena id="x"]` from a row onto
    any page so prices stay in admin.
 2. **Settings**: prefix, date format, default date, tooltip.
 3. Public HTML pricelist: `/sidrena-cjenik`. XML/CSV feed and 30-day archive work 
    the same as with Woo.

## Reviews

![](https://secure.gravatar.com/avatar/366f80c36587a6134e36410abbd69adaecc5c4c397a2365512b5f524679bf6fc?
s=60&d=retro&r=g)

### 󠀁[super plugin](https://wordpress.org/support/topic/super-plugin-1393/)󠁿

 [ondrejaquaterra](https://profiles.wordpress.org/ondrejaquaterra/) September 21,
2026

Nakon instalacije odmah proradio Havala na trudu koji ste uložili za nas nepismene
IT samouke. Lp.ondrej

 [ Read all 1 review ](https://wordpress.org/support/plugin/mjdd-sidrena-cijena/reviews/)

## Contributors & Developers

“MJDD Sidrena Cijena” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Jure Zadravec ](https://profiles.wordpress.org/juremjdd/)

[Translate “MJDD Sidrena Cijena” into your language.](https://translate.wordpress.org/projects/wp-plugins/mjdd-sidrena-cijena)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/mjdd-sidrena-cijena/),
check out the [SVN repository](https://plugins.svn.wordpress.org/mjdd-sidrena-cijena/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/mjdd-sidrena-cijena/)
by [RSS](https://plugins.trac.wordpress.org/log/mjdd-sidrena-cijena/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.13.0

 * Standalone catalog: copy / trash / add-row icons, and a per-row `[sidrena-cijena
   id="x"]` shortcode for non-Woo pages.
 * Public feed always includes `dostupno`/`nedostupno` from WooCommerce stock and
   barcode from GTIN, UPC, EAN or ISBN.

#### 1.12.2

 * Variable products: stop the MutationObserver loop that froze the product page
   after selecting a variation.
 * Update the sidrena line when switching variations instead of keeping the first
   variation’s price.

#### 1.12.1

 * Variable products: do not strip the selected variation’s sidrena line. Dedupe
   stays inside the price node, not the whole `.summary`.

#### 1.12.0

 * Public archive filenames follow the HOK webinar template: `OBLIK_ADRESA_OZNAKA_POHRANA_YYYYMMDD_HHMM`(
   date format YYYYMMDD, time HHMM).
 * Daily regeneration runs after 00:05 so the day’s pricelist is published before
   the 08:00 deadline.
 * Public feed settings: store type, address, object code, and storage sequence.

#### 1.11.0

 * Works without WooCommerce: product repeater, same XML/CSV feed, public HTML pricelist
   at `/sidrena-cjenik`.
 * Polylang: `pll_translate_string()` is called with the language code (or `pll__()`),
   fixing a PHP 8 critical error.

#### 1.10.1

 * CSV exports neutralize spreadsheet formula prefixes (=, +, -, @, tab, CR) to 
   prevent formula injection from product data.
 * Direct file access guards on remaining PHP entry points (ABSPATH).

#### 1.10.0

 * Public feed format setting: XML or CSV (`/sidrena-cijena.xml` or `/sidrena-cijena.
   csv`). Archive files keep the type they were generated as.

#### 1.9.9

 * Directory identity: MJDD Sidrena Cijena (slug mjdd-sidrena-cijena). Product meta,
   settings, shortcode, and storefront CSS class are unchanged.
 * Public archive CSS is registered and printed via WordPress style APIs.
 * Uploads paths use wp_upload_dir() only.

#### 1.9.8

 * Settings button to fill empty sidrena prices with today’s date (products added
   after 10.09.2026.). WP-CLI: `wp sidrena-cijena fill --today`.

#### 1.9.7

 * Settings action to delete all plugin data and deactivate the plugin.

#### 1.9.6

 * Filter `sidrena_cijena_price_to_display` for shops that add VAT outside WooCommerce
   Tax.

#### 1.9.5

 * Compatible with WooCommerce Lowest Price by Igor Kovačić and Media X (Borko Livić):
   one sidrena line, placed above the 30-day lowest price.

#### 1.9.4

 * English readme for the WordPress.org Plugin Directory.
 * CSV export no longer uses direct fclose() on php://output.

#### 1.9.3

 * Prefix and tooltip are translated per language (WPML, Polylang, TranslatePress,
   Loco).
 * Tooltip switch, on by default.
 * Automatic display switch; when off, only the shortcode remains.

#### 1.9.2

 * Admin REST/AJAX no longer triggers public XML generation or a permalink flush.
 * Date format: Prefix (date) or Prefix date. The word “na” belongs in the prefix,
   not as a separate option.

#### 1.9.1

 * Prefix preview in settings updates immediately when the date format changes.

#### 1.9.0

 * Sidrena price is always shown below the price; the “only on sale” option was 
   removed.
 * Shortcode [sidrena-cijena] for product loops.

#### 1.8.0

 * 30-day public XML archive at /arhiva-sidrene-cijene (cron at 08:00).
 * Sidrena price is no longer filled automatically when saving a product.

#### 1.7.0

 * Public XML: “Regenerate public XML daily at 08:00” option (on by default).

#### 1.6.1

 * Storefront format: Prefix (date) or Prefix na date.

#### 1.6.0

 * Bulk CSV/XML import by SKU, price mapping, and AJAX progress bar.

#### 1.5.0

 * Admin split into Settings, Import/Export, and Public XML tabs.

#### 1.4.1

 * Storefront sidrena price uses WooCommerce tax display. If prices are entered 
   without VAT and the shop shows prices with VAT, sidrena no longer stays as a 
   net amount.

#### 1.4.0

 * Prefix is text only (Sidrena cijena); the date is added from the default or the
   product date.

#### 1.3.1

 * Sidrena price: 14px on desktop, 12px on mobile.

#### 1.3.0

 * Public XML price list at /sidrena-cijena.xml, regeneration from WooCommerce  
   Sidrena cijena.

#### 1.2.2

 * Sidrena price is no longer bold (Elementor Product Price).

#### 1.2.1

 * Removed the “i” icon; the tooltip stays on hover of the whole row.

#### 1.2.0

 * Compatibility for Elementor, WPBakery, Oxygen, Divi, Bricks, Beaver, Avada, Woodmart,
   Flatsome, JetWooBuilder, and Woo blocks.

#### 1.1.1

 * Sidrena price also shows in the Elementor Product Price widget.

#### 1.1.0

 * Price list and audit export (CSV/XML) in settings.
 * CJM switch and prefix suffix on products.
 * Universal display hook next to WooCommerce blocks.

#### 1.0.0

 * First release.

## Meta

 *  Version **1.13.0**
 *  Last updated **8 hours ago**
 *  Active installations **30+**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [consumer protection](https://wordpress.org/plugins/tags/consumer-protection/)
   [croatia](https://wordpress.org/plugins/tags/croatia/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/mjdd-sidrena-cijena/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/mjdd-sidrena-cijena/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/mjdd-sidrena-cijena/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/mjdd-sidrena-cijena/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/mjdd-sidrena-cijena/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/mjdd-sidrena-cijena/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/mjdd-sidrena-cijena/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/mjdd-sidrena-cijena/reviews/)

## Contributors

 *   [ Jure Zadravec ](https://profiles.wordpress.org/juremjdd/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/mjdd-sidrena-cijena/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://mjdd.hr)