* Fix - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Fix PHP warning about headers already sent.
* Fix - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Improve compatibility with Add-ons plugin.
* Fix - PRICES & CURRENCIES - Offer Your Price - Check if `$_product` really exists on `offer_price()`.
* Fix - PRICES & CURRENCIES - Replace `woocommerce_before_main_content` hook by `wp_footer` for adding the form on frontend as some themes don't use the original hook.
* Fix - PRODUCTS - Add to Cart - Fix compatibility between Order Min/Max Quantities and radio buttons for variations.
* Fix - CART & CHECKOUT - Checkout Custom Fields - Fix some special characters (e.g Russian) being wiped out on checkout by using `urldecode()`.
* Fix - CART & CHECKOUT - Checkout Custom Fields - Display field value instead of key when using radio or select as fields.
* Fix - CART & CHECKOUT - EU VAT Number - Default EU VAT number value on the checkout page fixed.
* Fix - PAYMENT GATEWAYS - Gateways Currency Converter - Replace commas by periods on `change_price_by_gateway()` avoiding wrong calculations.
* Fix - PDF INVOICING & PACKING SLIPS - Check if TCPDF class exists before loading it, avoiding possible errors with other plugins.
* Fix - PDF INVOICING & PACKING SLIPS - Fix Too many redirects when using Generate Invoice from Bulk actions.
* Fix - PDF INVOICING & PACKING SLIPS - Fix "Failed to load PDF document" in some environments by putting the pdf inside buffer instead of displaying it directly.
* Fix - Functions - Admin - Make `wcj_get_settings_as_multiselect_or_text()` compatible with `wcj_get_ajax_settings()`.
* Fix - Functions - Booster Core - `wcj_is_module_enabled()` - Checking if it is a REST API call before requiring `pluggable.php`.
* Fix - Functions - Exchange Rates - Fix 'Division by zero' PHP warning.
* Fix - Functions - Exchange Rates - Ignore warnings from `simplexml_load_file()` depending on WP_DEBUG constant.
* Fix - Functions - General - `wcj_session_maybe_start()` Improve session detection method.
* Dev - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Add compatibility with Smart Coupons plugin.
* Dev - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Add compatibility with WooCommerce Price Filter widget.
* Dev - PRICES & CURRENCIES - Wholesale Price - Add ajax search to Product fields.
* Dev - PRODUCTS - Add to Cart - Add radio inputs template using `woocommerce_before_variations_form` hook instead of replacing the entire add-to-cart/variable.php.
* Dev - PRODUCTS - Add to Cart - Change radio buttons for variations mechanism. Now the native WooCommerce dropdown for variations will be on DOM but hidden. That will make some js functions unnecessary like `maybe_hide_unavailable()`.
* Dev - PRODUCTS - Add to Cart - Add attributes label on top of the radio inputs table.
* Dev - PRODUCTS - Bookings - Add loader on frontend while ajax is loading.
* Dev - PRODUCTS - Bookings - Add bookings price beneath dates table instead of replacing prices avoiding possible duplicated prices.
* Dev - PRODUCTS - Bookings - Add new option to enable/disable the variable product calculation per day.
* Dev - PRODUCTS - Product Images - Add options to control the callback and priority from some hooks.
* Dev - PRODUCTS - Product Info Settings - Add ajax search to Product fields.
* Dev - PRODUCTS - Product Input Fields - Add ajax search to Product fields.
* Dev - PRODUCTS - Sorting - Add new option to restore default WooCommerce Sorting on Avada theme.
* Dev - SHIPPING & ORDERS - Left to Free Shipping - Info on Checkout - "Order review: Before shipping" and "Order review: After shipping" positions added.
* Dev - SHIPPING & ORDERS - Shipping Methods by Min/Max Order Quantity - Initial module release.
* Dev - PDF INVOICING & PACKING SLIPS - Update WordPress filters used to create bulk actions.
* Dev - PDF INVOICING & PACKING SLIPS - Add security check `check_admin_referer( 'bulk-posts' )` on `bulk_actions_handle()`.
* Dev - PDF INVOICING & PACKING SLIPS - Tools - Invoices Report - `wcj_pdf_invoicing_report_tool_row` filter added.
* Dev - EMAILS & MISC. - My Account - "Custom Menu Pages" section added.
* Dev - Functions - Admin - Add `wcj_get_ajax_settings()` making it possible to search products and categories by ajax.
* Dev - Functions - General - Add option to include `read_and_close` parameter to `session_start`.
* Dev - Functions - General - Sanitize IP Detection methods on `wcj_get_the_ip()`.
* Dev - Functions - General - Add option to increase control over IP Detection methods.
* Dev - Booster Module - `maybe_fix_settings()` adds 'wc-enhanced-select' class only if 'remove_class' parameter is not present.
* Dev - Shortcodes - General - `[wcj_country_select_drop_down_list]` shortcode will be hidden if Prices and Currencies by Country module is not enabled, unless parameter `force_display` have been passed as `true`.
* Feature - PRICES & CURRENCIES - Offer Your Price - Enable - "Enable per product and per product category" option added.
* Feature - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - "Advanced: Multicurrency (Currency Switcher) Module" option added (i.e. "Allow price entering in switched currency").
* Feature - SHIPPING & ORDERS - Maximum Products per User - "Block Add to Cart" option added.
* Feature - SHIPPING & ORDERS - Order Min/Max Quantities - General Options - "Decimal Quantities" option added.
* Feature - SHIPPING & ORDERS - Order Min/Max Quantities - General Options - "Force Initial Quantity on Single Product Page" option added.
* Feature - SHIPPING & ORDERS - Order Min/Max Quantities - Quantity Step Options - "Additional Validation" and "Message" options added.
* Fix - PRICES & CURRENCIES - Product Price by Formula - Fix final price preview on metabox if 'Disable Admin Scope' option is disabled.
* Fix - BUTTON & PRICE LABELS - Add to Cart Button Labels - Per Product Type Labels - Fix a possible error when `global $product` is set as a String.
* Fix - PRODUCTS - Product Addons - Replace ajax content by price instead of html avoiding duplicated content.
* Fix - PRODUCTS - Product Input Fields - Fix `$item->legacy_values` temporary solution using `woocommerce_checkout_create_order_line_item` hook.
* Fix - PRODUCTS - Product Input Fields - Fix warning related to YITH Request a Quote plugin.
* Fix - PRODUCTS - Product Tabs - Get tabs title correctly when using WPML plugin.
* Fix - CART & CHECKOUT - Checkout Custom Fields - Fix "Include Categories" option from interrupting other checkings.
* Fix - SHIPPING & ORDERS - Order Min/Max Quantities - Sync quantity input with add to cart button quantity attribute even on infinite scrolling.
* Fix - SHIPPING & ORDERS - Order Min/Max Quantities - "Per Item Quantity on Per Product Basis" checkboxes fixed.
* Fix - SHIPPING & ORDERS - Order Numbers - Fix Order Admin Search by Custom Number.
* Fix - SHIPPING & ORDERS - Shipping Methods by Products - Using `continue` in `switch` fixed.
* Fix - PDF INVOICING & PACKING SLIPS - Page Settings - Set margin bottom as 10 by default.
* Dev - PRODUCTS - Product Input Fields - Minor code refactoring.
* Dev - PRODUCTS - Product Input Fields - Minor admin settings descriptions update.
* Dev - PRODUCTS - Product Input Fields - Add Compatibility with YITH Request a Quote plugin.
* Dev - CART & CHECKOUT - Checkout Files Upload - Form Template Options - Field - Default value updated (`max-width:50vw;` added).
* Dev - PAYMENT GATEWAYS - Gateways Currency Converter - Minor admin settings descriptions update.
* Dev - PDF INVOICING & PACKING SLIPS - TCPDF library updated (from v6.2.13 to v6.2.26).
* Dev - PDF INVOICING & PACKING SLIPS - FPDI library updated (from v2.0.0 to v2.1.1).
* Dev - Functions - HTML - `wcj_get_table_html()` - Add `wcj-row-even`, `wcj-row-odd` for even and odd row classes and `wcj-row1` and so on for each row number.
* Dev - Functions - Price and Currency - Add `wc_get_variable_product_purchase_price()` function to get purchase price from variable products.
* Dev - Functions - Users - Add current user role to `wcj_get_user_roles()`.
* Dev - Shortcodes - Orders - `[wcj_order_products_terms]` shortcode added.
* Dev - Shortcodes - Products - `[wcj_product_purchase_price]` - Get min purchase price from variable product by default instead of zero.
* Dev - Shortcodes - Products - `[wcj_product_purchase_price]` - `search` parameter added for variable products. Possible values are: `min_variation`, `max_variation`, `all_variations`, `min_max_variations`.
* Dev - Shortcodes - Products - `[wcj_product_purchase_price]` - `format` parameter added to return purchase prices of variable products as html or raw. Possible values are: `yes`, `no`.
* Feature - CART & CHECKOUT - Checkout Customization - Add option to recalculate checkout.
* Feature - CART & CHECKOUT - Checkout Customization - Add option to update checkout when some field have its value changed.
* Feature - PAYMENT GATEWAYS - Gateways per Product or Category - "Use Variations" option added.
* Feature - SHIPPING & ORDERS - Maximum Products per User - "Order Status" option added.
* Feature - EMAILS & MISC. - Admin Tools - Products Options - "JSON Product Search Limit" option added.
* Feature - Shortcodes - General - `[wcj_post_meta_sum]` shortcode added.
* Fix - PRICES & CURRENCIES - Price Formats - Current currency issue fixed (e.g. price format on admin order edit page).
* Fix - PRICES & CURRENCIES - Product Price by Formula - Fix shortcodes as parameters miscalculating price on cart by adding `product_id` attribute on shortcodes.
* Fix - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - Empty price issue fixed.
* Fix - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - "Multicurrency (Currency Switcher)" module support added.
* Fix - PRODUCTS - Product Images - `product_images_hide_on_archive()` - Issue with replacing single product's image with custom HTML on archives fixed.
* Fix - PRODUCTS - Product Input Fields - Fix multiple uploads generating a single file by renaming them uniquely.
* Fix - PRODUCTS - Product MSRP - Comma decimal separator issue fixed.
* Fix - PRODUCTS - Related Products - Relate Manually - Fix warning if there aren't any products selected.
* Fix - CART & CHECKOUT - Checkout Custom Fields - Hidden fields are not added to order meta now (i.e. not showing hidden fields on thank you page and in emails now).
* Fix - PAYMENT GATEWAYS - Gateways Fees and Discounts - `init_options()` is now initialized on `init` hook for better translation and performance.
* Fix - SHIPPING & ORDERS - Order Min/Max Quantities - Fix quantity attribute of add to cart button on loop pages.
* Fix - SHIPPING & ORDERS - Order Minimum Amount - Add compatibility with Price by country module.
* Fix - PDF INVOICING & PACKING SLIPS - Bulk actions - "Undefined variable: sendback" PHP notice fixed.
* Fix - PDF INVOICING & PACKING SLIPS - Possible deprecated `each()` PHP notice fixed (compatibility with PHP v7.2.0).
* Fix - EMAILS & MISC. - Admin Bar - Page reload added after "Enable Module" checkbox is enabled (so admin bar is shown at once).
* Fix - EMAILS & MISC. - Custom Emails - `$_GET['order_id']` param added (fixes the issue with bulk status update emails on some servers).
* Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - Message on Price too Small / too Big - `%price%`, `%min_price%` and `%max_price%` replaced values added.
* Dev - PRICES & CURRENCIES - Wholesale Price - "Advanced: Price Filters Priority" option added.
* Dev - PRICES & CURRENCIES - Product Price by Formula - Add option to use the module on admin scope.
* Dev - PRODUCTS - Product Images - `wcj_product_images_loop_product_thumbnail_filter`, `wcj_product_images_loop_product_thumbnail_filter_priority`, `wcj_product_images_single_product_images_filter` and `wcj_product_images_single_product_images_filter_priority` filters added.
* Dev - PRODUCTS - Tax Display - Add shop scope on display by user role option.
* Dev - PRODUCTS - Products per Page - Add compatibility with DIVI theme.
* Dev - PRODUCTS - Related Products - Relate Manually - Add new option to set the related products metabox value by default.
* Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Shortcodes are now processed in fee titles.
* Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Add new option to include taxes when calculating total cart amount.
* Dev - SHIPPING & ORDERS - Order Min/Max Quantities - Sync quantity button with add to cart button quantity.
* Dev - SHIPPING & ORDERS - Order Min/Max Quantities - Prevent add to cart button on shop pages from being clicked if input requirements haven't been met.
* Dev - EMAILS & MISC. - Admin Bar - "WooCommerce" Admin Bar - "List product categories" and "List product tags" options added.
* Dev - EMAILS & MISC. - Admin Tools - "Products Attributes" tool and "Product Revisions" option moved from "General" module.
* Dev - EMAILS & MISC. - Admin Tools - Module description updated. Admin settings restyled and descriptions updated. "Show extended info" link added.
* Dev - EMAILS & MISC. - Debug Tools - Initial module release (tools moved from "Admin Tools" module). Admin settings descriptions updated. Log restyled.
* Dev - EMAILS & MISC. - General - "PHP Options" options moved from "Admin Tools" module.
* Dev - EMAILS & MISC. - General - Module description updated. Admin settings descriptions updated.
* Dev - Functions - Products - `wcj_get_products()` - Code optimized.
* Dev - Shortcodes - Orders - `[wcj_order_total_in_words]` - `whole` attribute now automatically gets order currency symbol or currency code (set by `use_currency_symbol` attribute) (instead of `Dollars`). `decimal` attribute set to `¢` (instead of `Cents`).
* Dev - Shortcodes - Products - `[wcj_product_you_save_percent]` - Add compatibility with "Dynamic Pricing" plugin.
* Dev - Shortcodes - Products Crowdfunding - `get_product_orders_data()` - `start_date` and `order_status` optional attributes added.
* Dev - Shortcodes - Products Crowdfunding - `get_product_orders_data()` - Code cleaned up.
* Dev - Classes - `WCJ_Module_Product_By_Condition` - `pre_get_posts` - WP_Query optimized (`post__not_in` added).