WooCommerce
3.4.0 – 2018-05-23
- Feature – GDPR: Tools to export WooCommerce data using the new export functionality in WordPress 4.9.6. #19330
- Feature – GDPR: Tools to bulk anonymize order data in admin. #19330
- 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. #19637
- Feature – GDPR: Tools in the Customizer to change the terms and conditions checkbox label on the checkout. #19637
- Feature – GDPR: Tools to define a privacy policy for the account page and checkout page in “account privacy” settings and within the Customizer. #19747
- Feature – GDPR: Tools to automatically clean up and remove order personal data after a set time period. #19743
- Feature – GDPR: Added privacy snippet which works with the new privacy page functionality in WordPress 4.9.6. #19749
- 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. #17598
- Feature – Added “display name” input on the My Account page. #19078
- Feature – Product search improvements including stopword support and support for searching for multiple products at the same time. #19096
- Feature – Cash on Delivery gateway can be enabled/disabled for specific shipping methods instead of only method types. #19221
- Feature – Add wildcard email support for coupons. #19331
- Feature – Added support for the GeoLite2 library as a replacement for the deprecated MaxMind GeoIP library. #19419
- Feature – Added tool for cleaning up download permissions table. #19922
- Tweak – GDPR: Improved appearance of checkout field ‘descriptions’ (if used) to make them more useful for privacy notices. #19637
- Tweak – GDPR: Improved related data cleanup when deleting users/orders. #19330
- Tweak – GDPR: Notice about HTTPS as a requirement in admin if missing. #19756
- Tweak – GDPR: Improved the checkout (payments) settings screen, moved page options to a new “advanced” section, and made an “Accounts and Privacy” section. #19703
- Tweak – GDPR: Hash customer email address in download URLs to protect privacy. #18957
- Tweak – GDPR: Add highlight to T&C checkbox if not checked to show it needs to be checked. #19177
- Tweak – GDPR: Automatically purge old logs after 30 days. #19920
- Tweak – GDPR: Only log Webhook body if WP_DEBUG is enabled. #19914
- Tweak – GDPR: Store less PII in PayPal standard. #19914
- Tweak – Only show admin notices on WooCommerce screens/plugins/dashboard. #19772
- 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. #18080
- Tweak – Rollback if payment complete or update status fails to prevent partial order updates on failure. #18175
- Tweak – Made the system status tool which purges user carts also purge persistent carts. #18492
- Tweak – Display whether or not external object cache is enabled in system status report. #18595
- Tweak – Display zero value when using shipping classes. #18624
- Tweak – Fixed settings table styling on mobile. #18655
- Tweak – Updated Flexslider to version 2.7.0. #18779
- Tweak – Enable screen options for list screens. #18817
- Tweak – Don’t call WC_Install::install() on downgrades. #18818
- Tweak – Remove user login from reset password link to protect personally identifying info. #18820
- Tweak – Added a function to return a list of custom tables to aid with cleanup. #18831
- Tweak – Enable going backwards in the setup wizard. #18921
- Tweak – Make sure terms page exists and isn’t trashed before using it. #18993
- Tweak – Toggle when clicking anywhere in toggle row during setup wizard. #19035
- Tweak – Use read_product permissions instead of edit_product for ajax product search. #19087
- Tweak – Add priceSpecification property with valueAddedTaxIncluded to product structured data. #19091
- Tweak – Importer remembers mappings across imports. #19110
- Tweak – Made coupon total displayed in cart more consistent. #19166
- Tweak – Remove forced CSS line-heights to improve text input displays across different browsers. #19174
- Tweak – When loading default attributes/variation, if there is no longer a match, reset the form and hide the notice #19190
- Tweak – Removed admin product type column from core and made it into a free feature plugin. #19192
- Tweak – Use woocommerce-no-js class to hide JavaScript-only forms and content. #19199
- Tweak – Activate plugins during installation process even if directory doesn’t match slug. #19200
- Tweak – Allow category and attribute ids in the products shortcode instead of only slugs. #19204
- Tweak – Invalidate cart items when important props like product type are updated. #19255
- Tweak – Don’t use mysql functions directly on system status page to prevent errors if they are disabled. #19281
- 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. #19288
- Tweak – Delete widget options and order notes on uninstall. #19371
- Tweak – Add unique names to all nonces in template fields and forms. #19387
- Tweak – Enable using the tab key to select elements in selectWoo dropdowns. #19416
- Tweak – Added autocomplete attributes to form elements for better autocomplete support. #19426
- Tweak – Removed PayPal line item limit and ensured URLs are shorter than maximum length. #19493
- Tweak – Disable Gutenberg editor on products posts. #19543
- 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. #19568
- Tweak – Added and improved notices around old PHP versions and disabled geolocation on PHP 5.4 or lower. #19573
- Tweak – The manage_stock field in the product API can return a mixed type instead of boolean for variations. #19598
- Tweak – Link product import/export to WordPress import/export capabilities. #19602
- Tweak – Use to separate asterisks in required fields to prevent awkward line breaks. #19610
- Tweak – Load meta box input values using CRUD and edit context. #19670
- Tweak – Scroll to notices on cart/checkout for better mobile visibility. #19699
- Tweak – Add filter to coupon URL on “Edit order” screen. #19777
- Tweak – Throw error if order can’t be loaded on checkout. #19802
- Tweak – Remove deprecated freegeoip service from geolocation. #19841
- Tweak – Allow arrays of query vars in wc_get_orders and wc_get_products. #19848
- Tweak – Invalidate fragment cache on theme switch.
- Tweak – Include select tags when saving payment details temporarily in checkout.js. #19854
- Tweak – Update – Include pending products in export. #19928
- Tweak – Deprecate woocommerce_ajax_added_order_items action in favor of more useful action. #19933
- Tweak – Enable touch-to-zoom on touch devices to make photoswipe more easily accessible. #20002
- Tweak – Wizard: List out all plugins to be installed upon proceeding to the next step, with a highlight on hover indicating relevant settings. #19952
- Tweak – Hide/show password strength meter instead of removing/inserting password strength meter. #20006
- Tweak – Added support for HTTP_RANGE requests (used by iOS devices) to Force download method. #19984
- 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. #19934
- Tweak – In CSV exports, wrap cell in ‘ rather than just prepending to escape values. #20041
- Tweak – Add JS listeners for reloading/reinitializing order items in edit-order page. #20082
- Fix – Properly set orderby and order when calling WC_Customer_Download_Data_Store::get_downloads(). #1862
- Fix – Set maxlength for order item meta key to avoid values disappearing if too long. #18918
- Fix – Remove hardcoded /wp-content check for downloads. #18961
- Fix – Made get_on_sale_products respect the setting to hide outofstock products. #18984
- Fix – Prevent shortcode redirecting to the actual product’s page after add to cart. #19043
- Fix – Make the “main term” logic match for both the breadcrumb and product categories widget. #19044
- Fix – Check parent status too when seeing if variation is purchasable. #19045
- Fix – Fix uppercasing of accented characters. #19086
- Fix – Do not allow updating parent ID from variations after created. #19097
- Fix – Ensure coupon amount is not empty to prevent non-numeric value errors. #19098
- Fix – Ensure shop archive works correctly when paged=1 is in the URL. #19104
- Fix – Ensure orders created with woocommerce_adjust_non_base_location_prices filter active have the same cost on frontend and admin. #19109
- Fix – Handling in the CLI to prevent Resource does not exist errors when using commands of a certain format. #19123
- Fix – Use subtotal when calculating discounts in admin/orders to ensure prices are the same as on the frontend. #19159
- 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. #19219
- Fix – Fix auto-select variation URLs with special characters in them. #19283
- Fix – Introduced wc_round_discount and improved consistency of discount rounding. #19291
- Fix – Only add schema for ratings to structured data when ratings are enabled. #19310
- Fix – Prevent default state applying unless the country was also unset in JS state/country inputs. #19338
- Fix – Escape quantity labels correctly to prevent broken html. #19375
- Fix – Delete orphaned variations after product import. #19378
- Fix – Ensure API credentials exist before defining PayPal refund support. #19380
- Fix – Force word-wrapping in the log viewer to prevent layout-breaking long lines. #19503
- Fix – Removes permission checks that were preventing webhooks from displaying properly when no post object existed. #19508
- Fix – Empty cart after completing PayPal payment. #19509
- Fix – Strip tags on aria-labels in Add to Cart template to prevent broken HTML. #19522
- Fix – Update post_modified date when saving products and variations but no other product data. #19595
- Fix – Clear comment count transient when cleaning product transients to prevent incorrect comment count displays. #19664
- Fix – Load gateways before order is saved/email is triggered to ensure all information gets sent/processed. #19667
- Fix – Clear shipping transient when saving shipping method on zones screen. #19668
- Fix – Handle escape characters for fputcsv to work around PHP standards issues. #19678
- Fix – Cast post IDs to integers in admin meta boxes. #19710
- Fix – Fix CSV unescaping of negative numbers in download expiry/limit columns. #19732
- Fix – Don’t load unsupported theme functionality if shop page ID is -1. #19822
- Fix – Select and display “Downloadable” option in product admin filter when selected. #19876
- Fix – Add sort handle column when adding new tags. #19875
- Fix – More thorough CSV importer cleanup. #19877
- Fix – Fix gallery switching when image is the same #19878
- Fix – Ensure coupon amount is always returns as a float value #19889
- Fix – No update available message after activating subscription that has a valid update. #19831
- Fix – Include scheduled products in CSV export. #19907
- Fix – Generator tag actions should be filters. #19946
- Fix – WC API should not try to create a product image when creating a product variation if an empty image is passed. #19971
- Fix – Force settings API settings to autoload by default. #19998
- Fix – Cart html5 validation events when using keyboard. #20001
- Fix – Don’t show stock status fields in external product quick-edit. #20005
- Fix – Prevent an infinite loop if 2 grouped products are linked. #20020
- Fix – Switch stock_status when manage stock gets changed to prevent being out of stock if stock quantity is > 0. #20021
- Fix – When duplicating variation, set the date to null. #20083
- Fix – Fix rounding of line items for orders to match cart. #20086
- Fix – Remove hardcoded border in email template. #20090
- Fix – Prevent autofocus on checkout. #20123
- Fix – Recalc taxes if address changes in API. #20137
- Dev – Made wc_query_string_form_fields handle strings. #20162
- Dev – Added refunded_payment prop to orders for determining if payment was refunded via API. #18196
- Dev – Added extra params to woocommerce_order_get_downloadable_items. #18408
- Dev – Store shipping method ID and instance ID in separate fields instead of both in one serialized field. #18483
- Dev – Add woocommerce_rest_insert_system_status_tool hook that fires after executing a REST system status tool. #18505
- Dev – Gallery meta box is now powered by CRUD. #18511
- Dev – Refactor woocommerce_wp_select so it could be used for a multiselect. #18536
- Dev – Added ability to declare sanitize_callback in settings API. #18554
- Dev – Added support for additional HTML5 input types for settings/checkout forms. #18594
- Dev – Made ‘woocommerce_email_downloads_column_’ hook format aware. #18600
- Dev – Add missing woocommerce_update_options__ actions for settings pages that override save method. #18609
- Dev – Allow default value for single_select_country and multi_select_countries. #18754 #18756
- Dev – Added grouped_form class to grouped product form element. #18786
- Dev – Mini cart item link now respects value of $product_permalink. #18979
- Dev – Added woocommerce_coupon_get_items_to_validate filter to enable excluding products from coupon validation. #19002
- Dev – Added woocommerce_persistent_cart_enabled filter. #19027
- Dev – Added woocommerce_admin_order_item_coupon_url filter. #19777
- 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. #19148
- Dev – Move jQuery UI styles into WooCommerce assets folder and load them from there. #19173
- Dev – Added woocommerce_coupon_validate_expiry_date filter to enable modifying the coupon expiry date check. #19228
- Dev – Added woocommerce_shipping_calculator_enable_state filter to enable disabling state section in shipping calculator. #19241
- Dev – Added woocommerce_bacs_process_payment_order_status filter allowing plugins to change the order status to the BACS gateway. #19311
- Dev – Added woocommerce_coupon_sort filter to allow plugins to override the default coupon apply order. #19339
- Dev – Added woocommerce_before_output_product_categories and woocommerce_after_output_product_categories filters. #19363
- Dev – Added general woocommerce_form_field filter to make it easier to filter all of the form fields. #19388
- Dev – Added woocommerce_install_get_tables filter to enable plugins to register new, WooCommerce-specific tables. $19436
- Dev – Use get_variation_price method in structured data to grab min/max so filters are ran. #19527
- Dev – Added woocommerce_helper_suppress_connect_notice filter to enable suppressing the admin WordPress.com connection message. #19599
- Dev – Moved all photoswipe styles to photoswipe.css to make it easy to dequeue all the photoswipe styles. #19673
- Dev – Slash meta values before updating values in the data stores. #19675
- Dev – New wc_selected method to handle array key conversion to int. #19705
- Performance – Optimized saving of orders. Adds a transient for needs_processing, and only saves changes when saving order items. #18538
- Performance – Refactored the SQL query for WC_Customer_Download_Data_Store::get_downloads() to fetch available downloads faster. #18559
- Performance – Split the layered nav counts into multiple transient records by taxonomy and added a filter to allow bypassing caching. #19225
- Performance – Removed duplicate SET SESSION SQL_BIG_SELECTS=1 queries. #19502
- Performance – Avoid storing coupon _used_by data to prevent database bloat. #19669
- Performance – Introduced new wc_get_product_class() and wc_product_class() functions. #19639
- Performance – Series of tweaks aimed at reducing the number of queries performed #19918
- Template – Update cart coupon button from input to button type. #19059
- Template – Added woocommerce-form-register class to registration form. #19486
- Template – Added escaping to publish date. #19530
- Template – Added a template file for recent product reviews. #19711
- Template – Made add to cart templates more consistent between product types. #19666
- Localization – Switched Georgian Lari symbol to new UTF symbol. #19603
- Localization – Use ISO county codes for Irish states. #19658
- Localization – Use ISO county codes for BD states. #19744
- Localization – LR-Liberia states. #19709
- Localization – Update ZA tax rate. #19909
- Localization – Various spelling, grammar fixes, and phrasing improvements.
- Localization – Fix missing Bahrain country code. #20061