WooCommerce was updated to version 3.4.0, from version 3.3.5. Changelog:
- Feature – GDPR: Tools to export WooCommerce data using the new export functionality in WordPress 4.9.6.
- Feature – GDPR: Tools to bulk anonymize order data in admin.
- Feature – GDPR: Tools to turn off company/address-2/phone checkout fields to avoid unnecessary data collection, and a toggle to choose how required fields are presented. This is available via the Customizer.
- Feature – GDPR: Tools in the Customizer to change the terms and conditions checkbox label on the checkout.
- Feature – GDPR: Tools to define a privacy policy for the account page and checkout page in “account privacy” settings and within the Customizer.
- Feature – GDPR: Tools to automatically clean up and remove order personal data after a set time period.
- Feature – GDPR: Added privacy snippet which works with the new privacy page functionality in WordPress 4.9.6.
- Feature – Added a new order widget to the dashboard (on multisite) so you can see your orders across multiple stores on the same WordPress network.
- Feature – Added “display name” input on the My Account page.
- Feature – Product search improvements including stopword support and support for searching for multiple products at the same time.
- Feature – Cash on Delivery gateway can be enabled/disabled for specific shipping methods instead of only method types.
- Feature – Add wildcard email support for coupons.
- Feature – Added support for the GeoLite2 library as a replacement for the deprecated MaxMind GeoIP library.
- Feature – Added tool for cleaning up download permissions table.
- Tweak – GDPR: Improved appearance of checkout field ‘descriptions’ (if used) to make them more useful for privacy notices.
- Tweak – GDPR: Improved related data cleanup when deleting users/orders.
- Tweak – GDPR: Notice about HTTPS as a requirement in admin if missing.
- Tweak – GDPR: Improved the checkout (payments) settings screen, moved page options to a new “advanced” section, and made an “Accounts and Privacy” section.
- Tweak – GDPR: Hash customer email address in download URLs to protect privacy.
- Tweak – GDPR: Add highlight to T&C checkbox if not checked to show it needs to be checked.
- Tweak – GDPR: Automatically purge old logs after 30 days.
- Tweak – GDPR: Only log Webhook body if WP_DEBUG is enabled.
- Tweak – GDPR: Store less PII in PayPal standard.
- Tweak – Only show admin notices on WooCommerce screens/plugins/dashboard.
- Tweak – Standardize stock update messages in admin and correctly log who performed the action. When an order note is added after modifying stock manually, update order notes display via AJAX.
- Tweak – Rollback if payment complete or update status fails to prevent partial order updates on failure.
- Tweak – Made the system status tool which purges user carts also purge persistent carts.
- Tweak – Display whether or not external object cache is enabled in system status report.
- Tweak – Display zero value when using shipping classes.
- Tweak – Fixed settings table styling on mobile.
- Tweak – Updated Flexslider to version 2.7.0.
- Tweak – Enable screen options for list screens.
- Tweak – Don’t call WC_Install::install() on downgrades.
- Tweak – Remove user login from reset password link to protect personally identifying info.
- Tweak – Added a function to return a list of custom tables to aid with cleanup.
- Tweak – Enable going backwards in the setup wizard.
- Tweak – Make sure terms page exists and isn’t trashed before using it.
- Tweak – Toggle when clicking anywhere in toggle row during setup wizard.
- Tweak – Use read_product permissions instead of edit_product for ajax product search.
- Tweak – Add priceSpecification property with valueAddedTaxIncluded to product structured data.
- Tweak – Importer remembers mappings across imports.
- Tweak – Made coupon total displayed in cart more consistent.
- Tweak – Remove forced CSS line-heights to improve text input displays across different browsers.
- Tweak – When loading default attributes/variation, if there is no longer a match, reset the form and hide the notice
- Tweak – Removed admin product type column from core and made it into a free feature plugin.
- Tweak – Use woocommerce-no-js class to hide JavaScript-only forms and content.
- Tweak – Activate plugins during installation process even if directory doesn’t match slug.
- Tweak – Allow category and attribute ids in the products shortcode instead of only slugs.
- Tweak – Invalidate cart items when important props like product type are updated.
- Tweak – Don’t use mysql functions directly on system status page to prevent errors if they are disabled.
- Tweak – Replaces have_posts with woocommerce_product_loop which looks to see if there are products, or if the loop is going to be showing something else.
- Tweak – Delete widget options and order notes on uninstall.
- Tweak – Add unique names to all nonces in template fields and forms.
- Tweak – Enable using the tab key to select elements in selectWoo dropdowns.
- Tweak – Added autocomplete attributes to form elements for better autocomplete support.
- Tweak – Removed PayPal line item limit and ensured URLs are shorter than maximum length.
- Tweak – Disable Gutenberg editor on products posts.
- Tweak – Improvements around UI and wording of store setup step in setup wizard, a revamped extras step, and other improvements.
- Tweak – Only push images to lightbox if an image is found.
- Tweak – Added and improved notices around old PHP versions and disabled geolocation on PHP 5.4 or lower.
- Tweak – The manage_stock field in the product API can return a mixed type instead of boolean for variations.
- Tweak – Link product import/export to WordPress import/export capabilities.
- Tweak – Use to separate asterisks in required fields to prevent awkward line breaks.
- Tweak – Load meta box input values using CRUD and edit context.
- Tweak – Scroll to notices on cart/checkout for better mobile visibility.
- Tweak – Add filter to coupon URL on “Edit order” screen.
- Tweak – Throw error if order can’t be loaded on checkout.
- Tweak – Remove deprecated freegeoip service from geolocation.
- Tweak – Allow arrays of query vars in wc_get_orders and wc_get_products.
- Tweak – Invalidate fragment cache on theme switch.
- Tweak – Include select tags when saving payment details temporarily in checkout.js.
- Tweak – Update – Include pending products in export.
- Tweak – Deprecate woocommerce_ajax_added_order_items action in favor of more useful action.
- Tweak – Enable touch-to-zoom on touch devices to make photoswipe more easily accessible.
- Tweak – Wizard: List out all plugins to be installed upon proceeding to the next step, with a highlight on hover indicating relevant settings.
- Tweak – Hide/show password strength meter instead of removing/inserting password strength meter.
- Tweak – Added support for HTTP_RANGE requests (used by iOS devices) to Force download method.
- Tweak – Replaced protocol-relative URLs for thumbnails in the cart and mini-cart with protocol-specific URLs to prevent problems with URLs that include port section.
- Tweak – In CSV exports, wrap cell in ‘ rather than just prepending to escape values.
- Tweak – Add JS listeners for reloading/reinitializing order items in edit-order page.
- Fix – Properly set orderby and order when calling WC_Customer_Download_Data_Store::get_downloads().
- Fix – Set maxlength for order item meta key to avoid values disappearing if too long.
- Fix – Remove hardcoded /wp-content check for downloads.
- Fix – Made get_on_sale_products respect the setting to hide outofstock products.
- Fix – Prevent shortcode [product_page] redirecting to the actual product’s page after add to cart.
- Fix – Make the “main term” logic match for both the breadcrumb and product categories widget.
- Fix – Check parent status too when seeing if variation is purchasable.
- Fix – Fix uppercasing of accented characters.
- Fix – Do not allow updating parent ID from variations after created.
- Fix – Ensure coupon amount is not empty to prevent non-numeric value errors.
- Fix – Ensure shop archive works correctly when paged=1 is in the URL.
- Fix – Ensure orders created with woocommerce_adjust_non_base_location_prices filter active have the same cost on frontend and admin.
- Fix – Handling in the CLI to prevent Resource does not exist errors when using commands of a certain format.
- Fix – Use subtotal when calculating discounts in admin/orders to ensure prices are the same as on the frontend.
- Fix – Use kses to process download names to prevent escaped HTML displaying in emails.
- Fix – Remove translation from Thailand state file to prevent PayPal errors around unsupported characters.
- Fix – Fix auto-select variation URLs with special characters in them.
- Fix – Introduced wc_round_discount and improved consistency of discount rounding.
- Fix – Only add schema for ratings to structured data when ratings are enabled.
- Fix – Prevent default state applying unless the country was also unset in JS state/country inputs.
- Fix – Escape quantity labels correctly to prevent broken html.
- Fix – Delete orphaned variations after product import.
- Fix – Ensure API credentials exist before defining PayPal refund support.
- Fix – Force word-wrapping in the log viewer to prevent layout-breaking long lines.
- Fix – Removes permission checks that were preventing webhooks from displaying properly when no post object existed.
- Fix – Empty cart after completing PayPal payment.
- Fix – Strip tags on aria-labels in Add to Cart template to prevent broken HTML.
- Fix – Update post_modified date when saving products and variations but no other product data.
- Fix – Clear comment count transient when cleaning product transients to prevent incorrect comment count displays.
- Fix – Load gateways before order is saved/email is triggered to ensure all information gets sent/processed.
- Fix – Clear shipping transient when saving shipping method on zones screen.
- Fix – Handle escape characters for fputcsv to work around PHP standards issues.
- Fix – Cast post IDs to integers in admin meta boxes.
- Fix – Fix CSV unescaping of negative numbers in download expiry/limit columns.
- Fix – Don’t load unsupported theme functionality if shop page ID is -1.
- Fix – Select and display “Downloadable” option in product admin filter when selected.
- Fix – Add sort handle column when adding new tags.
- Fix – More thorough CSV importer cleanup.
- Fix – Fix gallery switching when image is the same
- Fix – Ensure coupon amount is always returns as a float value
- Fix – No update available message after activating subscription that has a valid update.
- Fix – Include scheduled products in CSV export.
- Fix – Generator tag actions should be filters.
- Fix – WC API should not try to create a product image when creating a product variation if an empty image is passed.
- Fix – Force settings API settings to autoload by default.
- Fix – Cart html5 validation events when using keyboard.
- Fix – Don’t show stock status fields in external product quick-edit.
- Fix – Prevent an infinite loop if 2 grouped products are linked.
- Fix – Switch stock_status when manage stock gets changed to prevent being out of stock if stock quantity is > 0.
- Fix – When duplicating variation, set the date to null.
- Fix – Fix rounding of line items for orders to match cart.
- Fix – Remove hardcoded border in email template.
- Fix – Prevent autofocus on checkout.
- Fix – Recalc taxes if address changes in API.
- Dev – Made wc_query_string_form_fields handle strings.
- Dev – Added refunded_payment prop to orders for determining if payment was refunded via API.
- Dev – Added extra params to woocommerce_order_get_downloadable_items.
- Dev – Store shipping method ID and instance ID in separate fields instead of both in one serialized field.
- Dev – Add woocommerce_rest_insert_system_status_tool hook that fires after executing a REST system status tool.
- Dev – Gallery meta box is now powered by CRUD.
- Dev – Refactor woocommerce_wp_select so it could be used for a multiselect.
- Dev – Added ability to declare sanitize_callback in settings API.
- Dev – Added support for additional HTML5 input types for settings/checkout forms.
- Dev – Made ‘woocommerce_email_downloads_column_’ hook format aware.
- Dev – Add missing woocommerce_update_options__ actions for settings pages that override save method.
- Dev – Allow default value for single_select_country and multi_select_countries.
- Dev – Added grouped_form class to grouped product form element.
- Dev – Mini cart item link now respects value of $product_permalink.
- Dev – Added woocommerce_coupon_get_items_to_validate filter to enable excluding products from coupon validation.
- Dev – Added woocommerce_persistent_cart_enabled filter.
- Dev – Added woocommerce_admin_order_item_coupon_url filter.
- Dev – Replaced calls to exit with wp_die in the ajax methods to enable unit testing of those methods.
- Dev – Introduce woocommerce_coupon_custom_discounts_array filter to allow post processing on custom coupons.
- Dev – Move jQuery UI styles into WooCommerce assets folder and load them from there.
- Dev – Added woocommerce_coupon_validate_expiry_date filter to enable modifying the coupon expiry date check.
- Dev – Added woocommerce_shipping_calculator_enable_state filter to enable disabling state section in shipping calculator.
- Dev – Added woocommerce_bacs_process_payment_order_status filter allowing plugins to change the order status to the BACS gateway.
- Dev – Added woocommerce_coupon_sort filter to allow plugins to override the default coupon apply order.
- Dev – Added woocommerce_before_output_product_categories and woocommerce_after_output_product_categories filters.
- Dev – Added general woocommerce_form_field filter to make it easier to filter all of the form fields.
- Dev – Added woocommerce_install_get_tables filter to enable plugins to register new, WooCommerce-specific tables.
- Dev – Use get_variation_price method in structured data to grab min/max so filters are ran.
- Dev – Added woocommerce_helper_suppress_connect_notice filter to enable suppressing the admin WordPress.com connection message.
- Dev – Moved all photoswipe styles to photoswipe.css to make it easy to dequeue all the photoswipe styles.
- Dev – Slash meta values before updating values in the data stores.
- Dev – New wc_selected method to handle array key conversion to int.
- Performance – Optimized saving of orders. Adds a transient for needs_processing, and only saves changes when saving order items.
- Performance – Refactored the SQL query for WC_Customer_Download_Data_Store::get_downloads() to fetch available downloads faster.
- Performance – Split the layered nav counts into multiple transient records by taxonomy and added a filter to allow bypassing caching.
- Performance – Removed duplicate SET SESSION SQL_BIG_SELECTS=1 queries.
- Performance – Avoid storing coupon _used_by data to prevent database bloat.
- Performance – Introduced new wc_get_product_class() and wc_product_class() functions.
- Performance – Series of tweaks aimed at reducing the number of queries performed
- Template – Update cart coupon button from input to button type.
- Template – Added woocommerce-form-register class to registration form.
- Template – Added escaping to publish date.
- Template – Added a template file for recent product reviews.
- Template – Made add to cart templates more consistent between product types.
- Localization – Switched Georgian Lari symbol to new UTF symbol.
- Localization – Use ISO county codes for Irish states.
- Localization – Use ISO county codes for BD states.
- Localization – LR-Liberia states.
- Localization – Update ZA tax rate.
- Localization – Various spelling, grammar fixes, and phrasing improvements.
Localization – Fix missing Bahrain country code.