= 3.9.1 - 06/09/2018 =
* Fix - Shortcodes - General - `[wcj_cross_sell_display]` - Returning the result instead of echoing.
* Fix - Shortcodes - General - `[wcj_cross_sell_display]` - Additional checks added for `WC()->cart` to exist before executing the shortcode's code.
* Dev - PRODUCTS - Product Input Fields - "Strip slashes" option added.
* Dev - Translations - Files updated: `az`, `es_ES`, `fr_FR`, `is_IS`, `it_IT`, `ja`, `nl_NL`, `pt_BR`, `ro_RO`, `ru_RU`, `sv_SE`.
* Dev - Translations - New files added: `cs_CZ`, `el`.
= 3.9.0 - 05/09/2018 =
* Feature - PRICES & CURRENCIES - Currencies - Shortcodes (e.g. `[wcj_wpml]`) can now be used in currency symbol fields.
* Feature - PRICES & CURRENCIES - Currency Exchange Rates - Exchange Rates Server - "The Free Currency Converter API" server added.
* Feature - BUTTON & PRICE LABELS - Add to Cart Button Labels - Per Product Type - "Products not in stock" option added.
* Feature - PRODUCTS - Cross-sells - "Exclude Not in Stock Products" option added.
* Feature - PRODUCTS - Cross-sells - "Replace Cart Products with Cross-sells" option added.
* Feature - PRODUCTS - Product Images - Placeholder Image - "Custom Placeholder Image URL" option added.
* Feature - SHIPPING & ORDERS - Custom Shipping - Shortcodes can now be used in "Cost" field (e.g.: `[wcj_shipping_costs_table]`).
* Feature - PDF INVOICING & PACKING SLIPS - Advanced - Add PDF Invoices Meta Box to Admin Edit Order Page - Editable date added.
* Feature - EMAILS & MISC. - Email Verification - "Redirect User After Successful Verification to Custom URL" option added.
* Feature - EMAILS & MISC. - Reports - Stock - "product type" option added.
* Feature - EMAILS & MISC. - Reports - Stock - "Include deleted products" option added.
* Feature - EMAILS & MISC. - Template Editor - Initial module release.
* Fix - PRICES & CURRENCIES - Currency Exchange Rates - Discontinued servers (Yahoo, Google, Fixer) removed.
* Fix - BUTTON & PRICE LABELS - Add to Cart Button Labels - Per Product Type - Products with empty price - Default value fixed.
* Fix - PRODUCTS - Cost of Goods - Products List Columns - Variable products fixed in both ("Profit" and "Cost") columns.
* Fix - PRODUCTS - Cost of Goods - Products List Columns - Profit - Checking for price to be `is_numeric()`.
* Fix - PRODUCTS - Product Addons - `maybe_convert_currency()` - "Global Discount" module conversion added.
* Fix - PRODUCTS - Product by Condition - `pre_get_posts()` - Additional checks added (to prevent possible "Call to undefined function is_user_logged_in() ..." error).
* Fix - PRODUCTS - Products XML Feeds - `html_entity_decode()` added to XML header and footer.
* Fix - PRODUCTS - Related Products - Relate Manually - Hiding related products for current product (i.e. if enabled and no products selected) fixed.
* Fix - CART & CHECKOUT - Checkout Fees - "Checkout Field" option fixed.
* Fix - SHIPPING & ORDERS - Admin Orders List - Additional checks for `wp_get_current_user()` function to exist added (`wcj_current_user_can()` function added).
* Fix - EMAILS & MISC. - Email Verification - "Login User After Successful Verification" admin description fixed.
* Fix - EMAILS & MISC. - Email Verification - "Message - Resend" default value fixed.
* Fix - EMAILS & MISC. - Email Verification - "Message - Failed (no user ID)" option added.
* Fix - EMAILS & MISC. - Reports - Stock - `is_numeric()` checks added.
* Fix - EMAILS & MISC. - Reports - Stock - "Last sale" column fixed.
* Fix - EMAILS & MISC. - User Tracking - Fatal error on "Update now" button fixed.
* Fix - Core - `WCJ_Module` - `save_meta_box()` - `delete_post_meta()` added.
* Fix - Functions - Country - `wcj_get_country_by_ip()` - Additional checks added (to prevent possible "Call to undefined function wc_format_country_state_string() ..." error).
* Fix - Functions - Exchange Rates - Average exchange rates function fixed (used in "Booster: Monthly Sales (with Currency Conversion)" report).
* Fix - Functions - General - `wcj_wrap_in_wc_email_template()` - `{site_title}` in footer replaced with blog name.
* Dev - PRICES & CURRENCIES - Bulk Price Converter - `WP_Query` optimized to return `ids` only.
* Dev - PRICES & CURRENCIES - Bulk Price Converter - Tool restyled. "Pretty prices threshold" option description added.
* Dev - PRICES & CURRENCIES - Currencies - Major code refactoring and optimization.
* Dev - PRICES & CURRENCIES - Global Discount - Advanced Settings - "Price Filters Priority" option added.
* Dev - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Revert Currency to Shop's Default - "Revert on cart page only" and "Revert on both cart & checkout pages" options added.
* Dev - PRICES & CURRENCIES - Multicurrency Product Base Price - Advanced Settings - "Price Filters Priority" option added.
* Dev - PRICES & CURRENCIES - Prices and Currencies by Country - Autogenerate Groups - Cleaned up; restyled; Yahoo exchange rates server related buttons removed; "PayPal supported currencies only" button added.
* Dev - PRICES & CURRENCIES - Product Price by Formula - Advanced Settings - "Price Filters Priority" option added.
* Dev - PRICES & CURRENCIES - Wholesale Price - Discount Info on Cart Page - `%original_price%` replaced value added.
* Dev - PRICES & CURRENCIES - Wholesale Price - Admin settings restyled.
* Dev - BUTTON & PRICE LABELS - Add to Cart Button Labels - Admin settings restyled.
* Dev - PRODUCTS - Add to Cart Button Visibility - All Products - "Advanced: Method" options added.
* Dev - PRODUCTS - Product Addons - Advanced Settings - Apply Price Filter - "... modules to apply ..." option added.
* Dev - PRODUCTS - Product Addons - Advanced Settings - "Price Filters Priority" option added.
* Dev - PRODUCTS - Related Products - Relate Manually - "Select box type" option added.
* Dev - CART & CHECKOUT - Checkout Files Upload - Advanced Options - "Notice Type" option added.
* Dev - PAYMENT GATEWAYS - Gateways by Country, State or Postcode - Trying to get customer country and state from `$_REQUEST` first (before accessing `WC()->customer`). Postcode code part rewritten.
* Dev - PAYMENT GATEWAYS - Gateways Currency Converter - "Advanced: Fix Chosen Payment Method" option added.
* Dev - PAYMENT GATEWAYS - Gateways Currency Converter - Code refactoring (`get_chosen_payment_method()` function added; `global $woocommerce` replaced with `WC()`).
* Dev - SHIPPING & ORDERS - Custom Shipping - Admin settings restyled.
* Dev - SHIPPING & ORDERS - Left to Free Shipping - Info on Checkout - Position - New positions added.
* Dev - SHIPPING & ORDERS - Shipping Methods by Products - Minor code changes.
* Dev - EMAILS & MISC. - Admin Bar - "Booster: Active" admin bar can now be added without adding "Booster" admin bar.
* Dev - EMAILS & MISC. - Custom Emails - Code cleaned up and refactored.
* Dev - EMAILS & MISC. - Email Verification - Admin settings restyled. Code refactored.
* Dev - EMAILS & MISC. - Reports - Admin settings restyled.
* Dev - Functions - Price and Currency - `wcj_get_woocommerce_currencies_and_symbols()` function added. `wcj_get_currency_symbol()`, `wcj_get_currencies_names_and_symbols()` and `wcj_get_currencies_array()` functions removed. Affected modules: "Currency Exchange Rates", "Admin Orders List", "Currency for External Products", "Currency per Product", "Multicurrency Product Base Price", "Multicurrency (Currency Switcher)", "Gateways by Currency", "Gateways Currency Converter", "Prices and Currencies by Country", "Price Formats", "Orders", "Currencies".
* Dev - Shortcodes - General - `[wcj_get_option]` shortcode added.
* Dev - Shortcodes - General - `[wcj_image]` shortcode added.
* Dev - Shortcodes - General - `[wcj_shipping_costs_table]` shortcode added.
* Dev - Shortcodes - Orders - `[wcj_order_items_meta]` - `sep` attribute added.
* Dev - Shortcodes - Orders - `[wcj_order_products_meta]` shortcode added.
* Dev - Shortcodes - Products - `[wcj_product_price]` - `min_or_max` attribute added (for variable products).
* Dev - Settings - Shipping by Condition - Code optimized.
* Dev - Unnecessary `woocommerce_currency_symbol` hooks removed (affected modules: "Prices and Currencies by Country", "Currency for External Products", "Multicurrency (Currency Switcher)", "Currency per Product", "Gateways Currency Converter").
* Dev - Code cleaned up.
* Feature - PRICES & CURRENCIES - Global Discount - "Final Correction" options added.
* Feature - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Multicurrency on per Product Basis - "Add option to make empty price" options added.
* Feature - PRICES & CURRENCIES - Offer Your Price - "Advanced: Custom Position(s)" options added.
* Feature - CART & CHECKOUT - Checkout Custom Fields - "Description" options added.
* Feature - CART & CHECKOUT - Checkout Fees - "Checkout Field" options added.
* Feature - CART & CHECKOUT - Checkout Files Upload - "Send Additional Email to Admin on User Actions" options added.
* Feature - CART & CHECKOUT - Checkout Files Upload - "Order Template Options" and "Email Template Options" subsections added.
* Feature - EMAILS & MISC. - Booster WPML - "Automatically Regenerate", "Modules to Skip" and "Option IDs to Skip" options added.
* Feature - EMAILS & MISC. - My Account - "Customize Menu & Endpoints" options added.
* Feature - EMAILS & MISC. - My Account - "Dashboard Customization" options added.
* Fix - PRICES & CURRENCIES - Global Discount - Empty price bug fixed.
* Fix - PRICES & CURRENCIES - Wholesale Price - "Advanced: Price Changes" option added.
* Fix - PRODUCTS - Add to Cart - Open External Products on Add to Cart in New Window - Enable on Single Product Pages - Fixed for WC >= v3.4.0.
* Fix - PRODUCTS - Product Addons - Not outputting "before" and "after" templates for cart & order details table info, in case if no addons info was added.
* Fix - PRODUCTS - Products per Page - XSS vulnerability fixed (`esc_url()` added).
* Fix - CART & CHECKOUT - Checkout Customization - Disable Fields on Checkout for Logged Users - Empty value fixed for "Fields to Disable" option.
* Fix - SHIPPING & ORDERS - Left to Free Shipping - `is_array()` check added to the `wcj_get_left_to_free_shipping()` function.
* Fix - Functions - Products - `wcj_get_product_display_price()` - Extra checks for valid `$_product` added.
* Fix - Dashboard - Manage Settings - UTF-8 BOM sequence removal added on "Import". Unnecessary HTTP headers removed on "Export".
* Dev - PRICES & CURRENCIES - Prices and Currencies by Country - "Advanced: User IP Detection Method" option added.
* Dev - PRICES & CURRENCIES - Prices and Currencies by Country - Speed optimized (`$this->customer_country_by_ip` and `$this->customer_country_group_id` added).
* Dev - PRICES & CURRENCIES - Price based on User Role - Admin Settings - Minor update in settings descriptions.
* Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - "Advanced: Check for Outputted Data" option added.
* Dev - PRODUCTS - Bookings - "Advanced: Check for Outputted Data" option added.
* Dev - PRODUCTS - Product Addons - "Advanced: Check for Outputted Data" option added.
* Dev - PRODUCTS - Product Input Fields - Advanced Options - "Check for Outputted Data" option added.
* Dev - PRODUCTS - Product MSRP - In case if variations prices are equal, taking first variation's MSRP.
* Dev - PRODUCTS - Products per Page - "Saving Method" option added.
* Dev - PRODUCTS - Products per Page - Code refactoring.
* Dev - CART & CHECKOUT - Checkout Customization - Disable Fields on Checkout for Logged Users - Admin Settings - Minor restyling.
* Dev - CART & CHECKOUT - Checkout Custom Fields - "Textarea Field Values" and "Textarea Line Breaks" options added.
* Dev - CART & CHECKOUT - Checkout Files Upload - `wcj_checkout_files_upload` filter - `remove_file` - File name parameter added.
* Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Code refactoring - Standalone options replaced with options arrays.
* Dev - SHIPPING & ORDERS - Custom Shipping - `wcj_custom_shipping_do_add_table_rows` filter added.
* Dev - PDF INVOICING & PACKING SLIPS - Advanced - "Disable Saving PDFs in Temp Directory" option moved from "General" module.
* Dev - PDF INVOICING & PACKING SLIPS - Email Options - "WooCommerce Vendor Marketplace" plugin support added.
* Dev - EMAILS & MISC. - Booster WPML - `custom_textarea` type options added to the `wpml-config.xml` regeneration algorithm.
* Dev - EMAILS & MISC. - Booster WPML - General Options - "Use Translation Product IDs" option added.
* Dev - EMAILS & MISC. - Booster WPML - Serialized values properly handled, when regenerating `wpml-config.xml` file.
* Dev - EMAILS & MISC. - Booster WPML - `wpml-config.xml` file updated.
* Dev - Core - Options - `wcj_version_updated` hook added (`wp_schedule_single_event()`).
* Dev - Core - Options - Deprecated options handling added.
Feature - BUTTON & PRICE LABELS - Add to Cart Button Labels - Per Product Type - "Products on sale" options added.
Feature - CART & CHECKOUT - Checkout Fees - Initial module release.
Feature - CART & CHECKOUT - Checkout Files Upload - Form Template Options - "Show images in field" options added.
Feature - CART & CHECKOUT - Empty Cart Button - "Button HTML Class" option added.
Feature - PAYMENT GATEWAYS - Gateways Fees and Discounts - "Require Products" and "Exclude Products" options added.
Feature - PRICES & CURRENCIES - Currency per Product - "Per Product Options" settings section added.
Feature - PRICES & CURRENCIES - Currency per Product - Meta box - "Default" (i.e. empty) currency option added.
Feature - PRICES & CURRENCIES - Multicurrency Product Base Price - "Convert Product Prices in Admin Products List" option added.
Feature - PRICES & CURRENCIES - Offer Your Price - "Enable per product category" options added.
Feature - PRICES & CURRENCIES - Offer Your Price - "Styling Options" section added (and default header text color set to white).
Feature - PRICES & CURRENCIES - Offer Your Price - Position On Single Product Page - "Before add to cart form" and "After add to cart form" positions added.
Feature - PRICES & CURRENCIES - Prices and Currencies by Country - Per Product - "Per product options - backend user role visibility" option added.
Feature - PRICES & CURRENCIES - Wholesale Price - "Product Categories to include" and "Product Categories to exclude" options added.
Feature - PRODUCTS - Product Addons - "Advanced: Apply Price Filter" option added.
Feature - PRODUCTS - Product Addons - "Position on Frontend" option added.
Feature - PRODUCTS - Product Info - Single Product Pages - Position - "Product meta start" and "Product meta end" positions added.
Feature - PRODUCTS - SKU - Categories Options - "Multiple Categories" options added.
Feature - SHIPPING & ORDERS - Admin Orders List - Multiple Status - "Add Presets to Admin Menu" options added.
Feature - SHIPPING & ORDERS - Order Min/Max Quantities - "Quantity Step Options" section added.
Feature - SHIPPING & ORDERS - Orders - Orders Auto-Complete - "Payment methods" option added.
Fix - CART & CHECKOUT - Cart Custom Info - Cart Items Table Custom Info - If available, now setting up variation (instead of parent) product for the shortcodes.
Fix - CART & CHECKOUT - Checkout Files Upload - User file download - Fixed for order downloads.
Fix - EMAILS & MISC. - Email Options - Product Info in Item Name - If available, now setting up variation (instead of parent) product for the shortcodes.
Fix - PDF INVOICING & PACKING SLIPS - Email Options - Additionally checking for WC_Order class before adding email attachments.
Fix - PRICES & CURRENCIES - Multicurrency Product Base Price - Currency symbol fixed in admin products list.
Fix - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - add_open_price_input_field_to_frontend() - is_open_price_input_field_displayed class property added.
Fix - PRODUCTS - Bookings - add_input_fields_to_frontend() - are_bookings_input_fields_displayed class property added.
Fix - PRODUCTS - Product Addons - Price, labels and tooltips are trimmed now.
Fix - PRODUCTS - Product Addons - add_addons_to_frontend() - are_addons_displayed class property added.
Fix - PRODUCTS - Product Input Fields - add_product_input_fields_to_frontend() - are_product_input_fields_displayed class property added.
Fix - SHIPPING & ORDERS - Admin Orders List - Multiple Status - "Trash" order status added to the list.
Fix - SHIPPING & ORDERS - Admin Orders List - Multiple Status - Multiple select list restyled as "chosen select" class input. Checkboxes size fixed.
Fix - SHIPPING & ORDERS - Order Min/Max Quantities - Cart quantities fixed.
Fix - Functions - Products - wcj_is_product_term() - Checking for empty $term_ids param now.
Fix - Functions - Users - wcj_is_user_role() - Checking for wp_get_current_user() function to exist.
Fix - Shortcodes - General - [wcj_currency_select_radio_list] and [wcj_currency_select_drop_down_list] - Setting session value, when default attribute is set.
Fix - Shortcodes - Products - [wcj_product_wholesale_price_table] - "Non-numeric value encountered" warning fixed (warning appeared in PHP 7.1 for products with empty price).
Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Rounding Precision option default value changed.
Dev - PRICES & CURRENCIES - Currency per Product - wcj_currency_per_product_cart_checkout_currency and wcj_currency_per_product_is_cart_or_checkout filters added.
Dev - PRODUCTS - Add to Cart - Add to Cart Variable Product - Radio buttons template - Updated to the latest template version (WooCommerce v3.4.1).
Dev - PRODUCTS - Product Addons - "Multicurrency Product Base Price" conversions added.
Dev - PRODUCTS - Product Addons - Admin Settings - Minor restyling.
Dev - Code clean up.
Dev - Descriptions updated for the plugin and for the most modules.
Dev - Classes - WCJ_Module - reset_settings() - Array type options reset handling added.
Dev - Functions - Products - wcj_maybe_get_product_id_wpml() - Code refactoring (wcj_get_wpml_default_language() function added).