=== Price Comparison Pro ===
== Changelog ==
= 4.09 (18th January 2024) =
* Updated plugin update checker to include version 4 update checker
= 4.08 (20th October 2023) =
* Added 2 hour transient cache for reading changelog files from our server
- this will speed up wp-admin slightly and prevent the 403 forbidden error messages some have been getting when trying to run plugin updates
= 4.07 (10th August 2023) =
* Hotfix for new updates system - if your server was configured to disable remote URL requests, a critical error was happening upon upgrade. This has been fixed with a warning message that you cannot check for updates.
= 4.06 (4th August 2023) =
* Upgraded main settings page to show changes since last update
- added update count to menu to help users notice
* Added links to all plugin docs and support areas in the settings page
= 4.05 Beta (26th July 2023) =
* Upgraded updates sytem so it uses JSON and gets zip file from license-key-checked URL
= 4.04 (23rd June 2023) =
* Cleaned up front-end JavaScript + some other stuff added for Marin customer
= 4.03 (8th June 2023) =
* Added new option to combine store locator with store column
= 4.02 (8th June 2023) =
* Added new translation entries for Locate Store, Store Locator and Store strings
= 4.01 (7th June 2023) =
* Added new display options for price comparison table - you can have between 2 and 5 columns now
* Added new option for a custom URL, e.g. for a store locator link, but can be used for any other site-wide per-merchant link
= 4.00 (3rd February 2023) =
* Updated .pot language translation files
= 3.99 (1st February 2023) =
* Added grey buy button to panel
= 3.98 (24th January 2023) =
* Altered CSS to fix hover effect with slightly updated grid styling effect
* Fix JS to grab merchant logo if no product logo found
= 3.97 (12th January 2023) =
* Fixed code to pull images from which should mean ALL images always work now (previously about 95% were working)
* Fixed Update Woo Prices so it works properly with new table structure and sets the Affiliate URL for External Products properly to match the cheapest price
* Performance boost for update woo prices
= 3.96 (7th December 2022) =
* Upgraded HTML, CSS and JS for price comparison table to use divs and flex grid rather than archaic HTML table - this allows control clicking or right-clicking products now to open in new window
* Speed boost for front-end - you'll need to visit wp-admin > Price Comparison Pro > Price Comparison Pro and then hit save. This will update the options with far less data which reduces how much info gets sent to front end and processed by JS.
= 3.95 (24th November 2022) =
* Improved cache retrieval so broken scrapes do not break earlier successful scrapes
* Improved cache retrieval speed so initial page loads faster and uses far less CPU
* Added website config import/export option
= 3.94 (12th November 2022) =
* Changed Scraper API premium flag from premium to ultra_premium
= 3.93 (12th November 2022) =
* Improved scraping so that if a selector matches two prices, it will split the data on the currency symbol and use the first price. This makes it far easier and more resilient to create CSS selectors.
* Fixed currency symbol config so that correct currency displays.
= 3.92 (1st November 2022) =
* Added Rocket Scrape techniques to debug & logging page
= 3.91 (1st November 2022) =
* Fixed bug that Ricards found in the new code to pass to Scraper API with new wait_for_selector parameter
= 3.90 (26th October 2022) =
* Updated datafeedr hook to use dfrpswc_post_save_product instead of the old dfrpswc_do_product hook
= 3.89 (26th October 2022) =
* Added &wait_for_selector option to scraper API - new option provided with scraper API to have JS wait long enough for the price block to appear
* Fixed table sorting based on price
* Fixed Update Woo Prices - it now will update the price, providing it exists and has been scraped
= 3.88 (20th September 2022) =
* Added Scraper API Premium option for tricky to scrape websites which should use premium proxies and bypass the bot blockers
= 3.87 BETA (11th August 2022) =
* Fixed JS issue which was causing an infinite loop if the product image could not be found AND there was no logo configured
* Fixed some warnings that appeared if you had not yet entered config for the website you are scraping
* Updated config fetch so that https://barbora.lv will match to config for https://www.barbora.lv and vice versa if no config found
= 3.86 BETA (9th August 2022) =
* Added rule to remove /cache/xyz/ from image URL if the image is failing to load
* Updated display style to put merchant logo in right hand side column above the price - makes more sense here
* Added conditional code for search comparison widget so it doesn't break the page if the settings have not yet been configured
= 3.85 BETA (21st March 2022) =
* Added auto image selectors to scrape images and put them in comparison table
* Added image fallback to logo if image cannot be scraped
* Added h1, title scraper to display in comparison table
* Still in Beta because the table no longer sorts and prices do not update
= 3.84 BETA (21st March 2022) =
* Changed to use a single display type - panel upgraded
* Changed display to include scraped images (needs basic selector created) and scraped h1 or title tag (no selector required)
* Made display panel look a lot nicer
* Fixed the Rimi bug - if is found in the elements matched by the CSS selector, the price inside sup will be added following a decimal price to the previous found price e.g. 25 99 other stuff becomes 25.99
* Fixed the regex scrapers so you can now scrape prices from anywhere on the page, including inside JSON objects
= 3.83 (17th March 2022) =
* Added translation files
= 3.82 (17th March 2022) =
* Fixed regex scrapers so that they do not escape characters
* Added localisation for front-end table display
* Changed default display type to panel
= 3.81 (25th February 2022) =
* Added support - many websites now use html tags to contain pennies. This means the decimal place is missing. Price Comparison Pro now correctly converts this to pennies.
= 3.80 (23rd February 2022) =
* Added Rocket Scrape third party scraper option as per user request from @Marius
* Added backtick CSS price concatenation operator - e.g. if a price you are scraping does not include any kind of decimal places, then you technically need two selectors. These are implemented with a backtick `. e.g. https://foundthru.com/scraping-prices-where-no-decimal-place-exists-in-the-html/
= 3.79 BETA (12th July 2021) =
* Updated HTML output to include pchiddenprice and pcprice - sorts by pchiddenprice (numeric, no currency symbols, holds cheapest of retail & sale price), displays pcprice
* Fixed panel and div sorting to use pchiddenprice - fixes sorting broken in last beta
* Added hidden sale price too - for when woo gets updated, it needs the retail and sale price in order to update woo
= 3.78 BETA (1st July 2021) =
* Refactored database price cache to include storage of retailprice and sale price in addition to price
* Refactored front-end display to always use Javascript to produce the data in the panel (so there's a single codepath for bugfixes and improvements)
* Added saleprice to price output if it's different to retail price and non-zero - retail price inside and sale price inside
* Added some basic CSS for strikethrough of price and grey colour
= 3.77 BETA (1st July 2021) =
* Added detection for 50p, 50c etc to be identified as 0.50 rather than £50
* Added prelimenary work for showing both SALE and REGULAR price with regular price inside with strikethrough applied
= 3.76 (April 2021) =
* Minor CSS styling improvements
= 3.75 (21st April 2020) =
* Fixed bug with missing configs for scraped domains - now it will correctly revert back to the default config if you have not specified a config
* Improved debug for product detail page in javascript console - https://www.wpintense.com/knowledgebase/how-to-debug-price-comparison-pro-scraper-issues-from-your-price-comparison-table/
* Added some checks against the domain in settings page since this is a common source of support questions - basically prevent people inserting https:// when they shouldn't
* Made a minor modification to the code that saves sale prices - had a report (https://www.wpintense.com/question/sale-price-and-regular-price-conflict/) that sale prices are not saving to the database
= 3.74 (30th September 2020) =
* Added new WPI Settings page where users can enter their license key to enable plugin updates
= 3.73 (30th June 2020) =
* Added new decimal separator config to websites so you can specify , or . as separators
* Specifically fixed bol.com who use a with an image as a decimal separator. This should work for other websites that do this too.
= 3.72 (20th August 2019) =
* Fixed DB update bug causing errors on activation
= 3.71 (27th July 2019) =
* Fixed warning message that was appearing since last update due to new displaystyle added to autowoo
= 3.70 (25th July 2019) =
* Added 'displaystyle' option to shortcode pricecomparisonpro_woocommerce so now you can have whatever style in your WooCommerce automatic price comparison (floatleft, floatright, panel, fullwidth)
* Removed warning message from initial empty setups if currency was not configured
= 3.69 (19th July 2019) =
* Changed default display to panel, except for automatic woocommerce summary which is defaulting to 'floatright'
= 3.68 (18th July 2019) =
* Fixed another bug related to , as thousands vs . as thousands separator
* Removed broken code to set 'out of stock' - will replace it with text search for relevant text to confirm out of stock OR 404 from URL
= 3.67 (30th May 2019) =
* Fixed bug causing £3,000 to be treated as £30.00
* Fixed Panel display not updating prices
* Fixed price ordering so it automatically orders on page load and so that panel ordering works again now
* Changed Last checked: text to use a span with class .lastchecked so you can override the text displayed using CSS
= 3.66 (6th May 2019) =
* Fixed admin debug and logging css when long URLs were present
* Added 'latest price' table for internal use
* Fixed outofstock bug where items were being incorrectly being marked out of stock even when prices from other in-stock merchants existed
* Fixed bug for some themes causing javascript to not correctly update price and affiliate link directly on the page
* Fixed bug with sorting results - out of stock items now correctly are placed at the bottom
* Fixed bug where price was not being updated on the page through JavaScript. It now correctly updates prices and affiliate links directly through JavaScript rather than requiring a page-refresh
= 3.65 (23rd March 2019) =
* Changed price check to > 0 instead of != 0 to avoid broken or out of stock items being marked as price 0
= 3.64 (21st March 2019) =
* Hardened the admin page so that you do not need to enter a price selector if you're only scraping images
= 3.62 (22nd February 2019) =
* Fixed bug with search comparison form required productname (now you don't)
= 3.61 (7th February 2019) =
* Fixed spinner on dynamic search widget so that if no items found it gets correctly set to 0 instead of remaining as a spinner
* Fixed price caching so on new page loads, it will avoid refetching prices from server (even if those were actually cached) according to cache age in settings - this speeds things up quite a bit
* Fixed Out of stock messages so out of stock correctly displayed.
* Added last-scraped-time - we have pricetime and scrapetime - this helps with times when a scrape occurs but a price is not actually found so pricetime could not be set properly
* Moved caching from transients into custom database table - paving the way for price history to come
* Fixed woocommerce update so it will mark items as out of stock - EVEN IF EXTERNAL/AFFILIATE IMAGE - this is now using a postmeta field
* To support new out of stock feature, price html is filtered - if a product becomes out of stock, the price gets a strike-through and then out of stock gets added
* Hardended code to prevent setting woocommerce prices to 0 when product is out of stock, correctly now sets parameter for out of stock (woocommerce doesn't allow stock control of affiliate products)
* Fixed manual refresh so it also updates woocommerce if configured and if needed
* DB structure for URLs altered slightly to support last price caching
* URLs properly decoded now so cache hits happen in all cases where prices are cached
= 3.60 (4th January 2019) =
* Added brand new 'dynamic search form widget'. Now it's possible to add a search form to your pages and allow your users to search through your affiliates
* Added scraperapi functionality to search widgets
* Improved localisation options for search widgets
* Improved price finder technology
* Added some other new options to search comparison settings page to configure websites
* Other additions related to 'search comparison widget' and 'dynamic search form'
= 3.53 (20th December 2018) =
* Fixed upgrade compatibility from really old version of Price Comparison Pro
= 3.52 (20th December 2018) =
* Fixed the 'search comparison' shortcode so it now correctly scrapes search results and displays them
= 3.50 (28th November 2018) =
* Major upgrade
* New background scraper capabilities added
* New debug and scraper fixing screens added
* New logging screen added to make it easy to see what's working and what's not
* New ability to bulk import product URLS from Datafeedr
* Added gallery scraping compatibility with External Images plugin
* Bulk website configuration capability added to help you get started
* ScraperAPI capability added - you can now scrape using your own server, with a proxy, through WPI scraping service (with or without proxy), or with Scraper API
= 3.14 (23rd May 2018) =
* Added new 'panel' layout
= 3.13 (17th May 2018) =
* Fixed currency issue involving , and . and > 10000
= 3.12 (12th March 2018) =
* Further fix for 'header' warning
= 3.11 (11th March 2018) =
* Fixed 'header' warning (being output too early) when using shortcode
* Fixed broken 'sale price' retrieval
* Fixed duplicate URL problem where prices would sometimes appear twice in price panel
* Improved performance of saving prices, only ever saves now when it really needs to
= 3.10 (10th February 2018) =
* Fixed broken skimlinksid
= 3.09 (18th December 2017) =
* Fixed bug related to empty prices setting WooCommerce price to zero
= 3.08 (30th November 2017) =
* Fixed bug that caused woocommerce price update to happen multiple times
* Fixed bug that caused 'related products' to adopt price of updated WooCommerce price
= 3.07 =
* Fixed bug that caused widget to multiply when the woocommerce shortcode was added multiple times
* Fixed bug that caused a 'manual price refresh' to update all prices for that domain when there were multiple widgets on the page
* Fixed shortcode to return HTML rather than echo it - this should improve display in many themes significantly
* Added 3 styles to shortcode to allow user to display floatright, floatleft or fullwidth
= 3.06 =
* Fixed bug for updating woocommerce prices that occurred on initial page load
* Improved detection of currency locale to fix prices with commas and decimals
= 3.05 =
* Prevent Price Comparison Pro widget showing when only the 1 URL to compare
* Fix 'scrape type' saving bug per-website for price comparison pro widget
* Allow attempts at scraping even if no domain set up for the website
* Fixed cookies config
* Fixed 3 decimal places bug
= 3.04 =
* Added currency per website for search comparison
* Added currency per website for price comparison
* Fixed price search for search comparison to use pattern matching rather than CSS
* Made admin screens fit inside 1280 screen width
* Added help instructions to admin screen for search comparison
* Removed debug from search comparison admin screen
* Added scrape type to price comparison (was previously only on search comparison)
* Removed generic currency symbol, position and scrape type (now per website)
= 3.03 =
* Fixed occasional ajax error caused by large HTML pages that caused 502 gateway (headers too large) error
* Fixed error caused by XMLPath returning elements in Document order rather than 'selector' precedence order