Plugin Directory

Changeset 3464072


Ignore:
Timestamp:
02/18/2026 08:49:55 AM (3 weeks ago)
Author:
devnethr
Message:

v2.6.1

Location:
product-price-history
Files:
12 added
20 edited
1 copied

Legend:

Unmodified
Added
Removed
  • product-price-history/tags/2.6.1/README.txt

    r3406495 r3464072  
    33Requires PHP: 7.4
    44Requires at least: 6.4
    5 Stable tag: 2.6.0
     5Stable tag: 2.6.1
    66Tested up to: 6.9
    77License: GPLv2 or later
     
    162162
    163163== Changelog ==
     164
     165= 2.6.1 =
     166
     167*2026-02-18*
     168
     169* Fix: Prevented edge case error when product is not on sale and lowest price display is enabled for regular prices
     170* Fix: Corrected 30-day lowest price display when product is not on sale
     171* Add: Additional chart position options
     172* Dev: Added `pph_lowest_price_wrapper_tag` filter hook
     173* Compatibility: WooCommerce tested up to 10.5
    164174
    165175= 2.6.0 =
  • product-price-history/tags/2.6.1/assets/build/public-rtl.css

    r3144114 r3464072  
    1 
     1body{opacity:.2!important}
  • product-price-history/tags/2.6.1/assets/build/public.asset.php

    r3144114 r3464072  
    1 <?php return array('dependencies' => array(), 'version' => 'fbb750fd312778403036');
     1<?php return array('dependencies' => array(), 'version' => '40050d513c9b7671823e');
  • product-price-history/tags/2.6.1/assets/build/public.css

    r2922651 r3464072  
    1 
     1body{opacity:.2!important}
  • product-price-history/tags/2.6.1/languages/product-price-history.pot

    r3406495 r3464072  
    1 # Copyright (C) 2025 Devnet
     1# Copyright (C) 2026 Devnet
    22# This file is distributed under the GPL-2.0+.
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Product Price History 2.5.7\n"
     5"Project-Id-Version: Product Price History 2.6.1\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/product-price-history\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-11-27T21:11:58+00:00\n"
     12"POT-Creation-Date: 2026-02-18T08:33:10+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    14 "X-Generator: WP-CLI 2.5.1-alpha-70ffdce\n"
     14"X-Generator: WP-CLI 2.11.0\n"
    1515"X-Domain: product-price-history\n"
    1616
    1717#. Plugin Name of the plugin
     18#: product-price-history.php
    1819#: admin/admin.php:143
    1920#: admin/edit-product.php:42
     
    2324
    2425#. Plugin URI of the plugin
     26#: product-price-history.php
    2527msgid "https://devnet.hr/plugins/product-price-history/"
    2628msgstr ""
    2729
    2830#. Description of the plugin
     31#: product-price-history.php
    2932msgid "Price history tracker for WooCommerce products."
    3033msgstr ""
    3134
    3235#. Author of the plugin
     36#: product-price-history.php
    3337msgid "Devnet"
    3438msgstr ""
    3539
    3640#. Author URI of the plugin
     41#: product-price-history.php
    3742msgid "https://devnet.hr"
    3843msgstr ""
     
    128133msgstr ""
    129134
    130 #: admin/settings.php:57
     135#: admin/settings.php:55
    131136msgid "General"
    132137msgstr ""
    133138
    134 #: admin/settings.php:75
     139#: admin/settings.php:73
    135140msgid "Multilingual"
    136141msgstr ""
    137142
    138 #: admin/settings.php:76
     143#: admin/settings.php:74
    139144msgid "Use your own translated strings."
    140145msgstr ""
    141146
     147#: admin/settings.php:80
     148msgid "Record price changes"
     149msgstr ""
     150
    142151#: admin/settings.php:82
    143 msgid "Record price changes"
     152msgid "All price changes"
     153msgstr ""
     154
     155#: admin/settings.php:83
     156#: admin/settings.php:123
     157msgid "One price per hour"
    144158msgstr ""
    145159
    146160#: admin/settings.php:84
    147 msgid "All price changes"
     161#: admin/settings.php:124
     162msgid "One price in 3 hours"
    148163msgstr ""
    149164
    150165#: admin/settings.php:85
    151166#: admin/settings.php:125
    152 msgid "One price per hour"
     167msgid "One price in 6 hours"
    153168msgstr ""
    154169
    155170#: admin/settings.php:86
    156171#: admin/settings.php:126
    157 msgid "One price in 3 hours"
     172msgid "One price in 12 hours"
    158173msgstr ""
    159174
    160175#: admin/settings.php:87
    161176#: admin/settings.php:127
    162 msgid "One price in 6 hours"
    163 msgstr ""
    164 
    165 #: admin/settings.php:88
    166 #: admin/settings.php:128
    167 msgid "One price in 12 hours"
    168 msgstr ""
    169 
    170 #: admin/settings.php:89
    171 #: admin/settings.php:129
    172177msgid "One price in 24 hours"
    173178msgstr ""
    174179
    175 #: admin/settings.php:92
     180#: admin/settings.php:90
    176181msgid "Choose the frequency at which price changes are recorded and updated in the database. Each selected option will ensure that only one price change is captured within the specified time interval."
    177182msgstr ""
    178183
     184#: admin/settings.php:95
     185msgid "Delete price history older than"
     186msgstr ""
     187
    179188#: admin/settings.php:97
    180 msgid "Delete price history older than"
    181 msgstr ""
    182 
    183 #: admin/settings.php:99
    184189msgid "-- Select --"
    185190msgstr ""
    186191
    187 #: admin/settings.php:106
     192#: admin/settings.php:104
    188193msgid "Delete all plugin data on uninstall"
    189194msgstr ""
    190195
    191 #: admin/settings.php:107
     196#: admin/settings.php:105
    192197msgid "Enabling this option will ensure that all data associated with the plugin, including settings, subscribers and all price histories, will be completely removed from the database upon uninstallation of the plugin."
    193198msgstr ""
    194199
    195 #: admin/settings.php:189
     200#: admin/settings.php:187
    196201msgid ""
    197202"<strong>Attention:</strong> It appears that some required tables are missing in the database.<br>\n"
     
    199204msgstr ""
    200205
    201 #: admin/settings.php:192
     206#: admin/settings.php:190
    202207msgid "Repair"
    203208msgstr ""
    204209
    205 #: admin/settings.php:200
    206 #: modules/price-alerts/partials/price-alerts-page.php:7
    207 msgid "The Price Alerts module is now available as a separate plugin."
    208 msgstr ""
    209 
    210 #: admin/settings.php:201
    211 #: modules/price-alerts/partials/price-alerts-page.php:10
    212 msgid "To keep the Product Price History plugin focused on price tracking and transparency features, we’ve decided to move Price Alerts to its own plugin. This will allow us to better develop and support each plugin individually."
    213 msgstr ""
    214 
    215 #: admin/settings.php:202
    216 #: modules/price-alerts/partials/price-alerts-page.php:13
    217 msgid "The Price Alerts module will be removed from this plugin in version 2.6.0."
    218 msgstr ""
    219 
    220 #: admin/settings.php:203
    221 #: modules/price-alerts/partials/price-alerts-page.php:14
    222 msgid "To continue using it, please install the new Price Alerts plugin:"
    223 msgstr ""
    224 
    225 #: admin/settings.php:204
    226 #: modules/price-alerts/partials/price-alerts-page.php:16
    227 msgid "Download the Free version"
    228 msgstr ""
    229 
    230 #: admin/settings.php:205
    231 #: modules/price-alerts/partials/price-alerts-page.php:17
    232 msgid " or "
    233 msgstr ""
    234 
    235 #: admin/settings.php:206
    236 #: modules/price-alerts/partials/price-alerts-page.php:18
    237 msgid "Learn more about the Pro version"
    238 msgstr ""
    239 
    240 #: admin/settings.php:210
    241 #: modules/price-alerts/partials/price-alerts-page.php:21
    242 msgid "If you have a valid license for Product Price History, we’ll provide you with a license for the new plugin at no extra cost."
    243 msgstr ""
    244 
    245 #: admin/settings.php:211
    246 #: modules/price-alerts/partials/price-alerts-page.php:22
    247 msgid "Just let us know you plan to migrate, and we’ll set it up for you."
    248 msgstr ""
    249 
    250 #: admin/settings.php:212
    251 #: modules/price-alerts/partials/price-alerts-page.php:25
    252 msgid "We’re sorry for the extra steps, but this change allows us to better focus on both plugin functionalities and deliver more improvements faster."
    253 msgstr ""
    254 
    255 #: includes/helper.php:451
     210#: includes/helper.php:450
    256211msgid "This feature is available on the {planName} plan. Please upgrade to access it."
    257212msgstr ""
    258213
    259214#: modules/chart/admin.php:40
    260 #: modules/chart/admin.php:159
     215#: modules/chart/admin.php:162
    261216#: modules/chart/public.php:270
    262217#: modules/price-alerts/partials/price-alerts-page.php:45
     
    266221
    267222#: modules/chart/admin.php:41
    268 #: modules/chart/admin.php:160
     223#: modules/chart/admin.php:163
    269224#: modules/chart/public.php:271
    270225msgid "Last 7 days"
     
    272227
    273228#: modules/chart/admin.php:42
    274 #: modules/chart/admin.php:161
     229#: modules/chart/admin.php:164
    275230#: modules/chart/public.php:272
    276231msgid "Last 30 days"
     
    278233
    279234#: modules/chart/admin.php:43
    280 #: modules/chart/admin.php:162
     235#: modules/chart/admin.php:165
    281236#: modules/chart/public.php:273
    282237msgid "Last 3 months"
     
    284239
    285240#: modules/chart/admin.php:44
    286 #: modules/chart/admin.php:163
     241#: modules/chart/admin.php:166
    287242#: modules/chart/public.php:274
    288243msgid "Last 6 months"
     
    290245
    291246#: modules/chart/admin.php:45
    292 #: modules/chart/admin.php:164
     247#: modules/chart/admin.php:167
    293248#: modules/chart/public.php:275
    294249msgid "Last 12 months"
     
    321276
    322277#: modules/chart/admin.php:124
    323 #: modules/price-alerts/admin.php:329
    324 msgid "Before product meta"
     278#: modules/chart/admin.php:348
     279msgid "Before product meta (SKU, Category, Tag)"
    325280msgstr ""
    326281
    327282#: modules/chart/admin.php:125
     283#: modules/chart/admin.php:349
     284msgid "After product meta (SKU, Category, Tag)"
     285msgstr ""
     286
     287#: modules/chart/admin.php:126
     288#: modules/chart/admin.php:350
     289msgid "Inside product summary"
     290msgstr ""
     291
     292#: modules/chart/admin.php:127
     293#: modules/chart/admin.php:351
    328294#: modules/price-alerts/admin.php:330
    329295msgid "After product summary"
    330296msgstr ""
    331297
    332 #: modules/chart/admin.php:126
    333 #: modules/chart/admin.php:342
     298#: modules/chart/admin.php:128
     299#: modules/chart/admin.php:352
     300msgid "After product"
     301msgstr ""
     302
     303#: modules/chart/admin.php:129
     304#: modules/chart/admin.php:344
     305#: modules/chart/admin.php:353
    334306msgid "Product tab"
    335307msgstr ""
    336308
    337 #: modules/chart/admin.php:127
    338 #: modules/chart/admin.php:343
     309#: modules/chart/admin.php:130
     310#: modules/chart/admin.php:345
     311#: modules/chart/admin.php:354
    339312#: modules/price-alerts/admin.php:331
    340313msgid "Custom - I'll insert a shortcode"
    341314msgstr ""
    342315
    343 #: modules/chart/admin.php:134
     316#: modules/chart/admin.php:137
    344317#: modules/price-alerts/admin.php:338
    345318msgid "Shortcode"
    346319msgstr ""
    347320
    348 #: modules/chart/admin.php:141
     321#: modules/chart/admin.php:144
    349322msgid "Tab title"
    350323msgstr ""
    351324
    352 #: modules/chart/admin.php:148
     325#: modules/chart/admin.php:151
    353326msgid "Tab priority"
    354327msgstr ""
    355328
    356 #: modules/chart/admin.php:149
     329#: modules/chart/admin.php:152
    357330msgid "Lower number mean higher priority, determining its position among other tabs."
    358331msgstr ""
    359332
    360 #: modules/chart/admin.php:157
     333#: modules/chart/admin.php:160
    361334msgid "Date range"
    362335msgstr ""
    363336
    364 #: modules/chart/admin.php:171
     337#: modules/chart/admin.php:174
    365338msgid "Range selector"
    366339msgstr ""
    367340
    368 #: modules/chart/admin.php:178
     341#: modules/chart/admin.php:181
    369342msgid "Minimum prices to display"
    370343msgstr ""
    371344
    372 #: modules/chart/admin.php:186
     345#: modules/chart/admin.php:189
    373346msgid "Exclude prices above"
    374347msgstr ""
    375348
    376 #: modules/chart/admin.php:188
     349#: modules/chart/admin.php:191
    377350msgid "Enter a price above which you want to exclude items from the chart."
    378351msgstr ""
    379352
    380 #: modules/chart/admin.php:195
     353#: modules/chart/admin.php:198
    381354msgid "Exclude prices below"
    382355msgstr ""
    383356
    384 #: modules/chart/admin.php:197
     357#: modules/chart/admin.php:200
    385358msgid "Enter a price below which you want to exclude items from the chart."
    386359msgstr ""
    387360
    388 #: modules/chart/admin.php:204
     361#: modules/chart/admin.php:207
    389362msgid "Daily average price"
    390363msgstr ""
    391364
    392 #: modules/chart/admin.php:205
     365#: modules/chart/admin.php:208
    393366msgid "Helpful when there are frequent price fluctuations within a single day"
    394367msgstr ""
    395368
    396 #: modules/chart/admin.php:211
     369#: modules/chart/admin.php:214
    397370msgid "Show chart on variable products only when variation is selected"
    398371msgstr ""
    399372
    400 #: modules/chart/admin.php:217
     373#: modules/chart/admin.php:220
    401374msgid "Chart type"
    402375msgstr ""
    403376
    404 #: modules/chart/admin.php:219
     377#: modules/chart/admin.php:222
    405378msgid "Bar"
    406379msgstr ""
    407380
    408 #: modules/chart/admin.php:220
    409 #: modules/chart/admin.php:350
     381#: modules/chart/admin.php:223
     382#: modules/chart/admin.php:362
    410383msgid "Stepped"
    411384msgstr ""
    412385
    413 #: modules/chart/admin.php:221
    414 #: modules/chart/admin.php:351
     386#: modules/chart/admin.php:224
     387#: modules/chart/admin.php:363
    415388msgid "Line"
    416389msgstr ""
    417390
    418 #: modules/chart/admin.php:228
     391#: modules/chart/admin.php:231
    419392msgid "Title"
    420393msgstr ""
    421394
    422 #: modules/chart/admin.php:235
     395#: modules/chart/admin.php:238
    423396msgid "Description"
    424397msgstr ""
    425398
    426 #: modules/chart/admin.php:242
     399#: modules/chart/admin.php:245
    427400msgid "Summary statistics display"
    428401msgstr ""
    429402
    430 #: modules/chart/admin.php:244
    431 #: modules/chart/admin.php:377
     403#: modules/chart/admin.php:247
     404#: modules/chart/admin.php:389
    432405#: modules/lowest-price/admin.php:101
    433 #: modules/lowest-price/admin.php:116
     406#: modules/lowest-price/admin.php:110
    434407msgid "Don't display"
    435408msgstr ""
    436409
    437 #: modules/chart/admin.php:248
    438 #: modules/chart/admin.php:304
     410#: modules/chart/admin.php:251
     411#: modules/chart/admin.php:307
    439412msgid "-- Available in ADVANCED plan --"
    440413msgstr ""
    441414
    442 #: modules/chart/admin.php:250
    443 #: modules/chart/admin.php:300
    444 #: modules/chart/admin.php:378
    445 #: modules/chart/admin.php:389
     415#: modules/chart/admin.php:253
     416#: modules/chart/admin.php:303
     417#: modules/chart/admin.php:390
     418#: modules/chart/admin.php:401
    446419msgid "Show all"
    447420msgstr ""
    448421
    449 #: modules/chart/admin.php:251
    450 #: modules/chart/admin.php:379
     422#: modules/chart/admin.php:254
     423#: modules/chart/admin.php:391
    451424msgid "Show only lowest and highest"
    452425msgstr ""
    453426
    454 #: modules/chart/admin.php:252
    455 #: modules/chart/admin.php:380
     427#: modules/chart/admin.php:255
     428#: modules/chart/admin.php:392
    456429msgid "Show only average"
    457430msgstr ""
    458431
    459 #: modules/chart/admin.php:257
     432#: modules/chart/admin.php:260
    460433msgid "Control the visibility of summary statistics (Lowest, Highest, and Average values) displayed above the chart."
    461434msgstr ""
    462435
    463 #: modules/chart/admin.php:263
     436#: modules/chart/admin.php:266
    464437msgid "Graph border color"
    465438msgstr ""
    466439
    467 #: modules/chart/admin.php:269
     440#: modules/chart/admin.php:272
    468441msgid "Chart maximal width"
    469442msgstr ""
    470443
    471 #: modules/chart/admin.php:286
     444#: modules/chart/admin.php:289
    472445msgid "Chart text color"
    473446msgstr ""
    474447
    475 #: modules/chart/admin.php:292
     448#: modules/chart/admin.php:295
    476449msgid "Chart background color"
    477450msgstr ""
    478451
    479 #: modules/chart/admin.php:298
     452#: modules/chart/admin.php:301
    480453msgid "X-Axis label options"
    481454msgstr ""
    482455
    483 #: modules/chart/admin.php:306
    484 #: modules/chart/admin.php:390
     456#: modules/chart/admin.php:309
     457#: modules/chart/admin.php:402
    485458msgid "Hide dates"
    486459msgstr ""
    487460
    488 #: modules/chart/admin.php:307
    489 #: modules/chart/admin.php:391
     461#: modules/chart/admin.php:310
     462#: modules/chart/admin.php:403
    490463msgid "Hide dates and label"
    491464msgstr ""
    492465
    493 #: modules/chart/admin.php:308
    494 #: modules/chart/admin.php:392
     466#: modules/chart/admin.php:311
     467#: modules/chart/admin.php:404
    495468msgid "Show 3 dates"
    496469msgstr ""
    497470
    498 #: modules/chart/admin.php:309
    499 #: modules/chart/admin.php:393
     471#: modules/chart/admin.php:312
     472#: modules/chart/admin.php:405
    500473msgid "Show 5 dates"
    501474msgstr ""
    502475
    503 #: modules/chart/admin.php:310
    504 #: modules/chart/admin.php:394
     476#: modules/chart/admin.php:313
     477#: modules/chart/admin.php:406
    505478msgid "Show 7 dates"
    506479msgstr ""
    507480
    508 #: modules/chart/admin.php:311
    509 #: modules/chart/admin.php:395
     481#: modules/chart/admin.php:314
     482#: modules/chart/admin.php:407
    510483msgid "Show 10 dates"
    511484msgstr ""
    512485
    513 #: modules/chart/admin.php:316
     486#: modules/chart/admin.php:319
    514487msgid "Control how dates are displayed on the X-axis of the chart without reducing the actual data points. This is useful for charts with many data points to avoid clutter. Even when dates are hidden, they will still appear when hovering over specific points in the chart."
    515488msgstr ""
     
    582555msgstr ""
    583556
    584 #: modules/lowest-price/admin.php:114
     557#: modules/lowest-price/admin.php:108
    585558msgid "Regular price"
    586559msgstr ""
    587560
    588 #: modules/lowest-price/admin.php:117
     561#: modules/lowest-price/admin.php:111
    589562msgid "Show regular price"
    590563msgstr ""
    591564
    592 #: modules/lowest-price/admin.php:118
     565#: modules/lowest-price/admin.php:112
    593566msgid "Swap with lowest price — no message (experimental)"
    594567msgstr ""
    595568
    596 #: modules/lowest-price/admin.php:119
     569#: modules/lowest-price/admin.php:113
    597570msgid "Swap with lowest price — include message (experimental)"
    598571msgstr ""
    599572
     573#: modules/lowest-price/admin.php:115
     574msgid "Applies only when the product is on sale. Controls whether to show the regular price or replace it with the lowest price from the last 30 days, with optional message settings"
     575msgstr ""
     576
    600577#: modules/lowest-price/admin.php:121
    601 msgid "Applies only when the product is on sale. Controls whether to show the regular price or replace it with the lowest price from the last 30 days, with optional message settings"
    602 msgstr ""
    603 
    604 #: modules/lowest-price/admin.php:127
    605578msgid "Text"
    606579msgstr ""
    607580
    608 #: modules/lowest-price/admin.php:128
     581#: modules/lowest-price/admin.php:122
    609582msgid "Placeholder for lowest price {lowest_price}"
    610583msgstr ""
    611584
    612 #: modules/lowest-price/admin.php:135
     585#: modules/lowest-price/admin.php:129
    613586msgid "Enable Custom Lowest Price"
    614587msgstr ""
    615588
    616 #: modules/lowest-price/admin.php:136
     589#: modules/lowest-price/admin.php:130
    617590msgid "Allow manual entry of a custom lowest price for each product. When set, this value will override the calculated 30-day lowest price on the product page."
    618591msgstr ""
    619592
    620 #: modules/lowest-price/admin.php:182
     593#: modules/lowest-price/admin.php:176
    621594msgid ""
    622595"The new Consumer Protection Act officially took effect in European Union (EU) on May 28, 2022, as published in Official Gazette No. 19/2022 The Act aims to enhance consumer protection by addressing unfair practices and modernizing rules. Key changes focus on price display for goods and services, with specific regulations for special forms of sales like special offers, sell-outs, and discounts.<br>\n"
     
    723696msgstr ""
    724697
     698#: modules/price-alerts/admin.php:329
     699msgid "Before product meta"
     700msgstr ""
     701
    725702#: modules/price-alerts/admin.php:345
    726703msgid "Button text"
     
    891868msgstr ""
    892869
     870#: modules/price-alerts/partials/price-alerts-page.php:7
     871msgid "The Price Alerts module is now available as a separate plugin."
     872msgstr ""
     873
     874#: modules/price-alerts/partials/price-alerts-page.php:10
     875msgid "To keep the Product Price History plugin focused on price tracking and transparency features, we’ve decided to move Price Alerts to its own plugin. This will allow us to better develop and support each plugin individually."
     876msgstr ""
     877
     878#: modules/price-alerts/partials/price-alerts-page.php:13
     879msgid "The Price Alerts module will be removed from this plugin in version 2.6.0."
     880msgstr ""
     881
     882#: modules/price-alerts/partials/price-alerts-page.php:14
     883msgid "To continue using it, please install the new Price Alerts plugin:"
     884msgstr ""
     885
     886#: modules/price-alerts/partials/price-alerts-page.php:16
     887msgid "Download the Free version"
     888msgstr ""
     889
     890#: modules/price-alerts/partials/price-alerts-page.php:17
     891msgid " or "
     892msgstr ""
     893
     894#: modules/price-alerts/partials/price-alerts-page.php:18
     895msgid "Learn more about the Pro version"
     896msgstr ""
     897
     898#: modules/price-alerts/partials/price-alerts-page.php:21
     899msgid "If you have a valid license for Product Price History, we’ll provide you with a license for the new plugin at no extra cost."
     900msgstr ""
     901
     902#: modules/price-alerts/partials/price-alerts-page.php:22
     903msgid "Just let us know you plan to migrate, and we’ll set it up for you."
     904msgstr ""
     905
     906#: modules/price-alerts/partials/price-alerts-page.php:25
     907msgid "We’re sorry for the extra steps, but this change allows us to better focus on both plugin functionalities and deliver more improvements faster."
     908msgstr ""
     909
    893910#: modules/price-alerts/partials/price-alerts-page.php:31
    894911msgid "Choose specific rows within a table and inform users of price drops. If a user has subscribed to more than one product, they will receive a single email containing a list of products that are currently priced below their desired target."
     
    9981015msgid "Happy shopping!"
    9991016msgstr ""
    1000 
    1001 #: product-price-history.php:178
    1002 msgid "The “Product Price History” plugin cannot run without WooCommerce. Please install and activate WooCommerce plugin."
    1003 msgstr ""
  • product-price-history/tags/2.6.1/modules/chart/admin.php

    r3371694 r3464072  
    103103                'label'   => esc_html__( 'Position', 'product-price-history' ),
    104104                'options' => [
    105                     'woocommerce_product_meta_start'           => esc_html__( 'Before product meta', 'product-price-history' ),
     105                    'woocommerce_product_meta_start'           => esc_html__( 'Before product meta (SKU, Category, Tag)', 'product-price-history' ),
     106                    '_disabled_1'                              => esc_html__( 'After product meta (SKU, Category, Tag)', 'product-price-history' ),
     107                    '_disabled_2'                              => esc_html__( 'Inside product summary', 'product-price-history' ),
    106108                    'woocommerce_after_single_product_summary' => esc_html__( 'After product summary', 'product-price-history' ),
    107                     '_disabled_1'                              => esc_html__( 'Product tab', 'product-price-history' ),
    108                     '_disabled_2'                              => esc_html__( 'Custom - I\'ll insert a shortcode', 'product-price-history' ),
     109                    'woocommerce_after_single_product'         => esc_html__( 'After product', 'product-price-history' ),
     110                    '_disabled_3'                              => esc_html__( 'Product tab', 'product-price-history' ),
     111                    '_disabled_4'                              => esc_html__( 'Custom - I\'ll insert a shortcode', 'product-price-history' ),
    109112                ],
    110113                'default' => self::defaults( 'position' ),
  • product-price-history/tags/2.6.1/modules/lowest-price/helper.php

    r3316786 r3464072  
    3333        ] );
    3434        $entries_count = count( $entries );
    35         $lowest_price = self::find_lowest_price( $entries );
     35        $lowest_price = ( $product->is_on_sale() ? self::find_lowest_price( $entries ) : self::find_lowest_price_regular( $entries, $product->get_price() ) );
    3636        if ( $inherit_regular ) {
    3737            if ( empty( $entries ) || $entries_count === 1 ) {
     
    6969            $info['variations'][$id] = $lowest_price;
    7070        }
    71         $info['min'] = min( $info['all'] );
    72         $info['max'] = max( $info['all'] );
     71        if ( !empty( $info['all'] ) ) {
     72            $info['min'] = min( $info['all'] );
     73            $info['max'] = max( $info['all'] );
     74        }
    7375        return $info;
    7476    }
     
    103105    }
    104106
     107    public static function find_lowest_price_regular( $entries = [], $current_price = null ) {
     108        if ( empty( $entries ) ) {
     109            return $current_price;
     110        }
     111        $thirty_days_ago = date( 'Y-m-d H:i:s', strtotime( '-30 days' ) );
     112        $prices = [];
     113        $price_at_window_start = $entries[0]['price'];
     114        foreach ( $entries as $entry ) {
     115            if ( $entry['date_created'] < $thirty_days_ago ) {
     116                $price_at_window_start = $entry['price'];
     117            }
     118            if ( $entry['date_created'] >= $thirty_days_ago ) {
     119                $prices[] = $entry['price'];
     120            }
     121        }
     122        // Always include the price that was active at window start
     123        $prices[] = $price_at_window_start;
     124        return min( $prices );
     125    }
     126
    105127}
  • product-price-history/tags/2.6.1/modules/lowest-price/public.php

    r3406495 r3464072  
    202202            $lowest_price_html = str_replace('{lowest_price}', $formatted_lowest_price, $text);
    203203
    204             $price_html .= '<div class="pph-lowest-price">' . $lowest_price_html . '</div>';
     204            $wrapper_tag = apply_filters('pph_lowest_price_wrapper_tag', 'div');
     205
     206            // Allow only div or span
     207            $wrapper_tag = in_array($wrapper_tag, ['div', 'span', 'p', 'small'], true)
     208                ? $wrapper_tag
     209                : 'div';
     210
     211            $price_html .= sprintf(
     212                '<%1$s class="pph-lowest-price">%2$s</%1$s>',
     213                esc_attr($wrapper_tag),
     214                $lowest_price_html
     215            );
    205216        }
    206217
  • product-price-history/tags/2.6.1/product-price-history.php

    r3406495 r3464072  
    55 * Plugin URI:        https://devnet.hr/plugins/product-price-history/
    66 * Description:       Price history tracker for WooCommerce products.
    7  * Version:           2.6.0
     7 * Version:           2.6.1
    88 * Requires at least: 6.4
    99 * Requires PHP:      7.4
     
    1515 * Domain Path:       /languages
    1616 * Requires Plugins:  woocommerce
    17  * WC tested up to:   10.3
     17 * WC tested up to:   10.5
    1818 *
    1919 */
     
    111111        pph_fs()->add_filter( 'plugin_icon', 'pph_fs_custom_icon' );
    112112    }
    113     define( 'PRODUCT_PRICE_HISTORY_VERSION', '2.6.0' );
     113    define( 'PRODUCT_PRICE_HISTORY_VERSION', '2.6.1' );
    114114    define( 'DEVNET_PPH_NAME', 'Product Price History' );
    115115    define( 'DEVNET_PPH_SLUG', plugin_basename( __FILE__ ) );
  • product-price-history/tags/2.6.1/vendor/composer/installed.php

    r3399528 r3464072  
    44        'pretty_version' => 'dev-master',
    55        'version' => 'dev-master',
    6         'reference' => 'f897d0b61c2ff0da6cfd0236e6b6e9d14f469e9a',
     6        'reference' => 'd75c02295bf4baff90e3385717ee14c25ae0d326',
    77        'type' => 'library',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-master',
    1515            'version' => 'dev-master',
    16             'reference' => 'f897d0b61c2ff0da6cfd0236e6b6e9d14f469e9a',
     16            'reference' => 'd75c02295bf4baff90e3385717ee14c25ae0d326',
    1717            'type' => 'library',
    1818            'install_path' => __DIR__ . '/../../',
  • product-price-history/trunk/README.txt

    r3406495 r3464072  
    33Requires PHP: 7.4
    44Requires at least: 6.4
    5 Stable tag: 2.6.0
     5Stable tag: 2.6.1
    66Tested up to: 6.9
    77License: GPLv2 or later
     
    162162
    163163== Changelog ==
     164
     165= 2.6.1 =
     166
     167*2026-02-18*
     168
     169* Fix: Prevented edge case error when product is not on sale and lowest price display is enabled for regular prices
     170* Fix: Corrected 30-day lowest price display when product is not on sale
     171* Add: Additional chart position options
     172* Dev: Added `pph_lowest_price_wrapper_tag` filter hook
     173* Compatibility: WooCommerce tested up to 10.5
    164174
    165175= 2.6.0 =
  • product-price-history/trunk/assets/build/public-rtl.css

    r3144114 r3464072  
    1 
     1body{opacity:.2!important}
  • product-price-history/trunk/assets/build/public.asset.php

    r3144114 r3464072  
    1 <?php return array('dependencies' => array(), 'version' => 'fbb750fd312778403036');
     1<?php return array('dependencies' => array(), 'version' => '40050d513c9b7671823e');
  • product-price-history/trunk/assets/build/public.css

    r2922651 r3464072  
    1 
     1body{opacity:.2!important}
  • product-price-history/trunk/languages/product-price-history.pot

    r3406495 r3464072  
    1 # Copyright (C) 2025 Devnet
     1# Copyright (C) 2026 Devnet
    22# This file is distributed under the GPL-2.0+.
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Product Price History 2.5.7\n"
     5"Project-Id-Version: Product Price History 2.6.1\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/product-price-history\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-11-27T21:11:58+00:00\n"
     12"POT-Creation-Date: 2026-02-18T08:33:10+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    14 "X-Generator: WP-CLI 2.5.1-alpha-70ffdce\n"
     14"X-Generator: WP-CLI 2.11.0\n"
    1515"X-Domain: product-price-history\n"
    1616
    1717#. Plugin Name of the plugin
     18#: product-price-history.php
    1819#: admin/admin.php:143
    1920#: admin/edit-product.php:42
     
    2324
    2425#. Plugin URI of the plugin
     26#: product-price-history.php
    2527msgid "https://devnet.hr/plugins/product-price-history/"
    2628msgstr ""
    2729
    2830#. Description of the plugin
     31#: product-price-history.php
    2932msgid "Price history tracker for WooCommerce products."
    3033msgstr ""
    3134
    3235#. Author of the plugin
     36#: product-price-history.php
    3337msgid "Devnet"
    3438msgstr ""
    3539
    3640#. Author URI of the plugin
     41#: product-price-history.php
    3742msgid "https://devnet.hr"
    3843msgstr ""
     
    128133msgstr ""
    129134
    130 #: admin/settings.php:57
     135#: admin/settings.php:55
    131136msgid "General"
    132137msgstr ""
    133138
    134 #: admin/settings.php:75
     139#: admin/settings.php:73
    135140msgid "Multilingual"
    136141msgstr ""
    137142
    138 #: admin/settings.php:76
     143#: admin/settings.php:74
    139144msgid "Use your own translated strings."
    140145msgstr ""
    141146
     147#: admin/settings.php:80
     148msgid "Record price changes"
     149msgstr ""
     150
    142151#: admin/settings.php:82
    143 msgid "Record price changes"
     152msgid "All price changes"
     153msgstr ""
     154
     155#: admin/settings.php:83
     156#: admin/settings.php:123
     157msgid "One price per hour"
    144158msgstr ""
    145159
    146160#: admin/settings.php:84
    147 msgid "All price changes"
     161#: admin/settings.php:124
     162msgid "One price in 3 hours"
    148163msgstr ""
    149164
    150165#: admin/settings.php:85
    151166#: admin/settings.php:125
    152 msgid "One price per hour"
     167msgid "One price in 6 hours"
    153168msgstr ""
    154169
    155170#: admin/settings.php:86
    156171#: admin/settings.php:126
    157 msgid "One price in 3 hours"
     172msgid "One price in 12 hours"
    158173msgstr ""
    159174
    160175#: admin/settings.php:87
    161176#: admin/settings.php:127
    162 msgid "One price in 6 hours"
    163 msgstr ""
    164 
    165 #: admin/settings.php:88
    166 #: admin/settings.php:128
    167 msgid "One price in 12 hours"
    168 msgstr ""
    169 
    170 #: admin/settings.php:89
    171 #: admin/settings.php:129
    172177msgid "One price in 24 hours"
    173178msgstr ""
    174179
    175 #: admin/settings.php:92
     180#: admin/settings.php:90
    176181msgid "Choose the frequency at which price changes are recorded and updated in the database. Each selected option will ensure that only one price change is captured within the specified time interval."
    177182msgstr ""
    178183
     184#: admin/settings.php:95
     185msgid "Delete price history older than"
     186msgstr ""
     187
    179188#: admin/settings.php:97
    180 msgid "Delete price history older than"
    181 msgstr ""
    182 
    183 #: admin/settings.php:99
    184189msgid "-- Select --"
    185190msgstr ""
    186191
    187 #: admin/settings.php:106
     192#: admin/settings.php:104
    188193msgid "Delete all plugin data on uninstall"
    189194msgstr ""
    190195
    191 #: admin/settings.php:107
     196#: admin/settings.php:105
    192197msgid "Enabling this option will ensure that all data associated with the plugin, including settings, subscribers and all price histories, will be completely removed from the database upon uninstallation of the plugin."
    193198msgstr ""
    194199
    195 #: admin/settings.php:189
     200#: admin/settings.php:187
    196201msgid ""
    197202"<strong>Attention:</strong> It appears that some required tables are missing in the database.<br>\n"
     
    199204msgstr ""
    200205
    201 #: admin/settings.php:192
     206#: admin/settings.php:190
    202207msgid "Repair"
    203208msgstr ""
    204209
    205 #: admin/settings.php:200
    206 #: modules/price-alerts/partials/price-alerts-page.php:7
    207 msgid "The Price Alerts module is now available as a separate plugin."
    208 msgstr ""
    209 
    210 #: admin/settings.php:201
    211 #: modules/price-alerts/partials/price-alerts-page.php:10
    212 msgid "To keep the Product Price History plugin focused on price tracking and transparency features, we’ve decided to move Price Alerts to its own plugin. This will allow us to better develop and support each plugin individually."
    213 msgstr ""
    214 
    215 #: admin/settings.php:202
    216 #: modules/price-alerts/partials/price-alerts-page.php:13
    217 msgid "The Price Alerts module will be removed from this plugin in version 2.6.0."
    218 msgstr ""
    219 
    220 #: admin/settings.php:203
    221 #: modules/price-alerts/partials/price-alerts-page.php:14
    222 msgid "To continue using it, please install the new Price Alerts plugin:"
    223 msgstr ""
    224 
    225 #: admin/settings.php:204
    226 #: modules/price-alerts/partials/price-alerts-page.php:16
    227 msgid "Download the Free version"
    228 msgstr ""
    229 
    230 #: admin/settings.php:205
    231 #: modules/price-alerts/partials/price-alerts-page.php:17
    232 msgid " or "
    233 msgstr ""
    234 
    235 #: admin/settings.php:206
    236 #: modules/price-alerts/partials/price-alerts-page.php:18
    237 msgid "Learn more about the Pro version"
    238 msgstr ""
    239 
    240 #: admin/settings.php:210
    241 #: modules/price-alerts/partials/price-alerts-page.php:21
    242 msgid "If you have a valid license for Product Price History, we’ll provide you with a license for the new plugin at no extra cost."
    243 msgstr ""
    244 
    245 #: admin/settings.php:211
    246 #: modules/price-alerts/partials/price-alerts-page.php:22
    247 msgid "Just let us know you plan to migrate, and we’ll set it up for you."
    248 msgstr ""
    249 
    250 #: admin/settings.php:212
    251 #: modules/price-alerts/partials/price-alerts-page.php:25
    252 msgid "We’re sorry for the extra steps, but this change allows us to better focus on both plugin functionalities and deliver more improvements faster."
    253 msgstr ""
    254 
    255 #: includes/helper.php:451
     210#: includes/helper.php:450
    256211msgid "This feature is available on the {planName} plan. Please upgrade to access it."
    257212msgstr ""
    258213
    259214#: modules/chart/admin.php:40
    260 #: modules/chart/admin.php:159
     215#: modules/chart/admin.php:162
    261216#: modules/chart/public.php:270
    262217#: modules/price-alerts/partials/price-alerts-page.php:45
     
    266221
    267222#: modules/chart/admin.php:41
    268 #: modules/chart/admin.php:160
     223#: modules/chart/admin.php:163
    269224#: modules/chart/public.php:271
    270225msgid "Last 7 days"
     
    272227
    273228#: modules/chart/admin.php:42
    274 #: modules/chart/admin.php:161
     229#: modules/chart/admin.php:164
    275230#: modules/chart/public.php:272
    276231msgid "Last 30 days"
     
    278233
    279234#: modules/chart/admin.php:43
    280 #: modules/chart/admin.php:162
     235#: modules/chart/admin.php:165
    281236#: modules/chart/public.php:273
    282237msgid "Last 3 months"
     
    284239
    285240#: modules/chart/admin.php:44
    286 #: modules/chart/admin.php:163
     241#: modules/chart/admin.php:166
    287242#: modules/chart/public.php:274
    288243msgid "Last 6 months"
     
    290245
    291246#: modules/chart/admin.php:45
    292 #: modules/chart/admin.php:164
     247#: modules/chart/admin.php:167
    293248#: modules/chart/public.php:275
    294249msgid "Last 12 months"
     
    321276
    322277#: modules/chart/admin.php:124
    323 #: modules/price-alerts/admin.php:329
    324 msgid "Before product meta"
     278#: modules/chart/admin.php:348
     279msgid "Before product meta (SKU, Category, Tag)"
    325280msgstr ""
    326281
    327282#: modules/chart/admin.php:125
     283#: modules/chart/admin.php:349
     284msgid "After product meta (SKU, Category, Tag)"
     285msgstr ""
     286
     287#: modules/chart/admin.php:126
     288#: modules/chart/admin.php:350
     289msgid "Inside product summary"
     290msgstr ""
     291
     292#: modules/chart/admin.php:127
     293#: modules/chart/admin.php:351
    328294#: modules/price-alerts/admin.php:330
    329295msgid "After product summary"
    330296msgstr ""
    331297
    332 #: modules/chart/admin.php:126
    333 #: modules/chart/admin.php:342
     298#: modules/chart/admin.php:128
     299#: modules/chart/admin.php:352
     300msgid "After product"
     301msgstr ""
     302
     303#: modules/chart/admin.php:129
     304#: modules/chart/admin.php:344
     305#: modules/chart/admin.php:353
    334306msgid "Product tab"
    335307msgstr ""
    336308
    337 #: modules/chart/admin.php:127
    338 #: modules/chart/admin.php:343
     309#: modules/chart/admin.php:130
     310#: modules/chart/admin.php:345
     311#: modules/chart/admin.php:354
    339312#: modules/price-alerts/admin.php:331
    340313msgid "Custom - I'll insert a shortcode"
    341314msgstr ""
    342315
    343 #: modules/chart/admin.php:134
     316#: modules/chart/admin.php:137
    344317#: modules/price-alerts/admin.php:338
    345318msgid "Shortcode"
    346319msgstr ""
    347320
    348 #: modules/chart/admin.php:141
     321#: modules/chart/admin.php:144
    349322msgid "Tab title"
    350323msgstr ""
    351324
    352 #: modules/chart/admin.php:148
     325#: modules/chart/admin.php:151
    353326msgid "Tab priority"
    354327msgstr ""
    355328
    356 #: modules/chart/admin.php:149
     329#: modules/chart/admin.php:152
    357330msgid "Lower number mean higher priority, determining its position among other tabs."
    358331msgstr ""
    359332
    360 #: modules/chart/admin.php:157
     333#: modules/chart/admin.php:160
    361334msgid "Date range"
    362335msgstr ""
    363336
    364 #: modules/chart/admin.php:171
     337#: modules/chart/admin.php:174
    365338msgid "Range selector"
    366339msgstr ""
    367340
    368 #: modules/chart/admin.php:178
     341#: modules/chart/admin.php:181
    369342msgid "Minimum prices to display"
    370343msgstr ""
    371344
    372 #: modules/chart/admin.php:186
     345#: modules/chart/admin.php:189
    373346msgid "Exclude prices above"
    374347msgstr ""
    375348
    376 #: modules/chart/admin.php:188
     349#: modules/chart/admin.php:191
    377350msgid "Enter a price above which you want to exclude items from the chart."
    378351msgstr ""
    379352
    380 #: modules/chart/admin.php:195
     353#: modules/chart/admin.php:198
    381354msgid "Exclude prices below"
    382355msgstr ""
    383356
    384 #: modules/chart/admin.php:197
     357#: modules/chart/admin.php:200
    385358msgid "Enter a price below which you want to exclude items from the chart."
    386359msgstr ""
    387360
    388 #: modules/chart/admin.php:204
     361#: modules/chart/admin.php:207
    389362msgid "Daily average price"
    390363msgstr ""
    391364
    392 #: modules/chart/admin.php:205
     365#: modules/chart/admin.php:208
    393366msgid "Helpful when there are frequent price fluctuations within a single day"
    394367msgstr ""
    395368
    396 #: modules/chart/admin.php:211
     369#: modules/chart/admin.php:214
    397370msgid "Show chart on variable products only when variation is selected"
    398371msgstr ""
    399372
    400 #: modules/chart/admin.php:217
     373#: modules/chart/admin.php:220
    401374msgid "Chart type"
    402375msgstr ""
    403376
    404 #: modules/chart/admin.php:219
     377#: modules/chart/admin.php:222
    405378msgid "Bar"
    406379msgstr ""
    407380
    408 #: modules/chart/admin.php:220
    409 #: modules/chart/admin.php:350
     381#: modules/chart/admin.php:223
     382#: modules/chart/admin.php:362
    410383msgid "Stepped"
    411384msgstr ""
    412385
    413 #: modules/chart/admin.php:221
    414 #: modules/chart/admin.php:351
     386#: modules/chart/admin.php:224
     387#: modules/chart/admin.php:363
    415388msgid "Line"
    416389msgstr ""
    417390
    418 #: modules/chart/admin.php:228
     391#: modules/chart/admin.php:231
    419392msgid "Title"
    420393msgstr ""
    421394
    422 #: modules/chart/admin.php:235
     395#: modules/chart/admin.php:238
    423396msgid "Description"
    424397msgstr ""
    425398
    426 #: modules/chart/admin.php:242
     399#: modules/chart/admin.php:245
    427400msgid "Summary statistics display"
    428401msgstr ""
    429402
    430 #: modules/chart/admin.php:244
    431 #: modules/chart/admin.php:377
     403#: modules/chart/admin.php:247
     404#: modules/chart/admin.php:389
    432405#: modules/lowest-price/admin.php:101
    433 #: modules/lowest-price/admin.php:116
     406#: modules/lowest-price/admin.php:110
    434407msgid "Don't display"
    435408msgstr ""
    436409
    437 #: modules/chart/admin.php:248
    438 #: modules/chart/admin.php:304
     410#: modules/chart/admin.php:251
     411#: modules/chart/admin.php:307
    439412msgid "-- Available in ADVANCED plan --"
    440413msgstr ""
    441414
    442 #: modules/chart/admin.php:250
    443 #: modules/chart/admin.php:300
    444 #: modules/chart/admin.php:378
    445 #: modules/chart/admin.php:389
     415#: modules/chart/admin.php:253
     416#: modules/chart/admin.php:303
     417#: modules/chart/admin.php:390
     418#: modules/chart/admin.php:401
    446419msgid "Show all"
    447420msgstr ""
    448421
    449 #: modules/chart/admin.php:251
    450 #: modules/chart/admin.php:379
     422#: modules/chart/admin.php:254
     423#: modules/chart/admin.php:391
    451424msgid "Show only lowest and highest"
    452425msgstr ""
    453426
    454 #: modules/chart/admin.php:252
    455 #: modules/chart/admin.php:380
     427#: modules/chart/admin.php:255
     428#: modules/chart/admin.php:392
    456429msgid "Show only average"
    457430msgstr ""
    458431
    459 #: modules/chart/admin.php:257
     432#: modules/chart/admin.php:260
    460433msgid "Control the visibility of summary statistics (Lowest, Highest, and Average values) displayed above the chart."
    461434msgstr ""
    462435
    463 #: modules/chart/admin.php:263
     436#: modules/chart/admin.php:266
    464437msgid "Graph border color"
    465438msgstr ""
    466439
    467 #: modules/chart/admin.php:269
     440#: modules/chart/admin.php:272
    468441msgid "Chart maximal width"
    469442msgstr ""
    470443
    471 #: modules/chart/admin.php:286
     444#: modules/chart/admin.php:289
    472445msgid "Chart text color"
    473446msgstr ""
    474447
    475 #: modules/chart/admin.php:292
     448#: modules/chart/admin.php:295
    476449msgid "Chart background color"
    477450msgstr ""
    478451
    479 #: modules/chart/admin.php:298
     452#: modules/chart/admin.php:301
    480453msgid "X-Axis label options"
    481454msgstr ""
    482455
    483 #: modules/chart/admin.php:306
    484 #: modules/chart/admin.php:390
     456#: modules/chart/admin.php:309
     457#: modules/chart/admin.php:402
    485458msgid "Hide dates"
    486459msgstr ""
    487460
    488 #: modules/chart/admin.php:307
    489 #: modules/chart/admin.php:391
     461#: modules/chart/admin.php:310
     462#: modules/chart/admin.php:403
    490463msgid "Hide dates and label"
    491464msgstr ""
    492465
    493 #: modules/chart/admin.php:308
    494 #: modules/chart/admin.php:392
     466#: modules/chart/admin.php:311
     467#: modules/chart/admin.php:404
    495468msgid "Show 3 dates"
    496469msgstr ""
    497470
    498 #: modules/chart/admin.php:309
    499 #: modules/chart/admin.php:393
     471#: modules/chart/admin.php:312
     472#: modules/chart/admin.php:405
    500473msgid "Show 5 dates"
    501474msgstr ""
    502475
    503 #: modules/chart/admin.php:310
    504 #: modules/chart/admin.php:394
     476#: modules/chart/admin.php:313
     477#: modules/chart/admin.php:406
    505478msgid "Show 7 dates"
    506479msgstr ""
    507480
    508 #: modules/chart/admin.php:311
    509 #: modules/chart/admin.php:395
     481#: modules/chart/admin.php:314
     482#: modules/chart/admin.php:407
    510483msgid "Show 10 dates"
    511484msgstr ""
    512485
    513 #: modules/chart/admin.php:316
     486#: modules/chart/admin.php:319
    514487msgid "Control how dates are displayed on the X-axis of the chart without reducing the actual data points. This is useful for charts with many data points to avoid clutter. Even when dates are hidden, they will still appear when hovering over specific points in the chart."
    515488msgstr ""
     
    582555msgstr ""
    583556
    584 #: modules/lowest-price/admin.php:114
     557#: modules/lowest-price/admin.php:108
    585558msgid "Regular price"
    586559msgstr ""
    587560
    588 #: modules/lowest-price/admin.php:117
     561#: modules/lowest-price/admin.php:111
    589562msgid "Show regular price"
    590563msgstr ""
    591564
    592 #: modules/lowest-price/admin.php:118
     565#: modules/lowest-price/admin.php:112
    593566msgid "Swap with lowest price — no message (experimental)"
    594567msgstr ""
    595568
    596 #: modules/lowest-price/admin.php:119
     569#: modules/lowest-price/admin.php:113
    597570msgid "Swap with lowest price — include message (experimental)"
    598571msgstr ""
    599572
     573#: modules/lowest-price/admin.php:115
     574msgid "Applies only when the product is on sale. Controls whether to show the regular price or replace it with the lowest price from the last 30 days, with optional message settings"
     575msgstr ""
     576
    600577#: modules/lowest-price/admin.php:121
    601 msgid "Applies only when the product is on sale. Controls whether to show the regular price or replace it with the lowest price from the last 30 days, with optional message settings"
    602 msgstr ""
    603 
    604 #: modules/lowest-price/admin.php:127
    605578msgid "Text"
    606579msgstr ""
    607580
    608 #: modules/lowest-price/admin.php:128
     581#: modules/lowest-price/admin.php:122
    609582msgid "Placeholder for lowest price {lowest_price}"
    610583msgstr ""
    611584
    612 #: modules/lowest-price/admin.php:135
     585#: modules/lowest-price/admin.php:129
    613586msgid "Enable Custom Lowest Price"
    614587msgstr ""
    615588
    616 #: modules/lowest-price/admin.php:136
     589#: modules/lowest-price/admin.php:130
    617590msgid "Allow manual entry of a custom lowest price for each product. When set, this value will override the calculated 30-day lowest price on the product page."
    618591msgstr ""
    619592
    620 #: modules/lowest-price/admin.php:182
     593#: modules/lowest-price/admin.php:176
    621594msgid ""
    622595"The new Consumer Protection Act officially took effect in European Union (EU) on May 28, 2022, as published in Official Gazette No. 19/2022 The Act aims to enhance consumer protection by addressing unfair practices and modernizing rules. Key changes focus on price display for goods and services, with specific regulations for special forms of sales like special offers, sell-outs, and discounts.<br>\n"
     
    723696msgstr ""
    724697
     698#: modules/price-alerts/admin.php:329
     699msgid "Before product meta"
     700msgstr ""
     701
    725702#: modules/price-alerts/admin.php:345
    726703msgid "Button text"
     
    891868msgstr ""
    892869
     870#: modules/price-alerts/partials/price-alerts-page.php:7
     871msgid "The Price Alerts module is now available as a separate plugin."
     872msgstr ""
     873
     874#: modules/price-alerts/partials/price-alerts-page.php:10
     875msgid "To keep the Product Price History plugin focused on price tracking and transparency features, we’ve decided to move Price Alerts to its own plugin. This will allow us to better develop and support each plugin individually."
     876msgstr ""
     877
     878#: modules/price-alerts/partials/price-alerts-page.php:13
     879msgid "The Price Alerts module will be removed from this plugin in version 2.6.0."
     880msgstr ""
     881
     882#: modules/price-alerts/partials/price-alerts-page.php:14
     883msgid "To continue using it, please install the new Price Alerts plugin:"
     884msgstr ""
     885
     886#: modules/price-alerts/partials/price-alerts-page.php:16
     887msgid "Download the Free version"
     888msgstr ""
     889
     890#: modules/price-alerts/partials/price-alerts-page.php:17
     891msgid " or "
     892msgstr ""
     893
     894#: modules/price-alerts/partials/price-alerts-page.php:18
     895msgid "Learn more about the Pro version"
     896msgstr ""
     897
     898#: modules/price-alerts/partials/price-alerts-page.php:21
     899msgid "If you have a valid license for Product Price History, we’ll provide you with a license for the new plugin at no extra cost."
     900msgstr ""
     901
     902#: modules/price-alerts/partials/price-alerts-page.php:22
     903msgid "Just let us know you plan to migrate, and we’ll set it up for you."
     904msgstr ""
     905
     906#: modules/price-alerts/partials/price-alerts-page.php:25
     907msgid "We’re sorry for the extra steps, but this change allows us to better focus on both plugin functionalities and deliver more improvements faster."
     908msgstr ""
     909
    893910#: modules/price-alerts/partials/price-alerts-page.php:31
    894911msgid "Choose specific rows within a table and inform users of price drops. If a user has subscribed to more than one product, they will receive a single email containing a list of products that are currently priced below their desired target."
     
    9981015msgid "Happy shopping!"
    9991016msgstr ""
    1000 
    1001 #: product-price-history.php:178
    1002 msgid "The “Product Price History” plugin cannot run without WooCommerce. Please install and activate WooCommerce plugin."
    1003 msgstr ""
  • product-price-history/trunk/modules/chart/admin.php

    r3371694 r3464072  
    103103                'label'   => esc_html__( 'Position', 'product-price-history' ),
    104104                'options' => [
    105                     'woocommerce_product_meta_start'           => esc_html__( 'Before product meta', 'product-price-history' ),
     105                    'woocommerce_product_meta_start'           => esc_html__( 'Before product meta (SKU, Category, Tag)', 'product-price-history' ),
     106                    '_disabled_1'                              => esc_html__( 'After product meta (SKU, Category, Tag)', 'product-price-history' ),
     107                    '_disabled_2'                              => esc_html__( 'Inside product summary', 'product-price-history' ),
    106108                    'woocommerce_after_single_product_summary' => esc_html__( 'After product summary', 'product-price-history' ),
    107                     '_disabled_1'                              => esc_html__( 'Product tab', 'product-price-history' ),
    108                     '_disabled_2'                              => esc_html__( 'Custom - I\'ll insert a shortcode', 'product-price-history' ),
     109                    'woocommerce_after_single_product'         => esc_html__( 'After product', 'product-price-history' ),
     110                    '_disabled_3'                              => esc_html__( 'Product tab', 'product-price-history' ),
     111                    '_disabled_4'                              => esc_html__( 'Custom - I\'ll insert a shortcode', 'product-price-history' ),
    109112                ],
    110113                'default' => self::defaults( 'position' ),
  • product-price-history/trunk/modules/lowest-price/helper.php

    r3316786 r3464072  
    3333        ] );
    3434        $entries_count = count( $entries );
    35         $lowest_price = self::find_lowest_price( $entries );
     35        $lowest_price = ( $product->is_on_sale() ? self::find_lowest_price( $entries ) : self::find_lowest_price_regular( $entries, $product->get_price() ) );
    3636        if ( $inherit_regular ) {
    3737            if ( empty( $entries ) || $entries_count === 1 ) {
     
    6969            $info['variations'][$id] = $lowest_price;
    7070        }
    71         $info['min'] = min( $info['all'] );
    72         $info['max'] = max( $info['all'] );
     71        if ( !empty( $info['all'] ) ) {
     72            $info['min'] = min( $info['all'] );
     73            $info['max'] = max( $info['all'] );
     74        }
    7375        return $info;
    7476    }
     
    103105    }
    104106
     107    public static function find_lowest_price_regular( $entries = [], $current_price = null ) {
     108        if ( empty( $entries ) ) {
     109            return $current_price;
     110        }
     111        $thirty_days_ago = date( 'Y-m-d H:i:s', strtotime( '-30 days' ) );
     112        $prices = [];
     113        $price_at_window_start = $entries[0]['price'];
     114        foreach ( $entries as $entry ) {
     115            if ( $entry['date_created'] < $thirty_days_ago ) {
     116                $price_at_window_start = $entry['price'];
     117            }
     118            if ( $entry['date_created'] >= $thirty_days_ago ) {
     119                $prices[] = $entry['price'];
     120            }
     121        }
     122        // Always include the price that was active at window start
     123        $prices[] = $price_at_window_start;
     124        return min( $prices );
     125    }
     126
    105127}
  • product-price-history/trunk/modules/lowest-price/public.php

    r3406495 r3464072  
    202202            $lowest_price_html = str_replace('{lowest_price}', $formatted_lowest_price, $text);
    203203
    204             $price_html .= '<div class="pph-lowest-price">' . $lowest_price_html . '</div>';
     204            $wrapper_tag = apply_filters('pph_lowest_price_wrapper_tag', 'div');
     205
     206            // Allow only div or span
     207            $wrapper_tag = in_array($wrapper_tag, ['div', 'span', 'p', 'small'], true)
     208                ? $wrapper_tag
     209                : 'div';
     210
     211            $price_html .= sprintf(
     212                '<%1$s class="pph-lowest-price">%2$s</%1$s>',
     213                esc_attr($wrapper_tag),
     214                $lowest_price_html
     215            );
    205216        }
    206217
  • product-price-history/trunk/product-price-history.php

    r3406495 r3464072  
    55 * Plugin URI:        https://devnet.hr/plugins/product-price-history/
    66 * Description:       Price history tracker for WooCommerce products.
    7  * Version:           2.6.0
     7 * Version:           2.6.1
    88 * Requires at least: 6.4
    99 * Requires PHP:      7.4
     
    1515 * Domain Path:       /languages
    1616 * Requires Plugins:  woocommerce
    17  * WC tested up to:   10.3
     17 * WC tested up to:   10.5
    1818 *
    1919 */
     
    111111        pph_fs()->add_filter( 'plugin_icon', 'pph_fs_custom_icon' );
    112112    }
    113     define( 'PRODUCT_PRICE_HISTORY_VERSION', '2.6.0' );
     113    define( 'PRODUCT_PRICE_HISTORY_VERSION', '2.6.1' );
    114114    define( 'DEVNET_PPH_NAME', 'Product Price History' );
    115115    define( 'DEVNET_PPH_SLUG', plugin_basename( __FILE__ ) );
  • product-price-history/trunk/vendor/composer/installed.php

    r3399528 r3464072  
    44        'pretty_version' => 'dev-master',
    55        'version' => 'dev-master',
    6         'reference' => 'f897d0b61c2ff0da6cfd0236e6b6e9d14f469e9a',
     6        'reference' => 'd75c02295bf4baff90e3385717ee14c25ae0d326',
    77        'type' => 'library',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-master',
    1515            'version' => 'dev-master',
    16             'reference' => 'f897d0b61c2ff0da6cfd0236e6b6e9d14f469e9a',
     16            'reference' => 'd75c02295bf4baff90e3385717ee14c25ae0d326',
    1717            'type' => 'library',
    1818            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.