=== Reloadify  ===
Contributors: Modern Media Hub, Tussendoor
Donate link: https://modernmediahub.nl/websiteswordpress/
Tags: modernmediahub, reloadify
Requires at least: 5.9
Tested up to: 6.7
Stable tag: 1.10.0
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Reloadify synchroniseert moeiteloos alle gegevens van je Woocommerce webshop met de Reloadify software. Volledig realtime.

== Description ==

Reloadify synchronises data from your WooCommerce webshop effortlessly with the Reloadify software by extending the WooCommerce Rest API. Completely real-time.

== Frequently Asked Questions ==

= Does this plugin get support =

Absolutely! In fact if you have a question please send them to <info@reloadify.nl>.

== Changelog ==

= 1.10.0 =

HPOS feature flag 

= 1.9.1 =

* Maintenance: Version bump to 1.9.1.

= 1.9.0 =

* Enhanced: Full compatibility with WooCommerce High-Performance Order Storage (HPOS). The plugin now properly detects HPOS, retrieves metadata from HPOS tables, and ensures seamless cart recovery regardless of whether HPOS is enabled.
* Added: Improved error handling for HPOS-related issues with clear admin notices and logging.
* Fixed: Changed database column type for product_data from VARCHAR(255) to TEXT to accommodate larger data sets, especially when using custom product options from plugins like WooCommerce Product Add-Ons.
* Improved: Enhanced database update mechanism to ensure existing installations properly update their database structure.


= 1.9.0 =

* Enhanced: Full compatibility with WooCommerce High-Performance Order Storage (HPOS). The plugin now properly detects HPOS, retrieves metadata from HPOS tables, and ensures seamless cart recovery regardless of whether HPOS is enabled.
* Added: Improved error handling for HPOS-related issues with clear admin notices and logging.
* Fixed: Changed database column type for product_data from VARCHAR(255) to TEXT to accommodate larger data sets, especially when using custom product options from plugins like WooCommerce Product Add-Ons.
* Improved: Enhanced database update mechanism to ensure existing installations properly update their database structure.

= 1.8.8 =

Additional scoping fixes

= 1.8.7 =

Migrate by default under v1.8.6

= 1.8.6 =

Attempted fix

= 1.8.5 =

Add bugfix for the migration

= 1.8.4 =

Bugfix in migration

= 1.8.4 =

Add edge case support for deleted tables.

= 1.8.3 =

Resolve executing migrate function upon first plugin run.

= 1.8.2 =

Adapt default db collation

= 1.8.1 =

Downgrade dbal/doctrine.

= 1.8.0 =

Add additional scoped packages to resolve conflicts

= 1.7.0 =

Fix phpscoper

= 1.6.2 =

Fix scoper implementation

= 1.6.1 =

Add vendor folder to release

= 1.6.0 =

Update way of phpscoper implementation

= 1.5.8 =

Implement PHPScoper support
= 1.5.8 =
* Implement PHPScoper support

= 1.5.7 =

Add automated updates
= Version 1.5.6 =
* Add polylang support for the plugin.

= Version 1.5.5 =
* Implemented the Jetpack autoloader from Automattic - a strategic choice for dependency management. This tool is the standard among major WordPress plugins like JetPack and WooCommerce, which are used on millions of sites globally. Our decision leans on its widespread adoption and maintenance by Automattic, the leading force behind WordPress itself. This ensures compatibility and reduces potential conflicts across commonly used plugins. Other plugins not using this method should consider adapting to maintain coherence in the WordPress ecosystem.

= 1.5.4 =
* Added: We introduced a check for a database version in the wp_options table (option: reloadify_plugin_db_version) before trying to migrate, this ensures we are not endlessly trying to run our db updates. Hook for triggering the updateDatabase function was also changed to admin_init instead of init to prevent it from running on the frontend and we also check for permissions/AJAX requests.
* Improved: We no longer drop Reloadify's database tables without explicit user consent, which in some scenarios was causing a bad user experience when trying to recover your cart.
* Added: We are now storing the users location data entered in woocommerce checkout and setting it again upon recovering the cart. This should make tax and shipping calculations more accurate.

= 1.5.3 =
* Deprecated: `getFormattedCartTotalPrice` method in favor of enhanced tax handling. This change addresses Reloadify's request for tax-inclusive cart total calculations to improve data accuracy and consistency in API displays.
* Introduced: `getCartTotalPriceIncludingTaxes` as a direct response to Reloadify's specific requirement for storing and displaying cart totals with taxes in the API. This new method ensures cart totals are calculated and returned as floats, including all applicable taxes, suitable for both backend processing and API display purposes.
* Added: Runtime deprecation warning for getFormattedCartTotalPrice usage to alert developers during development and testing phases. This warning aims to facilitate a smooth transition to the new method and prevent potential issues in future releases.

= 1.5.2 =
* Improved: Added null checks and enhanced logging in `handleSuccessfulOrderPlacement` to ensure robust session handling. This update addresses potential edge cases where the WooCommerce session might not be initialized, such as during cron jobs, WP-CLI commands, early hook invocations, or due to custom session handling or conflicts. These improvements are designed to prevent errors in these rare scenarios and provide detailed logging for easier debugging and troubleshooting. This proactive measure enhances the plugin's stability and reliability across various operational contexts.

= 1.5.1 =
* Improved: Added null check for cart relationship in `updateCreateCartMeta` method to prevent errors when attempting to update the cart's timestamp. Now logs a warning for further investigation if the cart object is null, ensuring more robust handling of cart meta updates. This change addresses potential issues identified with cart meta data handling and enhances plugin stability.
* New Maintainer & Dev: Floris Boers from modernmediahub.com


= 1.5.0 =
* Added: English translations for Dutch strings.
* Added: Endpoint to retrieve Reloadify plugin info including filters to specify data to retrieve.
* Added: Settings tab in the WooCommerce settings to configure new plugin settings.
* Added: Manageable checkbox in the cart/checkout depending on the settings.
* Fixed: Checkbox label could be saved as empty in our settings tab.
* Fixed: When the checkbox is added to the cart the consent will now also be saved to the order- & usermeta.

= 1.4.1 =
* Fixed: When no WooCommerce session is present we initialize it when we need it.
* Fixed: When using the "after" paramter the given timezone is parsed correctly.

= 1.4.0 =
* Added: Admin bar nodes for admin recovery information and tools.
* Changed: Carts recovered by admins now won't be updated by the admin user.
* Fixed: We now update the cart updated_at timestamp when the metadata is updated.
* Fixed: Recovered carts can now be updated without the need of a page refresh.

= 1.3.0 =
* Update: Added compatibility with the WooCommerce HPOS update.
* Update: Save WooCommerce abandoned carts immediately after the cart is updated. We add metadata later.
* Update: We now save each meta data entry individually.
* Update: We stopped removing abandoned carts when the user made an order. This is handled by Reloadify now.
* Update: Added new database column "created_at_gmt". The existing "created_at" column depends on the timezone of the server. This new column is always in GMT.

= 1.2.0 =
* Update: Bumped PHP compatibility to at least 8.2

= 1.1.5 =
* Bugfix: A cart hash could be non-unique and therefore the abandoned cart too. We now use a customer unique ID. Logged in users can only have one abandoned cart this way. For non-logged-in users we now use the email as well to find existing abandoned carts.
* Improved: We do not want to save abandoned carts if the action was fired from the admin.
* Bumped "tested up to" version for WooCommerce.

= 1.1.4 =
* Update: By default only check the WPML laguage and return this. Old functionality can be used with a new parameter in the method.
* Bumped "tested up to" version.

= 1.1.3 =
* Bugfix: We called the WC session when it could be empty. This resulted in memory leaks.

= 1.1.2 =
* Bugfix: Fixed compatibility issue with PHP 7.4 and union types.

= 1.1.1 =
* Update: Added the compatibility of PHP 7.4 to the readme files

= 1.1.0 =
* Update: Plugin is now PHP 7.4 compatible

= 1.0.6 =
* Bugfix: Changed database columntype to string for product_ids and product_data

= 1.0.5 =
* Update: Removed necessary first- and lastname values. Only email is needed to make an abandoned cart entry.

= 1.0.4 =
* Update: Changed database columntype to JSON for product_ids and product_data
* Bugfix: Return array while getting the product_ids instead of a string
* Bugfix: Only search for data of the logged in user as the last resort. First look at the WC Session.

= 1.0.3 =
* Update: Added meta data to the response.
* Update: Return product ID's as an array.

= 1.0.2 =
* Update: Added new toplevel filter based on the parameter "after". Will trigger a filter based on "created_at > $value".

= 1.0.1 =
* Bugfix: Notices were not shown when products were out of stock or out of quantity.
* Bugfix: Currency was not read and saved properly. We now save abbreviations.
* Update: Add default pagination and give possibility to overwrite this in the WP_REST_Request

= 1.0.0 =
* Initial release

== Upgrade Notice ==
= 1.1.3 =
Bug fixed to prevent Fatal errors and reduce memory leaks

= 1.1.2 =
Bug fixed to be PHP 7.4 compatible

= 1.1.0 =
PHP 7.4 compatible

= 1.0.2 =
Toplevel parameter "after" is available and will trigger a filter based on "created_at > $value".

= 1.0.1 =
Required update. Otherwise users will not know why the cart is empty after following the abandoned cart URL.

= 1.0.0 =
Try it out and connect the Reloadify software with your WooComerce shop!
