forked from woocommerce/woocommerce
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
2216 lines (2112 loc) · 142 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.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.
* Fix - Use correct full size for variation images.
* Fix - Add noscript style for gallery.
* Fix - Fix/duplicate potential stock reduction with paypal.
* Tweak - Improve _wc_term_recount performance.
* Tweak - Improve plugin update detection in system status report to reduce timeouts.
* Tweak - Improve "Save Order" button to reproduce WordPress post/page behavior.
* Tweak - Added zipcode validation for France.
* Dev - Added woocommerce_shop_order_search_results filter.
= 3.0.5 - 2017-04-28 =
* Fix - Tooltip display within shipping zone modals.
* Fix - Fix missing title for actions column on mobile.
* Fix - Allow forward slash in telephone field.
* Fix - Sort grouped products by menu order when displaying.
* Fix - Fix term exclusion in term count queries.
* Fix - Filter invalid products before returning them for wc_get_products.
* Fix - Prevent orders being their own parent (causes errors).
* Fix - Correctly migrate legacy shipping taxes data.
* Fix - Make sure the meta data cache is not shared among instances.
* Fix - Correct the stock display notice when a variable product manages stock for it's children.
* Fix - On multisite, add user to blog during checkout if not a user to prevent errors.
* Fix - Correct sale price date handling with some timezone setups.
* Fix - wc_attribute_taxonomy_id_by_name needs to use lowercase attribute slug to work.
* Fix - Make changes to the buyer's company name in the shipping section of checkout persist.
* Tweak - Add required placeholder for meta fields in backend.
* Tweak - Don't strtolower address strings on checkout validation messages.
* REST API - Prevent password change notification when creating a customer.
* REST API - Removed duplicated items returned in shipping and checkout endpoints.
* CLI - Fixed missing shipping zones route.
* Dev - Make get_price_html handling match 2.6 and pass all values through woocommerce_get_price_html filter.
* Dev - Legacy customer class missing get_address / get_address_2 functions.
* Dev - Restored filter `woocommerce_checkout_customer_id` during checkout validation.
* Dev - Adds missing `$this` argument for all `woocommerce_payment_complete_order_status` filters.
= 3.0.4 - 2017-04-20 =
* Fix - Variations were not inheriting the product image and shipping class ID.
* Fix - Prevent rating/review counts being duplicated when duplicating products.
* Fix - Fixed gallery navigation between images with long captions.
* Fix - Support transparent PNG in the gallery by setting a background color.
* Fix - Removed name/company from the shipping address Google map links.
* Fix - Fixed the address field sorting script on the checkout.
* Fix - Fixed the upgrade routine for grouped products so that parents are unset.
* Fix - Fixed support for WordPress 4.7 user locale settings.
* Fix - Fixed default option filter for product types in the product meta box.
* Fix - Improved the css in Twenty Seventeen for dark color schemes.
* Fix - Fixed display of refunds in sales report.
* Fix - Updated `single-product/add-to-cart/variable.php` template version to 3.0.0 since it had changes since 2.6.
* Fix - Fixed warnings when product attribute do not exists.
* Fix - Used a div for comment-form-rating to prevent invalid nested markup.
* Fix - Fixed some logic that checks if order taxes are compound.
* Fix - Fixed SKU checks to only exclude products that are trashed.
* Fix - Fixed display of download permissions in first email sent after checkout.
* Fix - Hidden the backorder notification stock text when notification is disabled.
* Fix - Fixed incorrect stock numbers in low stock emails.
* Tweak - Removed the non-functional order total input box, and combined the recalculation buttons into one working button.
* Tweak - Updated Guided Tour videos.
* Tweak - Updated js-cookie.js to 2.1.4.
* Tweak - Updated schema.org URLs to use HTTPS.
* Tweak - Status report request timeouts.
* REST API - Fixed an issue that prevented deleting a term if errors were thrown during creation.
* REST API - Fixed reports endpoint when querying by date.
* REST API - Fixed ignored order parameters when changing order status.
* Dev - Support guest orders in `wc_get_orders` function.
* Dev - Fixed downloadable variation filters for download URLs.
* Dev - Added safeguards to prevent infinite loops while saving coupons, products and orders in admin.
* Dev - Added a fallback for `queue_transactional_email` if background sending is disabled.
* Dev - Added `has_shipping_address` helper method.
* Dev - Introduced `woocommerce_order_item_get_formatted_meta_data` filter.
* Dev - Made wc_add_order_item pass correct values to woocommerce_new_order_item.
* Dev - Fixed `legacy_posted_data` access in checkout class.
* Dev - Fixed undefined property notice in `WC_Order_Item::offsetGet`.
* Dev - Fixed PHP 7.1 warnings when using non-float values to `wc_get_weight()`.
* Dev - Fixed incorrect variable name in `wc_add_order_item()`.
= 3.0.3 - 2017-04-13 =
* Fix - Fixed an issue with variation tax-classes when set to 'parent'. This made taxes apply on top of the tax inclusive price in certain setups.
* Fix - Escaped attribute translations in the `cart.php` template and bumped the template version to match.
* Fix - Corrected the display of refund dates on the order screen.
* Fix - Fixed the grouped product visibility check in the grouped.php template and bumped the template version to match.
* Fix - Fixed the sale badge display for grouped products.
* Fix - Added the `itemReviewed` structured data for product reviews to make it validate.
* Fix - Made the `get_attribute` method work on variation objects.
* Tweak - Turned off the deferred email sending by default which was added in 3.0. Whilst it does improve performance, there were compatibility problems on some servers. It can be enabled with a filter if desired.
* Dev - Added backtrace information to the deprecation messages to help find problem plugins.
= 3.0.2 - 2017-04-12 =
* Fix - Removed required states for GP, GF, KW, LB, MQ, RE and YT countries.
* Fix - Made cache in the [products] shortcode respect filters from plugins.
* Fix - Added missing `woocommerce_cross_sells_columns` filter.
* Fix - Fixed shortcode rendering on the shop page.
* Fix - Fixed incorrect sale dates when bulk editing variations.
* Fix - Fixed calls to wc_reduce_stock_levels in PayPal and Simplify gateways.
* Fix - Exclude "location" meta when reading customer meta data.
* Fix - Updated `emails/email-addresses.php`, `emails/email-order-details.php`, `content-single-product.php`, `checkout/form-shipping.php`, `myaccount/form-add-payment-method.php`, `myaccount/form-edit-address.php`, `myaccount/form-lost-password.php`, `myaccount/form-reset-password.php`, `myaccount/orders.php` and `myaccount/view-order.php` template version to 3.0.0 since they had changes since 2.6.
* Fix - Fixed default behavior of variation tax classes when originally set to "parent".
* Fix - When duplicating products, do not copy slug, append "(Copy)" to the product name, correctly copy all meta data, and prevent children of grouped products being duplicated too.
* Fix - Removed duplicated items when outputting cross sells on the cart page.
* Fix - Fixed output of default "add to cart" text of external products in loops.
* Fix - Fixed backwards compatibility of guest checkout rules when being altered by plugins directly.
* Fix - Use correct thumbnail sizes for variation images in the new gallery.
* Fix - Fixed captions on thumbnails and main image in the new gallery.
* Fix - Trigger wc_fragments_loaded after add to cart fragment refresh.
* Fix - Download permissions; Convert dates to timestamp on read so UTC is preserved.
* Fix - Fixed notices under PHP 7.1 when sorting products by name (numeric).
* Fix - Added additional checks to ensure objects are read before using class methods to avoid errors.
* Fix - Removed legacy suggest.js code which was causing JS error on bulk edit.
* Fix - Fixed warnings on the "Lost password" page and when loading a product with invalid attributes.
* Fix - Made background emailer update the queue after a successful send so duplicate mails are less likely.
* Fix - Typo in flexslider_enabled option in new gallery script.
* Fix - woocommerce_notify_low_stock and woocommerce_notify_no_stock options had no effect.
* Tweak - For downloadable files, only validate file type when dealing with relative paths.
* Tweak - Improved automatic variation name generation.
* Dev - Added product visibility terms to system status report to help debug.
* Dev - Introduced `woocommerce_admin_order_date_format` filter to replace missing `post_date_column_time`.
* Dev - Introduced `woocommerce_update_customer_args` filter to prevent updates to user objects if needed.
* REST API - Fixed saving of variations in legacy REST API v3.
* REST API - Fixed backwards compatibility of line_items meta in legacy REST API.
= 3.0.1 - 2017-04-06 =
* Fix - Show catalog hidden products within grouped products.
* Fix - Fade in the gallery in if no images are set or it's custom.
* Fix - Use wc_deprecated_function in WC_Deprecated_Hooks so notices aren't output in ajax requests.
* Fix - Added back the ability to include extra items to the System Status using the `woocommerce_system_status_environment_rows` filter.
* Fix - Coupon category restrictions and limits for variations.
* Fix - Allow shortcodes and HTML in variation descriptions like in 2.6.
* Fix - Unset post date when duplicating products.
* Fix - Show a sale price on variable products if on sale and all prices are the same.
* Fix - Corrected download links when a product has multiple downloads.
* Fix - Prevented potential errors if the product type was not posted for any reason on save.
* Fix - Updated `single-product/up-sells.php`, `loop/add-to-cart.php`, `loop/rating.php`, `checkout/form-billing.php`, and `content-product.php` template version to 3.0.0.
* Fix - Included clearfixes on billing and shipping field wrappers,
* Fix - Fixed styling of logs table in some languages.
* Fix - Fixed display of variation attributes on old orders.
* Fix - Use placeholder text for external products add to cart button text if left blank.
* Fix - Fallback to home URL if no shop page is set for system status security check for HTTPS.
* Fix - For variations, pull tax status and sold individually from the parent since there is no UI to set this at variation level.
* Fix - Moved cron emails to background processing to avoid multiple sends.
* Fix - Wrapped structured data in a hidden element when added to emails.
* Fix - Missing gateway information in queued emails.
* Fix - Fixed a bug that caused pages to permanently reload if "Default customer location" was set to "Geolocate (with page caching support)".
* Fix - When forcing shipping to billing, set the shipping fields in the order itself.
* Fix - Check for invalid objects in WC_Register_WP_Admin_Settings.
* Fix - Check for error object in wc_get_object_terms.
* Fix - Removed slashes in shipping meta data on the order edit screen.
* Fix - Prevented permalink rewrites for attributes with missing names.
* Fix - Fixed saving of meta data when multiple extensions use the `save_post` action.
* Fix - Allow search customers by ID in edit order screen.
* Fix - Prevents session data overwriting customer data on login.
* Fix - Fixed cross-sell column display and variation support.
* Fix - Fixed variable product stock syncing on save.
* Fix - Included try/catch wrapper to prevent issues with Select2.
* Fix - Prevented a bug that deleted all variations when the product type was change from variable to simple.
* Fix - Switched to WPDB to quicker update when syncing titles for variations.
* Fix - Exclude deprecated properties when loading a customer object.
* Fix - Fixed notices while trying to order again.
* Fix - Fixed notices when `$wpdb->prefix` is empty.
* Fix - Prevent errors when loading a product with an invalid download file types.
* REST API - Fixed missing array declaration in CRUD controller.
* REST API - Removed extra `exclude`, `include` and `search` parameters from taxes endpoint.
* REST API - Fixed variation description formatting.
* REST API - Fixed incorrect attribute check in products endpoint in Legacy REST API.
* REST API - Allow variation image to be unset.
= 3.0.0 - 2017-04-04 =
* New gallery on single product pages with better mobile support, using PhotoSwipe and Zoom. Declare support with add_theme_support() - wc-product-gallery-zoom, wc-product-gallery-lightbox, wc-product-gallery-slider
* Made the store notice dismissible on the frontend.
* Variable products no longer show striked out prices in combination with ranges for clarity when on sale.
* Prices no longer display as 'free' instead of 0, to fix issues with ranges and localization and for consistency.
* Improved structured product data by using JSON-LD instead of inline Microdata.
* Improved downloads list layout (template file).
* Respect stock status and prevent the "out of stock threshold" setting affecting existing in-stock products.
* Improved handling of shop page rewrite rules to allow subpages.
* Redirect to login after password reset.
* When using authorizations in PayPal Standard, automatically capture funds when the order goes processing/completed.
* On multisite, when a user logs into a store with an account on a site, but not the current site, rather than error, add the user to the current site as a customer.
* Show variable weights/dimensions even when parent values are not set.
* Automatically sort tax rates rather than allow clunky manual sorting.
* When deleting a tax rate class, remove it's tax rates.
* Made WC_Logger pluggable via wc_get_logger function.
* Use 'average rating' post meta for 'rating' product sorting option.
* Show better labels in nav menus metabox.
* Sort “Recently Viewed” products by the view order.
* Removed internal scroll from log viewer.
* Add reply-to to admin emails.
* Improved the zone setup flow.
* Made wc_get_wildcard_postcodes return the orignal postcode plus * since wildcards should match empty strings too.
* Use all paid statuses in $customer->get_total_spent().
* Move location of billing email field to work with password managers.
* Option to restrict selling locations by country.
* Added tool to clear orphaned variations in system status.
* Remove checkbox options in system status tools and replace with constants.
* Added security section in system status report.
* Add image_url setting to PayPal Standard.
* Fixed attribute registration. Attributes are non-hierarchical by default (parent is not supported).
* Add sort parameter to checkout fields to aid with sorting per locale.
* Merged percent and percent product coupon types (they provide the same discount).
* Prevent payment details being cleared after update_checkout events.
* Performance - Converted _featured and _visibility meta data to terms for faster catalog queries. Upgrade routine handles migration. Developers may need to update queries to reflect this change.
* Includes product attributes archives links in "Additional Information" tab.
* Select2 has been upgraded to v4.
* Improved logging system for extensions.
* Tax suffix is now hidden on non-taxable products.
* Grouped products are linked from the parent rather than the children. Children can be in more than one group.
* Removed coupon usage link in coupons admin screen.
* Performance - Converted rating filters to visibility terms.
* Performance - Added visibility term for outofstock products to speed those queries up also.
* Performance - Introduced a new CRUD (create, read, update, delete) system for Products, Orders, Customers and Shipping Zones.
* Performance - Optimised variable product sync. Upper/lower price meta is no longer stored, just the main prices, if a child has weight, and if a child has dimensions.
* Performance - Removed WP_Query from up-sells.php and related.php and replaced with PHP foreach loop (since we already have the product IDs).
* Performance - Removed the feature where old orders get access to new downloads on product edit. Looping potentially thousands of orders to do this is too much of a performance burden for stores and this can sometimes be unexpected behavior too. This does however updates *edited* downloads.
* Performance - Removed 'items' column on orders screen due to loading excessive data.
* Performance - Deferred email sending for faster checkouts. Now uses CRON.
* API - New Rest API v2 with support for meta_data amongst other things.
* API - Removed last order from customers part of the API due to performance concerns - use orders endpoint instead. Other order data on the endpoint is now transient cached.
* API - Allow oAuth1.0a authentication using headers.
* API - New Shipping Zones endpoints.
* API - New variations endpoints.
* API - New settings endpoints.
* API - Payment gateways and shipping methods endpoints.
* API - Prevented the (broken) ability to manipulate variations directly on the products endpoints.
* CLI - New CLI which uses the REST API endpoints rather than it's own functions.
* Localization - Improved RTL support.
* Localization - Added a language independent permalink setting function.
* Localization - Added inline comments for placeholder strings.
* Localization - Added Nigerian and Pakistan Provinces to i18n/state.
* Localization - US and Poland postcode validation.
* To read more about this release, see our dev blog announcement here: http://wp.me/p6wtcw-Uo
= 2.6.14 - 2017-02-02 =
* Fix - Ensure product exists in wc_update_product_stock.
* Fix - Send emails using the site language.
* Fix - Remove tilde typo.
* Fix - Fixed notice in get_rating_count.
* Tweak - Define arg and return data types, added extra descriptions, and correctly cast IDs in the Rest API.
* Tweak - Handle custom error data in WC_REST_Exception.
* Tweak - Display conflicted product ID when using a duplicate SKU via the API.
* Localization - Add Finnish defaults to the installer.
= 2.6.13 - 2017-01-18 =
* Fix - Demo store banner styling in 2017.
* Fix - Removed default instructions from COD, BACS and Check gateways so displayed messages can be unset.
* Fix - Made variation options update on first load.
* Localization - Added Romanian locale to the installer.
= 2.6.12 - 2017-01-12 =
* Fix - Make images shown up on pageload when using ajax variations.
* Fix - Allow variations options to be deselected in IE11.
* Fix - Disabled-button and pagination styling in 2017.
* Fix - PHP 7.1 compatibility issues with non-numeric math operations.
* Fix - Fix notices in abstract class when price is empty.
= 2.6.11 - 2016-12-22 =
* Fix - Variation form compatibility with quotes in attribute values, and initial variation image fadeIn on certain configs.
= 2.6.10 - 2016-12-22 =
* Fix - Flat rate no class costs when no shipping classes exist.
* Fix - Returned REST API coupon expiry date.
* Fix - reviews_allowed being set to false in Rest API.
* Fix - Sales date series for some custom ranges.
* Fix - Missing attributes when an option is chosen by default on variations. This was the result of a Firefox 50 compatibility fix. In order to support both Firefox, Chrome, IE, and Edge we've done some refactoring of the variation add to cart scripts.
* Tweak - Updated Geo IP API services.
* Dev - Added support for WP VIP/VIP GO GEO IP headers.
* Dev - API - Throw error messages when product image ID is not a valid WordPress attachment ID.
= 2.6.9 - 2016-12-07 =
* Theme - Added support for Twenty Seventeen Theme.
* Fix - Excluded webhook delivery logs from comments count.
* Fix - Included password strength meter in "Lost Password" page.
* Fix - Order fee currency in admin screen.
* Fix - Variation selection on Firefox 40.
* Fix - Don't prevent submission when table is not found on cart.
* Fix - Improved layered nav counts on attribute archives.
* Fix - Fixed pagination when removing layered nav items via widget.
* Fix - Default BE tax rate.
* Fix - Downloads should store variation ID rather than product if set. Also fixes link on account page.
* Fix - Use wp_list_sort instead of _usort_terms_by_ID to be compatible with 4.7.
* Fix - Only return empty string if empty for weight and dimension functions.
* Fix - Added correct fallbacks for logout/lost password URLs when endpoints are not defined.
* Security - Wrapped admin tax rate table values in _escape to thwart evil CSVs an admin user could upload. Vulnerability was discovered by Fortinet’s FortiGuard Labs.
* Dev - API - Only update categories menu order and display if defined.
* Dev - Fixed when should deliver wp_trash_post webhooks.
= 2.6.8 - 2016-11-10 =
* Fix - REQUEST_URI was missing a trailing slash when being compared in the cache prevention functions.
* Fix - Prevent issues when sending empty prices to PayPal.
* Fix - Invalid email check.
* Tweak - New extensions screen.
= 2.6.7 - 2016-10-26 =
* Fix - Use FLOOR and CEIL to get price filter values. Fixes the issue where max price is capped at 99.
* Fix - Hide "Sales this month" information from Dashboard widget for users that don't have `view_woocommerce_reports` capability.
* Fix - Remove notices only once on cart so subsequent notices do not remove older notices.
* Tweak - Improve credit card fields for better mobile experience.
= 2.6.6 - 2016-10-20 =
* Fix - Conflict with Local Pickup Plus extension due to 2.7.x code in has_shipping_method().
* Fix - Shipping method display order on frontend.
= 2.6.5 - 2016-10-19 =
* Fix - Shipping classes URL in admin.
* Fix - Notice in reports when using custom date ranges.
* Fix - When checking needs_shipping, ignore anything after : in the method ID.
* Fix - Allow has_shipping_method to work with instances.
* Fix - Potential notice in wc_add_to_cart_message().
* Fix - Prevent notice in wpdb_table_fix if termmeta table is not used.
* Fix - Payment method box fixes e.g. maintain previously selected payment method after update.
* Fix - Prevent multiple password validation methods at once on my account page.
* Fix - Ship to specific counties option had no effect.
* Fix - Broken Webhook delivery due to use of post_date_gmt which does not exist for drafts.
* Fix - Use method title in admin shipping dropdown.
* Fix - Fixed downloadable variable product URL.
* Fix - Handle object when generate_cart_id is used to prevent notices.
* Fix - Set header link color in emails.
* Fix - Rest of the world ID 0 zone handling when using CRUD classes.
* Fix - Cast prices as decimal when querying prices in price filter widget.
* Fix - API - Fix coupon description field.
* Fix - API - ID needs to be capitalized to allow correct sorting.
* Fix - API - Fixed undefined order ID.
* Fix - API - Allow API to save refund reason.
* Fix - API - Resolved encoding issues with attribute and variation slugs.
* Fix - API - get_attributes should return term name, not slug.
* Fix - API - Product "filter" and "sku" parameters.
* Fix - Handle info notices in cart, not just error messages.
* Fix - Don't remove hyphens in attribute labels.
* Fix - Start sales on variations after they are saved, if applicable.
* Fix - Made the text showing max variations you can link match the actual filtered value.
* Fix - Add missing tables to wpmu_drop_tables function.
* Fix - When syncing variation stock, ensure post is a variation.
* Fix - Resolved some sales by date sum issues.
* Fix - Fix cart update in IE when enter key is pressed.
* Fix - Variation is_on_backorder when parent manages stock.
* Fix - Fix variation script malfunctioning when show_option_none arg is set to false.
* Fix - Fire tokenisation event on load for pay page.
* Fix - Populate attribute dropdown when empty.
* Fix - Fix email check on my account page.
* Fix - Send processing email on on-hold to processing transition.
* Fix - Incompatibility with SQLite databases.
* Fix - KGS and ISK currency symbols.
* Tweak - Password reset now uses WP functions.
* Tweak - Format US 9-digit postcodes.
= 2.6.4 - 2016-07-26 =
* Fix - Security - Only allow image MIME type upload via REST APIs.
* Fix - Shipping method title display in COD settings.
* Fix - Order date input in Edge browser.
* Fix - Ensure value is not null in variations to support empty show_option_none setting.
* Fix - get_the_title does not need escape in grouped template file.
* Fix - Ensure WC_ROUNDING_PRECISION is defined and use it as a low precision boundary in wc_get_rounding_precision().
* Fix - Response body should be a string in webhook class.
* Fix - Use h2 instead of h3 headings in profile screen.
* Dev - API - Allow Allow meta_key/value filters for products.
* Dev - CLI - Explode tags and category IDs to allow multiple comma separated values.
* Dev - add $order arg to woocommerce_admin_order_item_class and woocommerce_admin_html_order_item_class filters.
= 2.6.3 - 2016-07-19 =
* Fix - Security - Escape captions in product-thumbnail and product-image templates (template versions have been bumped).
* Fix - Fixed how we calculate shipping tax rates when using more than one tax class.
* Fix - When duplicating product variations, set title, name, and guid.
* Fix - Normalized 'read more' buttons.
* Fix - Add to cart notices for grouped products.
* Fix - Do not sanitize passwords in the settings API.
* Fix - Handle shipping zone location range conversion during update (dashes to ...).
* Fix - Always remove commas while processing flat rate costs.
* Fix - Ensures account page layout is only applied to desktop-sized displays.
* Fix - When getting layered nav counts, take search parameters into consideration.
* Fix - Free shipping show/hide javascript.
* Fix - Strip hash characters when exporting reports.
* Fix - Use permission id to revoke access to downloads to prevent removing wrong rows.
* Fix - When duplicating product variations, set title, name, and guid.
* Fix - Set more appropriate default rounding precision based on currency decimal places.
* Fix - Fix message styles for empty carts.
* Fix - Fixed the load of the WC_Email_Customer_On_Hold_Order class.
* Fix - Don't perform cart update on search submit.
* Dev - API - Added support for WP REST API with custom URL prefixes.
* Dev - API - Delete variations when deleting a variable product.
* Dev - API - Fixed how we check for product types.
* Dev - Added woocommerce_cart_id filter.
* Dev - Add shortcode name param to shortcode_atts function calls.
* Dev - Post custom data when fetching a variation via ajax.
* Dev - Include child prices in grouped_price_html filter.
* Dev - Allow filtering of variation stock quantity.
* Dev - Added $_product argument to 'woocommerce_restock_refunded_item' hook.
* Dev - Added a filter hook for the wc_ajax endpoint url.
* Tweak - Include account page link in new customer account emails.
* Tweak - Updated all URLs from WooThemes.com to WooCommerce.com.
* Tweak - Cache the result of WC_Comments::wp_count_comments() in a transient (improves performance).
= 2.6.2 - 2016-06-30 =
* Fix - Set max index length on woocommerce_payment_tokenmeta table for utf8mb4 support.
* Fix - is_available check for legacy shipping methods.
* Fix - wc_add_to_cart_message() when non-array is passed.
* Fix - Maximum coupon check should allow the 'maximum' value.
* Fix - Product coupon logic to avoid applying non-applicable coupons.
* Fix - Potential notices when leaving out 'default' field for shipping instances.
* Fix - wp_cache_flush after term meta migration/update.
* Fix - wc_add_to_cart_message() when non-array is passed.
* Fix - woocommerce_redirect_single_search_result type check was incorrect.
* Fix - Javascript show/hide of option in free shipping method.
* Fix - Convert ellipsis to three periods when saving postcodes.
* Fix - Prevent get_terms returning duplicates.
* Fix - Removed non-existent country (Netherlands Antilles) from https://en.wikipedia.org/wiki/ISO_3166-1.
* Fix - Grouped product range display when child is free.
* Fix - Remove discount when checking free shipping min amount.
* Fix - Prevent blocking the same element multiple times on cart page.
* Fix - Don't sync ratings right after a new comment to prevent rating sync whilst rating meta does not exist yet.
* Fix - Fix product RSS feeds when using shop base.
* Fix - woocommerce_local_pickup_methods comparison by stripping instance IDs before the check.
* Fix - During password resets, use cookie to store reset key and user login to avoid them being exposed in the URL/referer headers.
* Dev - API - Fixed variable product stock at product level.
* Dev - CLI - Introduces `woocommerce_cli_get_product_variable_types` filter.
* Dev - Allow notices to be grouped on checkout after certain events.
* Dev - API - Allows save images by ID with product variations.
* Tweak - Made customer pay link display if order needs_payment() rather than checking pending status.
* Tweak - Zones - Wording clarifications.
* Tweak - Zones - Match zones with postcodes but no country.
* Tweak - Zones - Match zones with no regions as 'everywhere'.
* Tweak - Added view_admin_dashboard cap for disabling the admin access restriction in custom roles.
* Tweak - Revised stock display based on feedback to hide 'in stock' message if stock management is off and only show available on backorder if notifying customer.
* Tweak - Allow external product SKUs.
* Tweak - PT (Portugal) and JP (Japan) postcode formats.
* Tweak - Sort products from the `[product_category]` shortcode by menu order.
* Tweak - Improve wc_orders_count() performance by running a query to count only posts of the given status.
* Tweak - To allow my account page tabs to be disabled without code, you can now set the endpoint value to a blank string.
= 2.6.1 - 2016-06-16 =
* Fix - Added missing localized format for line taxes in orders screen to prevent total miscalculation in manual orders.
* Fix - Improved the hour and time fields validation pattern on the orders screen.
* Fix - PayPal does not allow free products, but paid shipping. Workaround by sending shipping as a line item if it is the only cost.
* Fix - SKUs prop on products shortcode.
* Fix - Layered nav counts when term_id does not match term_taxonomy_id (before splitting).
* Fix - Fixed referer links from cart messages in WP 4.4.
* Fix - Fix the showing/hiding of panels when terms do not exist by using wc_get_product_types() for retrieving product types.
* Dev - content-product.php and content-product_cat.php contained the wrong version.
* Dev - Show "matching zone" notice on the frontend when shipping debug mode is on.
* Dev - Restored missing WC_Settings_API::init_form_fields() method to prevent potential errors in 3rd party gateways.
* Dev - API - Fixed returned data from product images (changed `title` to `name`).
* Dev - API - Fixed products schema for `grouped_products`.
* Dev - API - Fixed products attribute options when contains `,`.
* Tweak - Hide 'payment methods' screen if no methods support it.
* Tweak - If shipping method count changes, reset to default.
* Tweak - Avoid normalization of zone postcodes so wildcard matching can be performed on postcodes with spaces. E.g. SP1 *
* Tweak - Allow max_fee in addition to min_fee in flat rate costs fields.
* Tweak - Wrap order_schema_markup() output in hidden div in case script tag is stripped.
= 2.6.0 - 2016-06-14 =
* Feature - Introduced Shipping Zone functionality, and re-usable instance based shipping methods.
* Feature - Tabbed "My Account" area.
* Feature - Cart operations now use ajax (item quantities/remove, coupon apply/remove, shipping options).
* Feature - Layered nav; filter by rating.
* Feature - On-hold order emails.
* Dev - All new REST API based on the WP REST API. The old WC REST API is still available, but the new one is preferred.
* Dev - Added ability for shipping methods to store meta data to the order.
* Dev - Added Payment Gateway Tokenization API for storing and retrieving tokens in a standardized manner.
* Dev - Migrated custom term meta implementation to WP Term Meta.
* Dev - Added new wc_get_orders() function to get order objects and ids instead of direct get_posts() calls.
* Dev - Made coupon optional in cart has_discount() method.
* Dev - Made the review template more editable.
* Dev - Allowed product constructors to throw exceptions if invalid.
* Dev - Wrapped currency symbols in a span to allow styling or replacement.
* Fix - Update download permission user and email when changed.
* Fix - Fixed shipping method unregistration.
* Fix - Stopped create and update webhooks firing at the same time for products.
* Fix - Allow COD to set on-hold status if the order contains downloads.
* Fix - Force CURL to use TLS 1.2 for PayPal connections.
* Tweak - Improved lost password flow.
* Tweak - Show payment dates on order screen.
* Tweak - Ignore catalog visibility on products shortcode when specifying IDs or SKUs.
* Tweak - Added context to checkout error messages.
* Tweak - Added SKU field to grouped products.
* Tweak - Moved SKU field to inventory tab.
* Tweak - Support qty display in cart messages.
* Tweak - Hide min order amount field when not needed in shipping settings.
* Tweak - If shipping < 999.99, use 'shipping' arg when passing values to PayPal.
* Tweak - Show net sales on dashboard.
* Tweak - Replaced credit card icons with SVG.
* Tweak - Enqueue scripts on pages with checkout shortcodes.
* Tweak - Color code the manual, system and customer notes.
* Tweak - Layered Nav Refactoring to improve performance.
* Tweak - Removed tag/cat classes from loops since WP does the same.
* Tweak - Added hash check for orders so that if the cart changes before payment, a new order is made.
* Tweak - Removed unused 'view mode' under screen options.
* Tweak - Added 110 new currencies (including Bitcoin).
* Tweak - New background updater for data upgrades.
* Tweak - Blank slates in admin post screens.
* Tweak - Added blockui when variations are being retrieved via ajax.
* Tweak - Hide empty taxes by default (filterable).
* Tweak - Allow failed orders to be edited.
* Tweak - If there are no shipping methods setup, don’t prompt for shipping at checkout.
* Tweak - Allowed country exclusion, rather than just inclusion, in ‘sell to’ setting.
* Lots, lots more - [see the comparison here](https://github.com/woocommerce/woocommerce/compare/2.5.5...2.6.0).
= 2.5.5 - 2016-03-11 =
* Fix - Before running dbdelta, drop indexes to prevent duplicate key notices.
* Fix - Prevent notice when unsetting terms on product edit screen.
* Tweak - zeroclipboard fallback for firefox on system status report.
* Tweak - Check valid product ID is provided on add_to_cart shortcode.
= 2.5.4 - 2016-03-10 =
* Fix - Fix table creation when using utf8mb4 charset.
* Fix - Have wp_insert_post return WP_Error when creating our coupon, so the is_wp_error check can catch it.
* Fix - Clear sale price on save if sale is no longer valid.
* Fix - Round refund values to ensure refunds can be performed.
* Fix - When getting coupon by code used twice, latest should be queried.
* Fix - CLI improvements for setting up variations and deleting orders.
* Fix - Allow big selects when getting variations to support larger queries.
* Fix - Trigger webhook when user edits addresses on frontend.
* Fix - Hide shipping row when calculator is disabled, and shipping costs are hidden.
* Fix - Unset deleted attributes when updating products.
* Tweak - Update date for paid orders during non-manual updates only.
* Tweak - wc_get_page_permalink - if the page ID is not set, redirect home instead to prevent white screens.
* Tweak - Remove log dir from system status report.
* Tweak - When sorting by date, fallback to ID.
* Tweak - Rename pay link for clarity.
* Tweak - Provide a fallback message if copying to the clipboard fails in system status report.
= 2.5.3 - 2016-03-01 =
* Fix - Correct the 'unavailable template' call for variations so the message is displayed correctly, fixing a JS error.
* Fix - Add 'media-models' dependency to write panel scripts.
* Fix - Fix hide empty check in category walkers.
* Fix - Current class fix on some servers when empty.
* Fix - Multibyte safe trim string function.
* Fix - Prevent a notice by stopping a loop in woocommerce_products_will_display from stomping on other variables.
* Fix - If an attribute meta key is not set, technically its 'any', so should match. Prevents issues when meta data is missing after renaming attributes.
* Fix - Make wc_get_product_variation_attributes ignore non variation attributes.
* Fix - Notice when no order notes exist.
* Fix - Removed extra tab from plain email shipping address.
* Fix - Round shipping after tax calculation instead of before to prevent wrong taxes being calculated.
* Fix - State input box was not reappearing when switching from a hidden input to a text input.
* Fix - Don't duplicate rating and review counts.
* Fix - CLI - Allow setting of a single category.
* Fix - API - Replace term_taxonomy_id for term_id whilst creating/editing terms.
* Fix - API - Fix parent_id and menu_order for variations.
* Fix - Combine update post calls when update_status is ran.
* Fix - Total number of comments in the admin panel.
* Tweak - Show customer details for logged in users only on thanks page to prevent customer details being revealed if someone finds out the URL.
* Tweak - Wrap status report in backticks to stop people breaking .org forums.
* Tweak - Error handling for screen ids.
* Tweak - Use $wpdb->replace instead of doing a select and then deciding to do an update or insert in session handler.
* Tweak - Added check for private WooCommerce pages in status report.
* Tweak - Transactional emails for failed -> on hold.
* Dev - Include new triggers when removing and adding the password strength meter.
* Dev - Allow pass objects and arrays as webhook callbacks.
= 2.5.2 - 2016-02-01 =
* Fix - Compatibility with w3 total cache inline minification.
* Fix - Remove stock bw compat code which was preventing manage stock being disabled at variation level.
* Fix - When calculating shipping total, force rounding.
* Fix - Make save button clickable in tax rate table after using autocomplete field.
* Fix - Fix passed image_size variable in email templates.
* Fix - Don't show purchase note to admin in emails.
* Fix - Fix 'hide empty' setting in category widget
.
* Fix - Prevent notice in get_allowed_countries.
* Fix - Prevent add-to-cart querystring in pagination links.
* Tweak - Allow propagation in variation script.
* Tweak - Product image alt text.
* Tweak - Remove notice and add styling for add payment page.
* Tweak - Set input margin and label display for compatibility with themes using bootstrap CSS.
* Tweak - Add context to category term localization.
* Tweak - Moved cart URL functions to core-functions file to make them available in admin area.
* Tweak - Added password hint text and error messages when showing the password strength meter in forms.
* Tweak - Added Saudi Riyal currency.
* Tweak - Added Russian Ruble symbol.
* Tweak - When COOKIEPATH is an empty string, set to '/' so cookies work across all pages.
* Dev - Template - Pass $category into wc_product_cat_class() in content-product_cat.php
= 2.5.1 - 2016-01-25 =
* Fix - Remove usage of get_currentuserinfo() which is deprecated in WordPress 4.5.
* Fix - Fix responsive product sizes when the columns class is missing.
* Fix - Fix function exists check for woocommerce_template_loop_category_title.
* Fix - check_version on all requests so that the installer runs after remote plugin updates.
* Fix - Only show the "add payment method" button when needed, and check for required fields on the add payment method page.
* Fix - Correctly block UI to prevent attribute issues in backend when adding multiple attributes in quick succession.
* Fix - Show SKU in admin emails.
* Fix - Don't show downloads in admin emails.
* Fix - Fix query/missing variable in validate_user_usage_limit function.
* Fix - Prevent endless loading on checkout when reload_checkout session variable was used.
* Fix - Correctly display html entities in tax screen autocomplete.
* Fix - Do sales reports based on refund line items rather than fully refunded orders to prevent double refunds being reported.
* Fix - Qty button can be hidden for variable products sold individually.
* Fix - Show the taxable country rather than base country in "estimated for" text during checkout.
* Fix - Prevent select2 gaining focus on IOS7 scroll.
* Fix - API - Fix indexes on decimal and thousand values.
* Tweak - Clear cron jobs on uninstall
.
* Tweak - Don't disable place order button on checkout if a weak password is used.
* Tweak - Added password strength meter in lost password and edit accout pages.
* Tweak - Pass $args to woocommerce_dropdown_variation_attribute_options_html hook.
= 2.5.0 - 2016-01-18 =
* Feature - New default session handler. Uses custom table to store data rather than the options table for performance and scalability reasons. https://woocommerce.wordpress.com/2015/10/07/new-session-handler-in-2-5/
* Feature - New tax settings UI - faster, enhanced with ajax, searchable.
* Feature - WP CLI Support. https://woocommerce.wordpress.com/2015/10/01/sneak-peek-wp-cli-support-in-woocommerce/
* Feature - Added terms and conditions checkbox to pay page.
* Feature - Password strength indicators.
* Feature - Added 'pay' link to order screen.
* Feature - Added admin order/payment failed notification.
* Fix - Check for existence of global attribute when you get_attributes() for a product.
* Fix - Show order by template on product search.
* Fix - Search variation skus in backend search.
* Tweak - For coupons with category restrictions, respect the category hierarchy.
* Tweak - Added wc_array_cartesian function to generate variations in a logical order.
* Tweak - Revised email settings screens to show emails in a table and avoid a long sub-nav.
* Tweak - Default customer role capabilities.
* Tweak - Expire mini-cart cache after 24 hours.
* Tweak - Improved refund error messages in PayPal Standard.
* Tweak - Removed language pack downloader in favour of translate.wordpress.org.
* Tweak - Added onboarding wizard button to the contextual help so it can be accessed again.
* Tweak - When a WordPress user is deleted, turn any orders they have into Guest orders.
* Tweak - When calculating order taxes, respect tax settings and default to base country.
* Tweak - Fade in variation images to avoid flicker during load.
* Tweak - Display 2 averages on report (net and gross).
* Tweak - Improve product search and use WPDB instead of several get_posts queries for performance.
* Tweak - Use SKU for stock order notes.
* Tweak - Added order notes for manual email sends.
* Tweak - Sanitize shipping method labels/titles.
* Tweak - Only display the coupon form on the checkout if a coupon hasn't been applied.
* Tweak - Added billing address column to order screen (off for new users).
* Tweak - Created function to disable author archives for customers.
* Tweak - When updating cart hash, refresh all open tabs.
* Tweak - Use new "question" mark icon font for help tips.
* Tweak - Improved review verification status retrieval.
* Tweak - Improve appearance when only 1 gateway is active.
* Tweak - Aligned terms box left and added required asterisk.
* Tweak - Removed dropdown display mode for cart shipping methods - radios are more flexible.
* Dev - API - Added /products/shipping_classes endpoint.
* Dev - API - Added support to POST, PUT, and DELETE categories and tags.
* Dev - API - Added support to filter products by tag, category, shipping class, and attribute.
* Dev - API - Added tax and tax_class endpoints.
* Dev - Template - New star ratings. The old one was 5 separate buttons. This new one consolidates the 5 options into one element making it leaner visually and more intuitive. Works in IE9+ with a graceful degradation for IE8.
* Dev - Template - Added `data-title` attribute to cart table.
* Dev - Template - Product archive anchors are now hooked into templates rather than hard coded.
* Dev - Template - Added template files for the customer details list in emails. emails/email-customer-details.php
* Dev - Template - Revised single variation cart template. Template files now exist for variations, and the cart button will display (disabled) when no selections are made.
* Dev - Template - Made "my orders" columns fully customizable with filters.
* Dev - Template - Unified email template order details tables to use a single template.
* Dev - Allow wc_clean to support arrays.
* Dev - Added a manual update trigger for checkout.
* Dev - Added woocommerce_is_price_filter_active filter to Query class.
* Dev - Replaced some cart methods with dedicated functions. e.g. wc_ship_to_billing_address_only().
* Localisation - Add Kenyan currency and symbol.
= 2.4.13 - 2016-01-11 =
* Fix - Potential redirect loop when using 'unforce ssl' setting and a https home URL.
* Fix - Escape option names when cleaning up sessions.
= 2.4.12 - 2015-12-9 =
* Fix - 4.4 - Permission error when editing attribute terms.
* Fix - 4.4 - Missing variation images when wp_get_attachment_image_srcset() returns false instead of a string.
* Fix - 4.4 - Use post-thumbnail size in admin to avoid srcset.
* Fix - Webhook status not changed after save with active object-cache.
= 2.4.11 - 2015-12-7 =
* Fix - WordPress 4.4 support.
* Fix - Removes Switzerland from EU VAT definition
.
* Fix - Fix auth endpoint urls.
* Fix - To allow backslash in SKUs.
* Fix - Sanity check for min/max quantity
.
* Fix - 4.4 - Shipping class menu display.
* Fix - 4.4 - Admin menu icons and styling.
* Fix - API - Variable product backorders editing.
* Fix - API - Delete product transients when delete a variable product.
* Fix - API - Returned status when have an invalid oAuth timestamp.
* Fix - API - Early call of order status when editing orders.
* Tweak - 4.4 - Basic support for product embeds.
* Tweak - 4.4 - Support for srcset/sizes and responsive images.
* Tweak - 4.4 - Support for Twenty Sixteen.
= 2.4.10 - 2015-11-10 =
* Fix - Geo IP - Correctly parse .dat files.
* Fix - Geo IP - Ensure WC_Logger class exists before logging errors.
* Fix - Geo IP - Prevent notices in ipv6 methods.
* Tweak - Add information about credit card address for Simplify Commerce.
= 2.4.9 - 2015-11-09 =
* Fix - Check abspath exists in more files to prevent errors on direct access.
* Fix - Hide SQL errors during ajax requests.
* Fix - Fixed redirection loop on customizer screen.
* Fix - Improved error handling in WC_Geo_IP.
* Fix - Bulk edit sale prices.
* Fix - Check for child themes in System Status.
* Fix - API - Warnings when create attributes.
* Fix - System Report: Template version check path.
* Fix - Potential XSS within price.php fixed with escape on get_price() (would require edit/admin permissions to take advantage of). Discovered by FortiGuard Labs (https://www.fortiguard.com/). Template version has been bumped.
= 2.4.8 - 2015-10-26 =
* Fix - Help tips in variations admin.
* Fix - API - Fixed customer count method.
* Fix - Locale switching for city field.
* Fix - Notice in wc_nav_menu_items when endpoint is not set.
* Fix - Loading of correct variation prices when display is true and false in the same page load.
* Fix - Shipping priority for methods with colons in the name.
* Fix - Saving of passwords with '&' inside.
* Fix - Remove double escaping of coupon descriptions.
* Fix - Settings API default value should not apply if value of option is 0
.
* Fix - Avoid potential PHP Fatals by avoiding premature script enqueues.
* Fix - Pass mimes when checking file type
.
* Fix - Reset shipping totals before calculation to prevent totals being used incorrectly.
* Fix - API - Corrected how attributes terms saves non-latin characters.
* Fix - API - Variations price sync.
* Fix - API - Fixed lost variable products data when create/edit an order.
* Tweak - Add trailing slash in get_page_uris to reduce likelihood of conflicts.
* Tweak - API - Added refunded_item_id on GET orders/<id>/refunds endpoint.
* Tweak - API - Allow variable products to get retrieved by SKU.
* Tweak - API - Allow edit variations without define the product type to variable.
= 2.4.7 - 2015-09-21 =
* Fix - Handle Switzerland in get_european_union_countries.
* Fix - For geolocation with static cache support, ensure hash is appended during form submission.
* Fix - To prevent discounts being applied in 'random' order (based on order added to cart), sort cart items based on subtotal during calculate_totals.
* Fix - Removed extra ob_start() in class-wc-shortcodes.php.
* Fix - Show counts in category dropdown.
* Fix - Escape add to cart messages to stop translations from breaking cart events.
* Fix - Display of product/order tables in the dashboard when viewed on handheld devices.
* Fix - API order item 'key' value.
* Fix - Check specifically for Post IDs in WC Query verbose rules fix.
* Fix - Only run maybe_set_cart_cookies if cart was loaded to prevent notices.
* Fix - Variation loading/refresh after attribute saving.
* Fix - Added monthly cron schedule.
* Fix - Remove use of 'input' event in checkout scripts to prevent IE11 triggering updates on placeholder change.
* Fix - AJAX variations not being found in some cases when product version was < 2.4, but attributes were updated after sync().
* Fix - Changed the way variable product prices get cached for greater plugin compatibility. See https://wp.me/p6wtcw-5x
* Fix - Highlighting of reports chart.
* Fix - Network activated plugins not showing up in system status report.
* Fix - Tax fields showing on bulk/quick edit when disabled the tax system.
* Fix - Tax status and tax class values within bulk edit.
* Tweak - Allow bulk edit price to 0
.
* Tweak - Add filters to control "shipped via" text.
* Tweak - Allow line breaks in non-variation attributes.
* Tweak - Renamed wc_var_prices transient to allow them to flush on product save.
* Tweak - woocommerce_save_account_details_required_fields hook.
* Tweak - Only 'count' published variations.
* Tweak - Display of order total in admin with refunds.
* Tweak - Use Geolocation class for customer IP detection.
* Tweak - Use the needs_payment function (DRY).
* Tweak - Tweak wc_create_page to work with trashed pages.
* Tweak - Redirect 'not right now' to referer in onboarding wizard.
* Tweak - woocommerce_update_new_customer_past_order action.
* Tweak - Prevent empty terms when using `wc_get_formatted_variation()`.
* Tweak - Unslash shipping label on orders admin screen.
* Tweak - Prevent wrong phone numbers on PayPal for CA and US when users add the prefix `+1`.
* Template - Removed 'Payment' heading in `templates/checkout/form-pay.php`.
* Template - Removed unnecessary clearing div in `templates/checkout/payment.php`.
= 2.4.6 - 2015-08-24 =
* Fix - menu_order notices on IIS.
* Fix - Grouped product is_purchasable check during add to cart.
* Fix - Subscriptions 2.0 (unreleased) compatibility.
* Fix - Encode variation data in add_to_cart_url method.
* Fix - Bulk update variation: Set manage stock when _manage_stock meta data is missing.
* Fix - Bulk update variation: Allow stock to be set to 0.
* Fix - Ajax variation < 2.4 attribute name handling.
* Fix - During updates, only recreate .htaccess if not using redirect download method.
* Fix - Handle non standard decimals in flat rate costs.
* Tweak - WC Setup wizard: Fix manual setting of decimal/thousand separator.
* Tweak - Set ajax/nocache headers for ajax requests.
* Tweak - Add tooltips for tax status and tax class options.
* Tweak - WC Setup wizard: multi-line step styling.
* Tweak - WC Setup wizard: site icon display on WP 4.3.
* Tweak - WC Setup wizard: tweaked wording.
* Tweak - WC Setup wizard: Add spinner/loading indication between onboarding steps.
* Tweak - Allow HTML in store notice.
= 2.4.5 - 2015-08-20 =
* Fix - Global text based attribute saving on product page.
* Fix - save_account_details should check display name of current user.
* Fix - Show the right 'no shipping available' message when a country does not have states.
* Fix - Add required postcode marker after label replace.
* Fix - Flush product cache so prices are regenerated after scheduled sale ends.
* Fix - Removed /page/ when using layered nav dropdown.
* Tweak - Allowed Zip/Post Codes description for Local Delivery.
* Tweak - Improve display_item_downloads numbering and use same function in emails.
* Tweak - API - Fixes notices about deprecated `$HTTP_RAW_POST_DATA` on PHP 5.6.
* Tweak - In add_to_cart_action, check is_purchasable rather than post status.
* Tweak - Add expand/close links for attributes and match variation UI.
* Tweak - Added locale info for BD, NP, JP and HU
* Tweak - woocommerce_delete_version_transients_limit filter.
* Tweak - Suppress errors when calling set_time_limit to avoid hosting conflicts.
* Tweak - Keep new variation in sync so actions can modify data.
* Tweak - Improved download numbering in emails and order page.
* Tweak - Allowed users to install translations for the current language during the Setup Wizard.
= 2.4.4 - 2015-08-14 =
* Fix - Ajax variation handling when 'any' attribute is set.
* Fix - Run html_entity_decode over text attributes to fix problems with quote characters.
* Fix - COD: remove shipping check if the cart is 100% virtual.
* Tweak - Order variations by menu_order by fallback to ID.
* Tweak - Include attribute archives support in the breadcrumbs.
* Tweak - woocommerce_variable_children_args hook.
= 2.4.3 - 2015-08-12 =
* Fix - Query within wc_customer_bought_product().
* Fix - Tab hiding with some theme markup.
* Fix - Ajax variations: stripslashes to fix attributes with quotes.
* Fix - No longer returns to the first variation list page when deleting one variation.
* Fix - Refund subjects when order contains downloadable product.
* Fix - wc_get_product_variation_attributes should only get parent attributes which are for variations.
* Tweak - Disable display_errors during ajax requests to prevent malformed JSON.
* Tweak - When merging shipping taxes with a shipping rate taxes, ensure shipping rate taxes is not malformed.
* Tweak - Improved refund email events and woocommerce_order_fully_refunded hook.
= 2.4.2 - 2015-08-11 =
* Fix - If all variations are out of stock, maintain pricing display.
* Fix - Prevent double add to cart due to ajax endpoints.
* Fix - ordering_args in product_category shortcode.
* Fix - Tax inclusive prices rounding case.
* Tweak - If no variation prices are found, show no price label rather than free.
* Tweak - Made tab panel selector more specific to avoid theme conflicts.
* Tweak - Made checkout make use of new ajax endpoints.
* Tweak - woocommerce_force_ssl_checkout no longer needs to check for admin-ajax actions.
* Tweak - Hide get_formatted_legacy notices when doing ajax.
* Tweak - use shop_single instead of full image size for variations.
= 2.4.1 - 2015-08-10 =
* Fix - Tweaked the 2.4 upgrade routine to disable refund emails during update.
* Fix - Notices when calling get_shipping_classes().
* Fix - Added upgrade routine to ensure _stock_status meta exists for variations created before WooCommerce 2.2
= 2.4.0 - 2015-08-10 =
* Feature - Onboarding/setup wizard for new users to handle basic store settings and installation.
* Feature - Improved help tabs with inline video tutorials where applicable.
* Feature - New AJAX powered variations interface to improve edit product page loading times and posting large amounts of data.
* Feature - For products with many variations, on the frontend switch to AJAX to load matching variations based on user input attributes, instead of doing it all inline.
* Feature - Show full category hierarchy in permalinks.
* Feature - Added priorities for shipping methods to give more control over defaults.
* Feature - [Added a new geolocation option to support static page caching using AJAX and a querystring.](https://woocommerce.wordpress.com/2015/07/02/making-geolocation-static-cache-friendly-in-2-4/)
* Feature - Email notifications for partial refunds.
* Feature - Visual API authentication endpoint for 3rd party use.
* Feature - API key generation changes. Secret keys no longer stored in database.
* Feature - [Refactored Flat Rate Shipping for simplicity.](https://woocommerce.wordpress.com/2015/06/simplifying-flat-rate-shipping-in-wc-2-4/)
* Feature - Made international shipping UI the same as flat rate.
* Feature - New ajax endpoints to improve performance by avoiding admin overhead.
* Fix - Ensure coupon taxes are reset when calculating totals.
* Fix - Improve discount amount rounding.
* Fix - Update order shipping after editing shipping from API.
* Tweak - Moved country next to other address fields in Checkout UI.
* Tweak - Improved reports, in particular for refunds.
* Tweak - Improve save_attributes ajax function to correctly save text attributes.
* Tweak - Base discounts on the undiscounted price. #5874
* Tweak - Added wc_product_cat_class functions.
* Tweak - Display related products and upsells in 4 columns.
* Tweak - Only redirect to welcome page for MAJOR versions/updates.
* Tweak - GeoLocation IPv6 database.
* Tweak - Improved text based attribute handling to prevent issues with slashes.
* Tweak - Ajaxified the grouped product option.
* Tweak - Email template improvements and wider email client compatibility.
* Dev - Created a template file for the Proceed to Checkout button.
* Dev - API version v3.
* Dev - API - Implemented full support for Basic Authentication for v3, following the RFC 2617 specs.
* Dev - API - Fixed Oauth 1.0a to strictly follow all specs from RFC 5849 for v3.
* Dev - API - Added an endpoint to handle product attributes.
* Dev - API - Auto generete passwords for new customers only when enabled the generate_password option.
* Dev - API - Added display and image on product categories response.
* Dev - API - Added endpoint for bulk update/insert coupons, customers, products and orders.
* Dev - API - Deprecated /product/sku endpoint from v3.
* Dev - API - Created the /products/id/orders endpoint to fetch orders containing a specific product.
* Localisation - Added Argentine currency and provinces.
* [Various other small fixes and enhancements.](https://github.com/woocommerce/woocommerce/issues?q=is%3Aissue+milestone%3A%222.4+Helpful+Hedgehog%22+is%3Aclosed)
= 2.3.13 - 2015-07-07 =
* Fix - Improved the email settings save and tabs for 3rd party plugins.
* Fix - Datepicker range for variations.
= 2.3.12 - 2015-07-06 =
* Fix - Fixed Google Chrome forcing to use SSL. This can cause some issues on websites behind load balancers or reverse proxies. [Read more](https://docs.woocommerce.com/document/ssl-and-https/#websites-behind-load-balancers-or-reverse-proxies).
* Fix - Escaped shop url in empty cart template.
* Fix - Escaped product tabs titles.
* Fix - Removed deprecated PHP4 constructor on Widget classes.
* Fix - Wrong `price_slider_updated` JS event arguments.
* Fix - Stock quantity type in WC-API.
* Fix - Don't reveal username when login failed on valid email login.
* Fix - Fatal error on order details when have some downloadable product deleted.
* Fix - Relative paths validation for downloadable product.
* Fix - Flat rate shipping costs should ignore virtual items.
* Tweak - Keep product quantity when happens some error while add product on the cart.
= 2.3.11 - 2015-06-10 =
* Fix - Check if rating is enabled before check if rating is required to a review.
* Fix - get_discounted_price needs to check if taxes are enabled.
* Fix - Fixed filetype check for digital downloads.
* Fix - Newfoundland and Labrador state rename.
* Fix - Escaped js in widget layered nav when use the dropdown option.
* Fix - Switch the permissions check for json_search_products to use the read_product capability.
* Fix - Fixed the addition of variable products using the Order API.
* Fix - Sale item exclusion logic for variations.
* Fix - Clear correct variation stock transients when setting stock.
* Fix - Switch to JSON to avoid unserializing untrusted data when handling responses from PayPal.
* Fix - API - Fixed the sanitization for downloadable files on products endpoint.
* Tweak - woocommerce_downloadable_file_exists filter.
= 2.3.10 - 2015-06-01 =
* Fix - Fixed theme check notice for core supported themes.
* Fix - Add RTL direction to emails.
* Fix - Fixed product category media upload modal.
* Fix - Coupon maximum discount calculation.
* Fix - PayPal icons and URLs.
* Fix - API - Fixed subtotal_tax round and decimal dp.
* Fix - Wrap payment js in jquery.
* Fix - Delete correct transient when linking variations.
* Fix - Set default currency position format string (in case of missing or invalid `woocommerce_currency_pos` option value).
* Fix - Simplify Commerce undefined constant ('error_code' > '$error' typo).
* Fix - Fixes too many arguments in function or method call: WC_Shortcode_My_Account::add_payment_method.
* Fix - Pass correct number of arguments to `wc_lostpassword_url()`, `wc_nav_menu_items()`, `wc_nav_menu_item_classes()`, and `wc_change_term_counts()`.
* Fix - Fixes usage of void return value from `wc_cart_totals_taxes_total_html()`.
* Fix - Missing global in `render_product_columns()`.
* Fix - Add `$args` arguments to `WC_Product_Factory->get_product_class()` to allow `$product_type` to be overwritten by `$args['product_type']`.
* Fix - Remove call to `wp_specialchars_decode()` in `wc_get_price_thousand_separator()` and `wc_get_price_decimal_separator()`.
* Fix - fclose in logging class requires a resource, not a string.
* Fix - Prevent (admin) SQLi when setting stock levels for product variations.
* Tweak - Extra escaping of customer emails in `wc_customer_bought_product()`.
* Tweak - Improve tooltip sanitization.
* Tweak - Escape provided array of post codes in tax class.
* Tweak - Escape metadata when duplicating products.
* Tweak - Escape permalink settings slugs.
* Tweak - Sanitize columns value in shortcodes.
* Tweak - Use prepare for updating attributes.
* Tweak - Use wp_safe_remote_ functions in place of wp_remote_ where applicable.
* Tweak - Added extra capability checks to notices, email template editing, and admin ajax requests.
* Tweak - Set nonce_user_logged_out to WC session ID, if set.
* Tweak - Added `wc_send_frame_options_header` function to prevent checkout and account pages from being used in iFrames. Added via filter so this can be disabled.
* Tweak - Validate file types are allowed for downloadable products when saving.
* Tweak - Filter: woocommerce_cart_item_removed_title
* Tweak - Update html-admin-page-status-report.php to show unaltered URLs.
* Tweak - When updating transients, clear previous version of transients.
* Tweak - Replace max_related_posts_query for performance reasons.
* Tweak - Combine transients for get_rating_count.
* Tweak - Bump the PrettyPhoto version during enqueue to flush caches.
* Tweak - Remove all instances of sslverify=false #8058
* Tweak - Error prevention when showing customer orders on the frontend.
* Tweak - Added PH states.
= 2.3.9 - 2015-05-19 =
* Fix - Fixed language upgrader verification.
* Fix - Refund reporting #8010