forked from woocommerce/woocommerce
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
3148 lines (3019 loc) · 213 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
== Changelog ==
= 3.5.0 - 2018-10-17 =
* Feature - REST API v3. #20111
* Feature - Option has been added on the inventory tab of the edit product page to set a low stock threshold for individual products. #20260
* Feature - Add ability to export products by category to the CSV exporter. #20870
* Feature - Ability to define custom product placeholder images that will resize to correct store aspect ratio. #20644
* Enhancement - Excluded children categories from WP_Query in product shortcode if cat_operator=AND. #20207
* Enhancement - Add anchor tag example to email template preview. #20246
* Enhancement - Introduce is_paypal_supported_currency check in setup wizard. #20244
* Enhancement - Payment method table reordering accessibility. #19844
* Enhancement - Log errors from transaction emails with logger. #20203
* Enhancement - Improved shipping calculator experience. Shows destination country and added context to calculate shipping link. #20345
* Enhancement - On the fly image generation for frontend, if image sizes are missing. #20011
* Enhancement - SelectWoo enabled product categories dropdown widget. #20617
* Enhancement - Make it easier to read and act upon the outdated template notice. #20732
* Enhancement - Styled date, time, etc. inputs in admin to match styling of other inputs. #21013
* Enhancement - Show update notices on the System Status page for WordPress.org hosted Official WooCommerce extensions. #21073
* Enhancement - Better wording for transactional emails. #21288
* Fix - Check billing email is posted before using in WC_Cart::check_customer_coupons. #20180
* Fix - Shipping postcode formatting when only posting a billing address. #20330
* Fix - Correctly show/hide save card checkbox on tokenization form. #20506
* Fix - orderby and order parameters in WC_Customer_Download_Log_Data_Store::get_download_logs() were ignored. #20931
* Fix - Unslash city name to prevent double escape in tax settings. #21205
* Fix - Updated phone validation logic. #21188
* Fix - Fix weight and dimensions cache of variable products if childs doesn't have any of those params. #21244
* Fix - Correctly replace images in the woocommerce_uploads folder with the placeholder image. #20848
* Fix - Show parent variable product in shipping class admin screen when variation has shipping class. #21278
* Fix - Correctly excluded administrators from "Customer list" report. #21304
* Fix - Update quick edit logic to show/hide Stock qty and Backorders fields. #21301
* Fix - Fix Layered Nav Widget where special HTML entities did not display correctly in the "Any %s" string. #21312
* Fix - Set the is_checkout javascript parameter on any page that uses the checkout filter or shortcode. #21328
* Fix - Fix cron_interval property support in WP_Background_Process. #21353
* Fix - CSS Changes to make text fields line up on the shipping settings page. #21247
* Fix - Add extra null check to fix an issue with select payment fields using disabed select as placeholders. #21391
* Fix - Don't modify attributes orderby when sorting by name. #21408
* Fix - Allow saving a stock quantity of 0 using quick edit. #21447
* Fix - Change the query used to save session data to the database to protect against deadlocks. #21455
* Fix - Make sure default category tooltip is rendered when the image column is deactivated. #21410
* Fix - Fix warning when using logger instance in woocommerce_logging_class filter. #21448
* Fix - Use uppercase "ID" when sorting product queries by ID. #21461
* Fix - Consistently escape the gateway ID in the checkout payment method template. #21439
* Fix - Avoid treating HTTP 301 and 302 codes as failures for webhooks. #21491
* Fix - Add address_1 to shipping packages info in WC_Cart:: get_shipping_packages to make it work correctly in address formatting functions. #21493
* Fix - Don't fire two of the same action when saving shipping settings. #21494
* Fix - Remove double condition for address line 2 in `WC_Countries::get_default_address_fields`. #20629
* Fix - Correctly handle shorthand values for memory_limit in php.ini. #21557
* Fix - Product shortcode numeric term slug matching. #21560
* Fix - Remove the erasure tools links from the descriptions of the erasure settings for users without the manage_privacy_options capability. #21565
* Fix - Don't double urldecode posted variation attributes. #21570
* Fix - Don't double-sanitize cart images. #21574
* Fix - Check if ID exists and is not empty before set Product's download ID in API. #21588
* Fix - Ensure wp_list_pluck() gets a array and not possibly null in WC_Product_Data_Store_CPT::update_attributes. #21591
* Fix - Trim CSV header rows to prevent leading/trailing whitespace issues. #21614
* Fix - Show draft products in previews on unsupported themes. #21619
* Fix/Tweak - Fire `woocommerce_grant_product_download_access` hook after the download has its ID set. #20905
* Fix/Tweak/Performance - Change wp_woocommerce_sessions primary key to session_id. #21245
* Tweak - Show empty terms in admin product category filter dropdown. #20324
* Tweak - Don't force default token gateway active by default. #20125
* Tweak - Move notice output to hooked in functions. #19794
* Tweak - Apply order bulk actions in chronological order. #20338
* Tweak - Updated Emogrifier to 2.0. #20547
* Tweak - Avoid using wp.template (eval) in add-to-cart-variation.js. #19496
* Tweak - Hide Preview button when creating new products, as most fields aren't set up for it. #20650
* Tweak - For guests, store all address fields to the session whilst placing an order. #20665
* Tweak - Removed 'ajax_add_to_cart' class from 'Read more' button. #20690
* Tweak - Removed unnecessary checkout form change trigger on load of the checkout page. #20655
* Tweak - Add image size filters to wc_get_product_attachment_props(). #20722
* Tweak - Only display the current site's tables for a multisite install when viewing the system status. #20731
* Tweak - include the file path and line number where a fatal error occurred in the fatal errors log. #20787
* Tweak - Cast tax rate to float so that it can be treated as number further on in the code. #20910
* Tweak - Send webhooks using Action Scheduler. #20030
* Tweak - Update customer's ip address on successful payment. #21038
* Tweak - Changed wc_clean to checking for valid utf8 for line items and password. #20993
* Tweak - Add to cart notice actions (View cart/Continue shopping) now have tabindex 1 for improved accessibility. #21108
* Tweak - Remove icanhazip from geolocation services. #21198
* Tweak - Remove unnecessary aria-required attributes from product reviews template. #21211
* Tweak - Added hidden label for screen readers on checkout address line 2 input. #21193
* Tweak - Remove empty space in mini-cart template. #21261
* Tweak - Tax display in cart now depends on whether customer is tax exempt. #21292
* Tweak - Change sort dropdown option "Sort by newness" to "Sort by latest". #21311
* Tweak - Sanitize endpoint slugs upon saving. #21355
* Tweak - Ignore converting float meta value for registered post meta. #21333
* Tweak - Remove 'order_again' query string to avoid multiple re-orders. #21444
* Tweak - Remove Netherlands Antilles from the North America continent definitions. #21449
* Tweak - Display label and meta on the same line in order emails to match frontend Order Details styling. #21456
* Tweak - Use wp_get_upload_dir for geolite DB path. #21550
* Performance/Tweak - Use post_author for the order customer instead of '_customer_user' meta data. #17895
* Performance - Exclude frontend include from REST API calls. #20000
* Performance - Improve performance of the query to delete version transients by removing unneeded "ORDER BY". #21274
* Dev - REST API - Allows oAuth1.0a authentication under SSL.
* Dev - REST API - Fix position param for images. #20497
* Dev - REST API - Handle children products deletion regardless of type. #20670
* Dev - Added woocommerce_increase_coupon_usage_count and woocommerce_decrease_coupon_usage_count action hooks to increase extensibility of Coupons. #19981
* Dev - Add endpoints to account menu items filter. #19980
* Dev - Added qty param to `wc_add_to_cart_message` filter. #19817
* Dev - Added `woocommerce_search_products_ids` filter. #20160
* Dev - Introduced `woocommerce_cart_calculate_shipping_address` field to allow manipulation of cart shipping calculator data. #20046
* Dev - Introduced `woocommerce_shipping_calculator_enable_country` filter. #20046
* Dev - Pass product id to backorder notification. #20416
* Dev - Added woocommerce_cart_shipping_total filter to control shipping display. #20591
* Dev - Refactor "Order again" handling to separate logic better. #20606
* Dev - Added 'woocommerce_products_admin_list_table_filters' filter to make it easier to customize the products list table filters. #20634
* Dev - Added `woocommerce_shipping_method_add_rate_args` and `woocommerce_shipping_method_add_rate` filters. #20633
* Dev - Added `woocommerce_coupon_validate_user_usage_limit` filter. #20630
* Dev - Add hooks needed for product custom tables feature plugin. #20520
* Dev - Added new filter to 'Item in quotes' translation for messages. #20714
* Dev - Add 'woocommerce_shutdown_error' hook triggered on request termination with an error. #20787
* Dev - New filter 'woocommerce_admin_meta_boxes_variations_count' to customize the shown count of variations. #21067
* Dev - Added ability to query products that have a field set in wc_get_products/WC_Product_Query using the wildcard symbol '*'. #21162
* Dev - Added a JavaScript events before and after the order total recalculation on the Edit Order page. #21181
* Dev - Check for `needs_payment` instead of `has_status( 'pending' )` in PayPal PDT handler for custom order status support. #21200
* Dev - Added form action hooks for edit account and login templates. #21248
* Dev - Add action for when system tools are run. #21270
* Dev - Add - woocommerce_restock_refunded_items filter to control default state of the restock option when refunding items on an order. #21314
* Dev - Add an extensible/swappable job queue via WC_Action_Queue and WC_Queue_Interface. #20030
* Dev - Use WC_Action_Queue for schedule and delivery of webhooks. #20030
* Dev - Include Action Scheduler v2.1.0 and use it for the default job queue. #21424 / #20030
* Dev - Save reviews under the 'review' comment type. #21305
* Localization - Updated IT provinces. #20286
* Localization - Eircode validation. #20330
* Localization - Disable postcode requirement for Bahrain. #21103
* Localization - Make postcode field optional and hidden for Nigeria and label State. #21056
* Localization - Make Romania state selection mandatory. #21180
* Localization - Make city field optional and hidden for Singapore addresses. #21016
= 3.4.6 - 2018-10-11 =
* Fix - Security issues
* Fix - Allow percent coupons with sale restrictions to apply to carts with sale items in them. #21241
* Fix - Prevent multiple slashing of variation's SKU. #21019
= 3.4.5 - 2018-08-29 =
* Fix - Tweak sanitization when resetting password cookie. #20901
* Fix - Use `+` instead of `array_merge` when appending parent to tax class to fix issues with numeric tax class names. #20916
* Fix - Correct translation for North Khorasan. #20972
* Fix - Unify scroll-to notices for all browsers. #20992
* Fix - Prevent multiple slashing of variation's SKU. #21019
* Fix - Variation image in fullscreen now shows correct caption for the respective image. #21022
* Fix - Vertically center admin order action buttons. #21053
* Fix - Correct context for shipping packages translation. #21065
* Fix - Add permission checks for installing Jetpack on the setup wizard. #21072
* Fix - Use refund currency instead of store default currency when displaying refund amount in the edit order screen. #21106
* Fix - Fix a typo in REST API customer schema. #21171
* Fix - Use entire sentence for checkout address_2 placeholder string. #21186
* Fix - Only suppress comments number on unsupported theme shop page. #21191
* Fix - Don't allow users without manage_product_terms permissions to create categories using the product importer. #21192
* Fix - Correct sale coupon restriction logic. #21219
= 3.4.4 - 2018-07-25 =
* Fix - Only wordwrap plain email content. #20723
* Fix - Better escaping on product quick edit. #20740
* Fix - Log file deletion. #20730
* Fix - Search feature in Webhooks and REST API keys settings. #20706
* Fix - Notices in REST API keys settings screen. #20706
* Fix - add a check to prevent WC_Geolite_Integration::get_country_iso() from generating a PHP undefined index notice when unable to determine the country code for a given IP address. #20608
* Fix - Variable product stock display if parent is stock managed and not the variation. #20661
* Fix - Correctly hide cost for zero cost shipping methods after placing orders. #20663
* Fix - Disabled autocomplete to prevent datepicker overlapping. #20687
* Fix - Prevent a PHP notice in the setup wizard when store state is not selectable. #20695
* Fix - Fix logic error in WC_Product_CSV_Exporter::get_column_value_stock. #20753
* Fix - Fixed missing notice about no product variation matching. #20762
* Fix - Correct PHPDocs in exporter class. #20861
* Fix - Prevent Mailchimp redirection during the Setup Wizard. #20879
* Fix - Don't hide coupon form after coupon has been applied. #20889
* Tweak - Remove (optional) text from Address line 2 field. #20622 #20639
* Tweak - Removed 100% width for images on single product page using 2017 theme. #20818
* Tweak - Add margin to best selling product title in the dashboard widget to avoid overlapping the sparkline. #20849
* Tweak - Re-add woocommerce_order_details_after_customer_details_filter removed during WC 3.2. #20886
* Dev - Added woocommerce_calculate_item_totals_taxes filter. #20586
* Dev - Links to next and previous page sent out in HTTP header via REST API fixed for some endpoints. #20686
* Dev - Better wc_format_phone_number cleaning. #20637
= 3.4.3 - 2018-06-20 =
* Fix - Fix label for the price filter widget on RTL sites. #20417
* Fix - Checkout: stopPropagation when payment method selected so description tips show on radio buttons. #20432
* Fix - Shipping zone settings: fixed title for shipping methods without settings. #20441
* Fix - Ensure custom Webhook topic selections are correctly saved in admin. #20406
* Fix - Webhook bottom bulk actions. #20445
* Fix - Fixes multisite orders dashboard widget to use order number rather than ID. #20457
* Fix - Add check to ensure download log FK does not exist before adding it. Update routine will cleanup any duplicates. #20478
* Fix - IPv6 support with HTTP_X_FORWARDED_FOR header. #20479
* Fix - Avoid setting wrong prices when syncing grouped products with children. #20482
* Fix - Separation of explode and end functions in two lines. End function should get a reference as parameter. #20500
* Fix - Initialize payment gateways before running bulk actions so gateways can listen for events. #20502
* Fix - Cast shipping total to a float so incl. tax shows only when needed. #20531
* Fix - Fix automatic stock status updates based on stock level. #20573
* Fix - Improved sanitize_special_column_name_regex trim to fix column matching when importing CSVs. #20486
* Fix - Force importer log table to wrap long columns. #20534
* Fix - Rest API: Prevent errors if variation parent is invalid and cannot be read. #20572
* Fix - Rest API: Remove legacy API enabled check from auth endpoint. #20499
* Fix - Display products on sub-subcategories when sorting parent category by price. #20579
* Fix - Set order status to refunded when a PayPal transaction is refunded. #20574
* Fix - fix undefined index in abstract-wc-widget. #20544
* Fix - Round items for order total when recalculating order values to match cart. #20533
* Fix - Removed mysql transactions when updating order status, tweaked caching, and improved version transient cleanup to prevent possible deadlocks on checkout. #20537
* Tweak - Added a message to promote Wootenberg when running Gutenberg feature plugin. #20524
* Tweak - Added a warning notice before removing personal data from orders in bulk. #20481
* Dev - generate_select_html and generate_multiselect_html functions again support the usage of integer-keyed arrays as available values. #20569
* Dev - Allow order billing fields to use a provided 'value'. #20424
= 3.4.2 - 2018-06-05 =
* Fix - Flexslider gallery fixes for RTL sites, and for variation image switching. #20328 #20321
* Fix - Allow forms to be submitted when the password strength library fails to load. #20362
* Fix - Personal data exporter: Do not export a customer data group containing no data. #20347
* Fix - Fix navigation notification in settings when clicking save. #20335
* Fix - Show discount amount for free shipping coupons. #20334
* Fix - Fixed cache clearing for category children for sites running object caching. #20308
* Fix - Use correct escaping on select2 placeholders. #20364
* Fix - Order by price clauses when searching within terms. #20391
* Fix - Clear needs_processing transient when adding a product to an order. #20390
* Enhancement - Permission_id constraint checks on install. #20366
* Dev - Added order to "woocommerce_order_is_vat_exempt" filter arguments. #20365
* Localization - Disable states for Bahrain. #20363
* Localization - Disable states for Luxemberg. #20389
= 3.4.1 - 2018-05-29 =
* Fix - Fix webhook admin filtering URLs. #20236
* Fix - Add missing wp_unslash calls to product data meta box to prevent quote characters being escaped on save. #20235
* Fix - Display price filter widget in LTR mode on RTL sites. #20221
* Fix - Refactor WC_Coupon constructor to allow for passing in coupon objects. #20193
* Fix - Path field in advanced CSV importer was broken due to an esc_url call. #20191
* Fix - Prevent shipping method instances trying to save settings on non-instance screens. #20217
* Fix - Wrapper function to get full mysql version string with mariadb handling. #20231
* Fix - woocommerce_pagination had some extra white space. #20214
* Fix - If a file size cannot be read, ignore range headers to prevent offsite downloads being 0kb. #20205
* Fix - Allow HTML when using `wc_attribute_label()`. #20202
* Fix - Update address-i18n.js to prevent appending multiple "(optional)" labels. #20195
* Fix - Check plugin properties exist when listening to auto_update_plugin hook. #20234
* Fix - Add extra checks in `get_canonical_package_rate_ids` to prevent notices. #20237
* Fix - Fix infinite loop with importing tax rates. #20253
* Fix - Echo attribute label for "empty" default option. #20256
* Fix - Fix download sample tax rates URL format. #20272
* Fix - Product properties should not be accessed directly PHP notice when calling `wc_get_product_attachment_props`. #20282
* Fix - If flexslider is disabled, gallery images also need to trigger photoswipe on click. #20290
* Fix - Product import file uploads on windows servers. #20273
* Fix - Fix variation attribute selection via the cart page/query string. #20293
* Fix - Add greater specificity to required styling in 2017 theme. #20296
* Enhancement - Export legacy paypal meta data in personal data exporter. #20200
* Enhancement - Improve performance of `wc_update_340_states` update routine to help prevent timeouts. #20241
* Dev - Remove red styling for PHP notice if using > 5.6. #20294
* Dev - Add an action hook after printing the cart item name. #20190
* Localization - Use "payment tokens" terminology in exports. #20197
= 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 [product_page] 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
= 3.3.5 - 2018-04-10 =
* Fix - Shop page notice should not appear when editing the "Hello World!" page.
* Fix - Inconsistent order item refund sign.
* Fix - Change `wc_get_price_excluding_tax` to not round the return value so calculations in admin are not pre-rounded.
* Fix - Use minimum price instead of maximum price when ordering variable products from low to high on term archives.
* Fix - `order` and `orderby` on shop page when using rewrite rules.
* Fix - Ajax loading spinner when using twentyseventeen theme.
* Fix - Out of Stock products change stock to On Backorder when imported to update existing products.
* Fix - Visibility dropdown not responding in quick edit when stock management is disabled.
* Fix - Featured paramenter in products endpoint on REST API.
* Fix - Linebreaks in order item meta.
* Fix - Product rating count when updated by admin.
* Tweak - Define array before attempting to append to it.
* Tweak - Change WC WP-CLI commands default per_page value to 100.
* Tweak - Ensure background process class returns `data` as an array.
* Tweak - Increase orders table checkbox column size on small devices.
* Tweak - Better support for infinite scroll in Jetpack.
= 3.3.4 - 2018-03-20 =
* Fix - Fixed undefined index after running setup wizard two times on fresh install.
* Fix - wc_get_loop_class; force columns to be a minimum of 1.
* Fix - Added loading spinner to WC panels in menu admin.
* Fix - Use relative scheme for AJAX endpoint to avoid errors when using a mix of HTTP and HTTPS.
* Fix - Fix SelectWoo templateSelection property.
* Fix - Layered nav support on unsupported theme archives.
* Fix - Prevent full refresh when editing store notice in the customizer.
* Fix - Only append tax label in email content if taxes are enabled.
* Fix - More reliable Jetpack detection.
* Fix - Check if product has weight before calculate weight total in cart.
* Fix - Correctly handle default ordering on the search page.
* Fix - Fix default product category handling in installer.
* Fix - Properly check slugs when updating attributes.
* Fix - Use gallery thumbnail size for variation image switcher.
* Fix - Clear subcategory cache when updating product categories.
* Fix - Round fractional cents when out of base.
* Fix - Inherit 'is variation' from existing attribute during csv import.
* Fix - Set is_shortcode loop prop when outputting subcategories.
* Fix - Reload gateways after updating the order.
* Tweak - Use wc_get_default_products_per_row as the default for product shortcodes.
* Tweak - Add post_excerpt to product search.
* Tweak - Update the description of the user tracking notice in the onboarding wizard.
* Tweak - Add extra data in order mobile view (status and date).
* Tweak - Add profile link to order screen.
= 3.3.3 - 2018-02-21 =
* Fix - Fixed is_numeric check which was affecting order subtotals/totals when using comma decimal separator.
* Fix - Add missing direct script access checks to loop templates.
* Fix - Added wp-post-image class to main image so variation images are swapped correctly.
* Fix - API - Adjusted schema for products shipping_class_id to integer.
* Fix - Made init tooltips event more specific to avoid conflict with Product Invoices extension.
= 3.3.2 - 2018-02-20 =
* Fix - Fixed admin product SKU searching and searching non-published products.
* Fix - PHP7.1 notice when image height is empty.
* Fix - Prevent repeated update_option calls on page load due to php type juggling.
* Fix - Only do unsupported template rendering in the loop to prevent conflicts with other shortcodes on the shop page.
* Fix - Don't prepend regular shortcodes with categories.
* Fix - If using get_catalog_ordering_args. remove the args when finished.
* Fix - Remove "Type" column on attributes table by default unless custom types are defined.
* Fix - Use verbose page rules when shop is in the URL, including shop base with category, to prevent 404s.
* Fix - Set woocommerce_hide_invisible_variations to true so disabled variation attributes are hidden on product pages.
* Fix - Help tip for webhook status.
* Fix - Shipping zone documentation help link was printing wrong.
* Fix - Stop background processing images when disabled via the filter.
* Fix - Only search when a search term is provided. Ignore empty strings.
* Fix - Fix check for external resources.
* Fix - Show full date for future orders.
* Fix - Prevent JS error is 'orders' row is disabled on order screen.
* Fix - Fix save of tax settings when no changes have been made.
* Fix - Add nonce to logout link on my account page so you do not need to confirm the action.
* Fix - Fix plain text entity replacement so currency symbols are included.
* Fix - API - Set status after order is created/updated so triggered emails are current.
* Fix - API - Fix single webhook endpoint.
* Tweak - Added help text for background image processing.
* Tweak - Added notice when background image processing is running, with cancel button.
* Tweak - Run background image processing less often by tracking changes.
* Tweak - Added system status tool to run background image processing manually.
* Tweak - If using Jetpack Photon, use that instead of background image processing.
* Tweak - Gallery thumbnail image size to handle small, square cropped images.
* Tweak - Helper function (and template version bump for image templates) to render gallery images.
* Tweak - Add help text for the default category to explain usage.
* Tweak - Allow changing the default product category.
* Tweak - Tweak mobile view of order preview to improve layout in non-english.
* Tweak - If selecting text, don't link to order on row click.
* Localization - Remove isle of man state.
= 3.3.1 - 2018-02-06 =
* Fix - Added `woocommerce_output_product_categories` to replace `woocommerce_product_subcategories` function to prevent outdated theme template files from outputting categories on the shop and category pages in err.
* Fix - Prevented columns from being set to anything lower than 1.
* Fix - Added extra error checking in Webhooks API to prevent notices when deleting Webhooks.
* Fix - Prevented list table classes being loaded multiple times. This also fixes compatibility with Smart Coupons extension.
* Fix - Removed stray debug string from order email template and fixed some typos.
* Fix - Set up the loop when calling wc_get_loop_prop. Fixes compatibility with some themes.
* Fix - Remove multiple application of filter 'woocommerce_order_item_product'.
* Fix - Protect against theme support being defined too late. Fixes some issues with custom themes defining WooCommerce support incorrectly.
* Fix - Add fallback for themes that just get the pagination template.
* Fix - Made the on-the-fly image regen also regenerate missing sizes.
* Fix - Fixed missing user_id in webhook migration script.
* Fix - Allow uncategorized category to be sorted like the others.
* Fix - If theme support changes, we may need to flush permalinks since some are changed based on this flag.
* Fix - Fire hooks for pagination etc only when pagination is enabled.
* Fix - Default HTML in end wrapper template.
* Fix - Prevent regular pagination showing on archives for unsupported themes.
* Fix - Fix shop when shown as homepage in unsupported themes.
* Fix - Fix SKU mapping for placeholders during CSV import.
* Fix - Use CRUD search helper in admin products table so partial SKU search works.
* Fix - Fix bulk sale/regular price percentage handling.
* Fix - More specificity on smallscreen style override for columns.
* Tweak - Add notice for moved store notice setting.
* Tweak - Allow removing coupons on editable orders only.
* Tweak - Extended the background processing library to avoid changing methods in the library.
* Tweak - Do not show row settings if something is managing the number of products per page.
* Tweak - Allow devs to add 'no-link' class to elements to prevent order view link being triggered on row click.
* Tweak - Made woocommerce_resize_images filter more useful by calling it later.
* Tweak - Revert default columns back to 4 so it's consistent with 3.2.
= 3.3.0 - 2018-01-30 =
* Feature - Improved default appearance in themes which do not support WooCommerce, making the shop page shortcode based.
* Feature - Products shortcodes; improved random sorting, with some caching.
* Feature - Products shortcodes; support for pagination.
* Feature - Added new options to the WordPress Appearance Customizer; control the product grid (rows and columns), and image sizes.
* Feature - Improved how image sizes are defined and calculated. Set an aspect ratio (custom, 1:1, uncropped) and image sizes will be automagically calculated based on widths.
* Feature - Changing image sizes will trigger automatic thumbnail regeneration in the background.
* Feature - Improved how downloads are stored within products, and added new reporting/logging features to track who downloaded what, when.
* Feature - Improved the overall appearance of the backend orders list, and added a new 'preview' button to quickly see order details.
* Feature - New default sample data and placeholders.
* Feature - Added sandbox and live API details to the PayPal standard data, as well as an indication on the checkout to what mode is currently active. PayPal IPN email notifications are also now optional.
* Feature - Introduced product category threshold filter (`woocommerce_product_category_filter_threshold`). AJAX powered select will kick in when you have over 100 categories.
* Feature - Added `add_to_cart_description` method and aria-labels to cart buttons in the loop for accessibility.
* Feature - Ability to search in logs when the database logger is used.
* Performance - Adjusted how permalinks are retrieved and saved to avoid switching locales on each page load.
* Performance - Added cache when loading product variation attributes.
* Fix - Fix wc_notice_count logic.
* Fix - Correct bulk edit price formatting.
* Fix - Ajax add-to-cart button shortcode fix for variations.
* Tweak - Update billing if account form changes.
* Tweak - Remove videos from help sections.
* Tweak - Preserve seconds when saving order date.
* Tweak - Allow quantities less than 1, but not 0, in admin.
* Tweak - Post types with no archives should not show in breadcrumb.
* Tweak - Only load session handler class on frontend not during cron.
* Tweak - Moved the 'Store Notice" option into the customizer.
* Tweak - Checkout Postcode / Zip validation error message was missing Billing / Shipping Identification.
* Tweak - Added Iris color picker validation.
* Tweak - Use scrollIntoView on checkout.
* Tweak - Converted input submit elements to button submit elements across the entire codebase for consistency.
* Tweak - Added `{site_title}` replacement for email footers.
* Tweak - Added delete product confirmation if a product has had sales.
* Tweak - Improved when "incl. VAT" is displayed in cart totals.
* Tweak - Use base text color for links in email templates.
* Tweak - Show theme overrides that are done through the wc_get_template filter in the system status report.
* Tweak - Added nofollow tags in layered nav to prevent duplicate indexed content.
* Tweak - Hide "incl. VAT" when no rates are defined in "single total" display mode.
* Tweak - Added replay protection for refunds.
* Tweak - GeoDB empty file handling.
* Tweak - Let wp_signon handle email to username conversion.
* Tweak - Made email field wider on checkout.
* Tweak - Post entire shipping selection when showing multiple packages.
* Dev - REST API - Orders should be created for users who exist on the site only.
* Dev - REST API - Fixed default value of "dp" on orders and refunds endpoints.
* Dev - Theming - Added theme support variables to declare image sizes used for products.
* Dev - Theming - Added support for single-product-postname.php template files.
* Dev - Added actions before calculations order totals and taxes and is_vat_excempt support.
* Dev - Add filter 'woocommerce_coupon_get_apply_quantity'.
* Dev - Grouped products; added filters to allow custom columns and changes to values.
* Dev - Allow for cloning the WC_Cart object
* Dev - Apply filters to registration-error-email-exists error.
* Dev - Added `woocommerce_cross_sells_order` filter.
* Dev - Add order-details `before` hooks to complement existing hooks.
* Dev - WC_CHUNK_SIZE constant for controlling readfile.
* Dev - Add short circuit to customer bought product function.
* Dev - Added a `wc_caught_exception` method to aid with logging.
* Dev - Added Data stores and CRUD for working with Webhooks.
* Dev - Bumped minimum WP version requirement to 4.5 and removed legacy API files.
* Dev - New actions - `woocommerce_order_details_before_order_table_items`, `woocommerce_order_details_after_order_table_items` and `woocommerce_order_details_before_order_table`
* Dev - Passed `widget_id` to `content-widget-product.php` so actions can be ran conditionally, and added sanitisation to `woocommerce_before_widget_product_list` and `woocommerce_after_widget_product_list`.
* Dev - Improved the `is_internal_meta_key` checks to consider getters and setters.
* Dev - Cleaned up the Order Customer Details template.
* Dev - JavaScript payment_method_selected events on checkout.
* Dev - Add new `$order->get_edit_order_url()` method.
* Dev - Pass through options to zoom, flexslider, and photoswipe.
* Dev - Added actions before and after scheduled sales initiation and completion.
* Localization - Add direction character to currency output.
* Localization - States for Tanzania and Moldova.
= 3.2.6 - 2017-12-13 =
* Fix - CSV Importer - Fix ID mapping to existing IDs.
* Fix - CSV Importer - Unslash header fields to avoid extra slashes.
* Fix - CSV Importer - Allow import and export of draft products.
* Fix - CSV Importer - Get global attribute ID only when is a global attribute.
* Fix - Remove URL fragment when appending geolocation hash.
* Fix - Additional cart rounding fixes so rounding before subtotal works again. Added more unit tests.
* Fix - Add BOM to exported report CSVs.
* Fix - is_visible should ensure product is is not trashed before returning true.
* Fix - Return packages with no rates back to the cart so the shipping calculator is displayed even when the current country is not shippable.
* Fix - Merge session and persistent carts when both exists after login.
* Fix - Remove "wc_error" query string after login.
* Fix - Allow woocommerce_form_field() have 'custom_attributes' equal 0.
* Fix - Bulk actions in status logs table.
* Fix - Exclude add-to-cart from pagination links.
* Fix - Updated $GLOBALS['post'] data in products shortcode to prevent theme conflicts.
* Fix - Only remove base taxes in cart totals class if item is taxable.
* Fix - REST API - Fixed date format in reports schema.
* Fix - REST API - Updated product categories image schema.
* Fix - REST API - UUse KSES for purchase_note like in admin.
* Fix - REST API - Filter passed images before processing so they can be unset via querystring.
* Tweak - Use protected instead of private methods to allow easy override in session handler.
* Tweak - wc_lostpassword_url should not be used before init - added warning.
* Localization - Update Japanese prefectures to include prefecture type.
= 3.2.5 - 2017-11-22 =
* Fix - WordPress 4.9 - REST API - Updated schema, sanitization, and validation callbacks to support correct data types.
* Fix - WordPress 4.9 - Fix an issue saving variation attributes on new products and with attributes containing slashes.
* Fix - Save fee tax lines to new orders on checkout.
* Fix - Restore the post global after rendering product shortcodes.
* Fix - Fix product filtering when searching for a string including quote characters.
* Fix - Fix layered nav drop-downs containing unicode characters.
* Fix - Fix an edge case rounding bug with shipping taxes, and another with non-integer quantities.
* Fix - Set correct defaults when adding a new shipping class in admin.
= 3.2.4 - 2017-11-16 =
* Fix - Cache IDs in shortcodes rather than query objects.
* Fix - Fix float rounding issues in cart with currencies like Bitcoin.
* Fix - Prevent slashes appearing in shipping fields and inside meta keys when using quotes.
* Fix - Check valid data when filtering `wp_nav_menu_objects` to prevent conflicts.
* Fix - `get_total_ex_tax` should exclude fee taxes.
* Fix - Fix orders count in tax reports.
* Fix - Allow removing coupons from the cart, even if coupons are disabled.
* Fix - Prevent calculate_totals totals running too often.
* Fix - Set attributes during variation creation so all options are correctly displayed in cart forms.
* Fix - Grab description directly to pass through wc_format_content to prevent double sanitization.
* Fix - Fix db warnings when using the "Add Order Indexes" tool.
* Fix - Remove unnecessary html formatting in variation dimensions field.
* Fix - Fix WC_Customer_Download isset method.
* Fix - Removed class within class in admin meta boxes HTML.
* Fix - Fixed wrong `flex-control-nav` selector scope in `add-to-cart-variation.js`
* Fix - Allow variations to be added to cart from query string.
* Fix - Use `add_filter` for `comment_feed_where` hook.
* Fix - Change nocache_headers hook firing in the cache helper.
* Fix - Coupon min/max spend based on displayed subtotal.
* Fix - Fix event propagation on click in setup wizard and improve validation.
* Fix - API - Change how line items are saved in API so calculations are correct.
* Tweak - Hide downloads from admin emails.
* Tweak - Set placeholder for variation lxwxh field to that of the parent.
* Tweak - Improve the Add Payment Methods display so buttons are not shown when no payment methods support the feature.
* Localization - Update NJ tax rate.
* Localization - Add Belarusian ruble BYN.
= 3.2.3 - 2017-11-02 =
* Fix - Fixed a conflict with some slider plugins due to sanitization of archive/term descriptions.
* Fix - Fixed a flexslider bug when there is only 1 image on the product page (no gallery).
* Fix - Prevent potential notices when someone extends product tabs wrongly.
* Fix - Fixed display of shipping calculator under some conditions.
* Fix - Fix discount calculation when customer is not within the base location and prices include tax.
= 3.2.2 - 2017-10-31 =
* Fix - Properly escape commas when exporting products to CSV.
* Fix - Fixed email template padding in Outlook.
* Fix - Flexslider support for RTL languages and fixes for zoom target in Chrome.
* Fix - Correctly sync prices for grouped products.
* Fix - Filter and remove invalid tax classes names.
* Fix - Stop showing "major" update notification for minor or patch releases.
* Fix - Allow scroll bar in untested plugins list on the bulk plugin updates screen.
* Fix - Fixed meta data cloning when duplicating products.
* Fix - Clean "Filter Products by Attribute" widget cache when updating attributes.
* Fix - Fixed warning messages when reseting passwords with an invalid key.
* Fix - Cart totals: Don't add shipping costs unless show_shipping is true.
* Fix - Cart totals: Calculate shipping after discounts so discount amounts are available.
* Fix - Cart totals: Fixed issue where VAT exempt users where still being charged VAT on the totals.
* Fix - Cart totals: Fixed the coupons user limit and calculations.
* Fix - Fixed "relevance" default sorting in search results.
* Fix - Use item tax class rather than product tax class when recalculating order totals.
* Tweak - Allow shortcodes and relative URLs for downloads in product CSV importer.
* Tweak - Save unsaved items first while deleting order items.
* Tweak - Only change `nocacheheaders` when on a cart/checkout page.
* Tweak - Setup locale before generating settings placeholders in email templates.
* Tweak - On checkout, improved the field locale logic to work without clearing default values.
* Tweak - Change title of customer invoice email for clarity.
* Tweak - Use custom event instead of blur to trigger validation.
* Tweak - Various selectWoo usability improvements and better support for keyboard controls on AJAX multiselect elements.
* Tweak - Various setup Wizard improvements.
* Dev - Fixed orders date query when querying by meta data.
* Dev - In the CSV exporter, added a filter to process meta values before export.
= 3.2.1 - 2017-10-13 =
* Fix - Made grouped products display in the saved order, vs the menu order.
* Fix - Made variations with 'same as parent' tax class calculate taxes correctly.
* Fix - Fixed tax rate reverting to 0 when the tax rate itself is not changed and the row is saved.
* Fix - Made tax rates sort correctly when defining postcodes and cities.
* Fix - Made guided tour help tab videos lazy-load to prevent performance issues.
* Fix - Added SelectWoo dependency to admin meta box scripts.
* Fix - Fixed cart subtotal 1p rounding error.
* Fix - Fixed discount logic to also look at variation parent categories when validating coupons.
* Fix - Product import filename based matching, and full URL based matching where the date part would still be present.
* Fix - Fixed storage of cart discounts when prices include tax.
* Fix - Added styling for screen-reader-text for themes which do not define it.
* Fix - Fixed legacy cart `prices_include_tax` variable.
* Fix - Hide cat-parent class when category will show no children due to the new depth setting.
* Fix - Make sure image zoom is enable for calling initZoomForTarget.
* Fix - {blogname} email placeholder.
* Fix - API - Use edit context when updating prices.
* Tweak - Clearly describe when a feature is powered by WooCommerce Services in the setup wizard.
* Tweak - Restored discount total line in order screen when discounts are present.
* Tweak - Add back option to send admin new order email, and include order number and customer email in order emails.
* Tweak - Replace settings screenshot on wp.org listing.
= 3.2.0 - 2017-10-11 =
* Feature - Coupons can now be applied and removed in admin when editing unpaid orders.
* Feature - Simplified the ability to resend order details to customers with a single "Resend Order Details" action.
* Feature - Added store street address, city and postal code to settings for use by plugins.
* Feature - Wrapping values in quotes now let's you use commas in the product CSV importer.
* Feature - If a fatal error occurs, WooCommerce will catch and log it to be viewed in WC > Status > Logs.
* Feature - Drag and drop sorting on the grouped product field to control display order.
* Feature - Integrated selectWoo; more accessible Select2 (enhanced select boxes) in admin and on the front-end.
* Feature - Enhanced select boxes in the shipping calculator.
* Feature - Enhanced select boxes in layered nav "or" widget.
* Feature - Ajaxified the product category filter on the products screen.
* Feature - `[products]` shortcode can be used in place of other product shortcodes - one shortcode to rule them all.
* Feature - Added option to control maximum depth of product category widget, and cleaned up widget naming.
* Feature - Show sorting options when viewing search results. This defaults to sorting by relevance.
* Feature - Support for the `WC tested up to` plugin header to show which extensions have been tested against updates.
* Feature - Helper - Filters on the subscription management screen, update notifications, and support for shared licenses.
* Tweak - Importer now supports menu_order property, adds filename based titles to imported images, and correctly sets post status of variations.
* Tweak - Made the buyer phone number clickable in the in the order back-end.
* Tweak - Clean up user is_paying_customer after deleting an order.
* Tweak - If stock changes between page load and editing, reject stock changes to avoid incorrect stock changes.
* Tweak - Disable search engines indexing core, dynamic, cart/checkout pages.
* Tweak - Added shortcodes to description output in structured data, and improved variable product data.
* Tweak - Use AJAX when restoring an item in the cart, and removing an item from the mini-cart.
* Tweak - On-boarding: added "next" button to pointers and allowed them to be dismissed.
* Tweak - Display post states for WC pages e.g. shop, checkout etc.
* Tweak - Improved order tracking page display and validation.
* Tweak - Wizard improvements, with store-owner newsletter sign-up.
* Tweak - Improved tax calculations on negative fees by apportioning to all items.
* Tweak - Added logic to install the plugins and themes asynchronously without using wp-cron.
* Tweak - Modify product API returned data by context.
* Tweak - Move js clipboards off of zeroclipboard script.
* Tweak - Remove spam trap field from registration form.
* Tweak - Added screen reader text to quantity input template.
* Fix - Improved error handling in the CSV importer when invalid files are uploaded.
* Fix - Handle full refunds in tax report by date.
* Fix - API - Return empty result when there is no on_sale products.
* Fix - Fixed WC_Emails::wrap_message hooks .
* Fix - Load up gateways on ajax order status transitions so PayPal funds capture when order is completed.
* Fix - Replace wistia videos with youtube.
* Fix - Handle sale dates on the fly in case of missed cron schedule.
* Fix - If sorting by date in the REST API, fallback to ID so searches are consistant.
* Fix - Do not apply custom sorting to product feeds.
* Fix - Make importer columns case-insensitive.
* Dev - Make parse_date_for_wp_query public.
* Dev - API - Creating webhooks uses the current API version rather than the latest API version.
* Dev - Product CRUD search helpers.
* Dev - Refactor shipping rate to include instance IDs, and pass instance IDs through filters.
* Dev - New attribute helper functions.
* Dev - Order note helper functions.
* Dev - Added the "Terms and conditions" page to the api system status report.
* Dev - Made date inputs reusable.
* Dev - Added option for merging when using 'Order Again' via filter `woocommerce_empty_cart_when_order_again`.
* Dev - Added system status tool for re-populating order address search indexes.
* Dev - Added system status tool for clearing webhook logs.
* Dev - Added woocommerce_get_asset_url filter.
* Dev - Show notice when internal meta props are accessed directly.
* Dev - Improve meta data updates so data is only updated when changed.
* Dev - Improved get_filtered_term_product_counts performance.
* Dev - Introduced wc_get_account_orders_actions function.
* Dev - `wc_get_account_formatted_address` can get address by customer ID.
* Dev - Added `woocommerce_get_product_id_by_sku` filter.
* Dev - Refactored cart to use new WC_Cart_Session/WC_Cart_Totals/WC_Cart_Fees/WC_Discounts classes.
* Dev - New `WC_Shortcode_Products` class to handle all product based shortcodes.
* Theming - Display downloads in their own table, universally, using a new template file.
* Theming - Streamlined email templates content: using the new downloads table, moved billing email with the billing address, order notes into the order totals table, and removed the need for 'downloadable' subjects/headings.
* Theming - Checkout: Order pay template
* Localization - Added cantons of Switzerland.
* Localization - Updated XAF and XOF currency codes.
* Localization - Added rtl support for activation.css.
* Localization - Updated Mexican states to use correct 2 letter codes.
* Localization - Improved many strings by excluding HTML.
= 3.1.2 - 2017-08-15 =
* Fix - Importer: Prevent multiple placeholders being created when mixing IDs and SKUs.
* Fix - Importer: correctly set stock management props.
* Fix - Importer: Allow "unfiltered_html" for name, description and short description fields.
* Fix - Fix filename image handling.
* Fix - Rest API: Allow OPTIONS requests.
* Fix - Fixed missing reviews in product_page shortcode when querying by SKU.
* Fix - Don't subtract negative taxes in net sales report.
* Fix - Sort by order + zone ID as a fallback in shipping zones so the zones always match in the same order.
* Fix - Corrected subject and heading in customer refunded email.
* Fix - Corrected handling of custom checkbox fields in checkout get_posted_data method.
* Fix - Fix admin help videos async property.
* Fix - Fixed price filters by introducing precision.
* Fix - Improved customer IP address detection.
* Fix - Fix dark theme readability.
* Fix - CLI tools command.
* Fix - Adjusted shop manager role to prevent unfiltered HTML being used.
* Fix - Various notices/warnings.
* Dev - Correctly invalidate cache after saving order items.
* Dev - Added `woocommerce_data_store_wp_{$this->meta_type}_read_meta` filter.
= 3.1.1 - 2017-07-11 =
* Fix - Product importer: fixed handling of non UTF8 characters in descriptions.
* Fix - Product importer: Allow times in date fields.
* Fix - Product exporter: fixed meta data checkbox option.
* Fix - Helper: Styling and connect button in non-english languages.
* Fix - Tweak terms and conditions template to check for disallowed shortcodes.
* Fix - Fixed order helper queries when before_date and after_date args are both, corrected use of "paged", and corrected use of filters.
* Fix - Gallery; Trigger resize after main image loads to ensure correct gallery size.
* Fix - Prevent extra slashes being added to meta values when using the CRUD.
* Fix - Appends "where" clauses in the comment feed to prevent a notice.
* Fix - Fixed structured data output for variable product prices.
* Fix - 3.x issue: Changed state validation logic to work for MX states.
* Fix - 3.x issue: 7day reports should start from midnight, not the current time.
* Fix - 3.x issue: Status changes made by admin should be marked as a manual in the order notes.
* Fix - 3.x issue: Allow unsetting product shipping class in REST API.
* Fix - 3.x issue: Corrected error handling in zones shippingMethodView.
* Tweak - Avoid CloudFlare email obfuscation in admin.
* Tweak - Improved detection of DOING_AUTOSAVE in admin meta box code.
* Tweak - Improved my-account redirects and fallbacks.
* Tweak - Add `cart_subtotal` to the shipping package so prices are recalculated when needed.
* Dev - Add search_customers() filter in customer data store.
* Dev - Product exporter: woocommerce_product_export_skip_meta_keys filter to control what gets exported.
* Dev - Pass correct value to woocommerce_shipping_classes_save_class when inserting a new term
= 3.1.0 - 2017-06-28 =
* Feature - Built-in product CSV importer and exporter for products.
* Feature - Display (toggle-able) terms inline on the checkout rather than showing a link.
* Feature - On the "pay for order" page, if logged out show a login form rather than an error message.
* Feature - Enabled oembed support for product short descriptions.
* Feature - Added bulk variation update for stock status.
* Feature - On customer profiles: added a button to copy billing address to shipping address.
* Feature - Setup Wizard - Automatic Shipping Zone Creation In Setup Wizard for the base location.
* Feature - Setup Wizard - Added a new optional Storefront Theme step if you're using a non-WooCommerce compatible theme.
* Feature - Made it possible to manage extension licenses purchased from WooCommerce.com on the extensions screen.
* Tweak - Gallery - Added a data-caption for captions to support both captions and titles for SEO.
* Tweak - Gallery - Used smoothHeight setting to better support images of different heights.
* Tweak - UI - Added blank states for API keys & webhooks.
* Tweak - UI - Made Product submenu labels consistent in admin.
* Tweak - UI - Changed street address field label and placeholder to minimize user error on checkout.
* Tweak - UI - Added a confirmation before deleting log files.
* Tweak - If prices are the same for all variations, use price not priceSpecification in structured data.
* Tweak - Added variable so shipping calculator is shown on first row only when showing multiple shipping packages.
* Tweak - Updated mini-cart HTML to use a list.
* Tweak - Allow linking to single product additional_information tab from url hash.
* Tweak - Re-included WooCommerce endpoints on the appearance > menus screens.
* Tweak - Always sync incorrect titles on variation read regardless of version.
* Tweak - Standardize rating HTML in all templates.
* Tweak - When searching, disable WC sort order so results are sorted by relevance.
* Tweak - Update price sorting code to use min or max for variable products depending on sorting direction.
* Tweak - Utilize $product method to get thumbnail in loops.
* Tweak - Check for an existing display name before updating a user on checkout. Adds display_name prop to the CRUD.
* Tweak - Adapt variable product price used in sorting based on direction of sort.
* Tweak - Made state validation less strict for keys.
* Tweak - For COD orders, force payment complete status to be completed.
* Fix - Use get_max_purchase_quantity in cart template and fix logic when stock management is off.
* Fix - Added log_id as the secondary sorting column to log list so log entries sort correctly.
* Fix - Fix shop page when using shop base and UTF8 shop page slug.
* Fix - Added handles so drag and drop does not break edit on mobile when sorting categories.
* Fix - Added ABSPATH checks to all files.
* Fix - Fixed how to flush rewrite rules after saving the shop main page.
* Fix - Emails sent via admin should switch to global locale.
* Fix - Set and restore wp_query so product page functions think it's a real product page.
* Fix - Variation default value of '0' fails to save on product.
* Fix - Prevent locations being added to the "Rest Of The World" shipping zone via the API.
* Dev - Allow date created to be set in wc_create_refund.
* Dev - Introduced a [WC_Order_Query class](https://github.com/woocommerce/woocommerce/wiki/wc_get_orders-and-WC_Order_Query) for finding/searching orders.
* Dev - Added "restored" webhook.
* Dev - Support floats for the custom attribute name sorting function.
* Dev - Updated Emogrifier to version 1.2.
* Dev - Sort product data tabs by priority in admin screen.
* Dev - Added new hooks for: dashboard reviews widget, product and category sorting events, woocommerce_add_to_cart_sold_individually_found_in_cart, cart empty messages.
* Dev - Added filters for zoom / flexslider / photoswipe enabling.
* Dev - Added filter for cookie name.
* Dev - Added ability to filter Photoswipe lightbox options.
* Dev - Added new filter for product thumbnail size.
* Dev - Added action for displaying custom data for fees in admin.
* Dev - Changed build_payload from private to public in webhook system.
* Dev - Added deprecated notice to WC_Order_Item_Meta (deprecated in 3.0).
* Dev - Added namespace to jQuery events that are removed in VariationForm.
* Dev - Made WC_Checkout::get_posted_data() public.
* Dev - Add custom message for custom system status tools.
* Dev - Added filters to change which order items are created and loaded to support custom item types.
* Dev - Updated jQuery payment and serializejson libraries.
* Localization - Added Bolivian states.
* Localization - Use VAT for Norway instead of Tax.
= 3.0.9 - 2017-06-22 =
* Fix - Exclude sale products from category checks if coupon is not valid for sale products in coupon class.
* Fix - Fix missing states in state field when selected country differs from checkout data. Required template modification.
* Fix - Updated `woocommerce_email_actions` to send email when order status changes from processing to cancelled.
* Fix - Fix undefined variables in terms and legacy order API endpoints.
* Fix - Correctly update variation outofstock term on save.
* Fix - Add a nonce and confirmation message for logging out via the customer my account page.
* Fix - Allow setting grouped_products via the API.
* Fix - Prevent edge case errors in `wc_get_product_term_ids`.
* Fix - Remove extra escaping to fix saving of special characters in attribute terms.
* Fix - Stricter shipping method matching in COD to prevent conflicts.
* Fix - Recalculate totals after local pickup selection so taxes are recalculated.
* Fix - Add missing nonce to product sales report.
* Fix - Fix webhook save actions and ping the URL to test only once.
* Fix - Fix issue with CLI IDs which overlap with actual data.
* Fix - Normalise emails in coupons so lower/upper case is ignored.
* Fix - Added background color to `x` button in product gallery edit box.
* Dev - Renamed `woocommerce_credit_card_type_labels` filter from `wocommerce_credit_card_type_labels`.
= 3.0.8 - 2017-06-06 =
* Fix - Include multi-dimensional array support in oAuth1.0.
* Fix - Stock/backorder notice when stock management is disabled.
* Fix - Handle shipping item taxes if set to avoid the legacy fallback.
* Fix - Variations should inherit purchase_note from parent.
* Fix - Check if subtotal is blank, not empty, before setting for order items.
* Fix - Cancelled email should be send for processing orders, not pending.
* Fix - Missing variable in legacy API.
* Fix - Correct price query when on a post type archive.
* Fix - Missing $ip Variable in geolocation class.
* Fix - A single multi-word attribute is fine for variation titles.
* Fix - Gallery should be updated even if empty in REST API.
* Fix - Fix saving of text attributes with special chars.
* Fix - Undefined index warning when saving variations with stock management disabled.
* Fix - Use meta id instead of key in WC_Order_Item::offsetGet.
* Fix - Format parent stock qty on read.
* Fix - Hide replies from recent reviews widgets.
* Fix - Use formatted weight and dimensions for variations.
* Fix - Ensure we have child before getting price to fix a notice in grouped products.
* Fix - Fixed unicode characters when saving webhook delivery logs.
* Fix - Avoid deprecated ID in legacy API.
* Fix - Add correct args to woocommerce_shipping_zone_method_deleted and woocommerce_shortcode_products_query hooks.
* Fix - Correctly append cache in product widget.
* Fix - Add ability to invalidate cache by object ID.
* Fix - Notice in structured data class.
* Fix - Only delete if an object has an ID in CRUD to avoid wp_delete_post using global ID.
* Fix - Avoid notices on checkout by ensuring all legacy data is correctly set.
* Fix - Add failed to processing event for the processing email.
* Fix - Store user ID and use that to determine if the session should be loaded or not. Ensures user data is correct and shipping calculator data is stored.
= 3.0.7 - 2017-05-16 =
* Fix - Display of grouped product permalinks + names.
* Fix - Ensure `wc_get_payment_gateway_by_order` has a valid order ID to avoid errors.
* Fix - Ensure `get_plugin_updates` exists in API.
* Fix - Correctly set rating term after updating product visibility.
* Fix - `is_ip_address` should be static.
* Fix - Handle clearing for 3, 4, and 5 columns in the product gallery.
* Fix - Some added protection against notices/errors in the assets and variation data-store files.
* Fix - If backorders are enabled, do not make variable products out of stock.
* Fix - Undefined function in `class-wc-embed.php`.
* Fix - Fix 'base location' not being returned via the settings API.
* Fix - When re-filling fields on checkout, only change the empty ones to avoid conflicts with gateway plugins and hidden fields.
* Fix - Make calculate tax function clear taxes if taxes are disabled on recalculation.
* Fix - Update all customer session address fields when updating via checkout.
* Fix - Support customer searches < 3 characters long, but with result limiting.
= 3.0.6 - 2017-05-09 =
* Fix - Fixed conflict between global attributes and custom attributes with the same names.
* Fix - Added missing "id" to API for shipping zone methods to support the CLI.
* Fix - Incorrect use of `wc_format_price_range` in `get_price_html_from_to`.
* Fix - Clone each meta object when cloning WC_Data object to avoid modifying original meta stdClass objects.
* Fix - Fix non numeric warning for some order data.
* Fix - Fixed a warning when no customer country is defined for state input.
* Fix - Use term name when reordering so correct data is passed to the new order.
* Fix - Formatting issues in wc_display_item_meta.
* Fix - Check if IP address is valid in IP address detection code.
* Fix - wc_attribute_taxonomy_id_by_name should use wc_sanitize_taxonomy_name to prevent breaking special chars.
* Fix - Correct variable name in order structured data.
* Fix - Prepend new item keys with `$items_key` to make them unique.
* Fix - Hide offers from structured markup when blank.
* Fix - Fixed "Process to checkout" button color in Twenty seventeen dark theme.
* Fix - Only set reply-to if the email + name is set.
* Fix - Correctly exclude terms in wc_get_related_products.
* Fix - Reset post data prevents grouped products working in shortcodes.
* Fix - Fix min price range comparisons.
* Fix - Properly save order items in legacy REST API.