forked from woocommerce/woocommerce
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
1484 lines (1413 loc) · 92.4 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 ==
= 2.4.10 - 10/11/2015 =
* 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 - 09/11/2015 =
* 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 (http://www.fortiguard.com/). Template version has been bumped.
= 2.4.8 - 26/10/2015 =
* 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 - 21/09/2015 =
* 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 http://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 - 24/08/2015 =
* 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 - 20/08/2015 =
* 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 - 14/08/2015 =
* 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 - 12/08/2015 =
* 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 - 11/08/2015 =
* 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 - 10/08/2015 =
* 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 - 10/08/2015 =
* 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/woothemes/woocommerce/issues?q=is%3Aissue+milestone%3A%222.4+Helpful+Hedgehog%22+is%3Aclosed)
= 2.3.13 - 07/07/2015 =
* Fix - Improved the email settings save and tabs for 3rd party plugins.
* Fix - Datepicker range for variations.
= 2.3.12 - 06/07/2015 =
* Fix - Fixed Google Chrome forcing to use SSL. This can cause some issues on websites behind load balancers or reverse proxies. [Read more](http://docs.woothemes.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 - 10/06/2015 =
* 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 - 01/06/2015 =
* 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 - 19/05/2015 =
* Fix - Fixed language upgrader verification.
* Fix - Refund reporting #8010
* Fix - Redirect after bulk editing.
* Fix - Prevent variable overwrite in save_product_meta.
* Fix - Fix stock report pagination.
* Fix - Fixed paypal about URL for Malta.
* Fix - Fixed save downloadable files for product variations.
* Fix - Remove submitdiv and fix post status updating.
* Fix - Fixed the sort order dropdown items when create new product attributes.
* Fix - Move action to prevent infinite recursion on login/restoring saved carts.
* Fix - Update PrettyPhoto to 3.1.6 to resolve XSS security issue https://github.com/scaron/prettyphoto/issues/149
= 2.3.8 - 20/04/2015 =
* Fix - Ensure coupon taxes are reset when calculating totals.
* Fix - Downloads url sanitization to work correctly with shortcodes and urls.
* Fix - State/Country select2 issues with Internet Explorer.
* Fix - Flat rate per item and per class if no additional costs added.
* Fix - Simplify Commerce compatibility with free trial subscriptions.
* Fix - Select2 z-index in the admin.
* Fix - Postmeta records deletation on plugin uninstall.
* Fix - List only approved comments in products reviews on API.
* Fix - Improved variation SKU display.
* Fix - Prices including tax within orders.
* Fix - Ensure line taxes are stored when calculating tax theough the API.
* Fix - Add null date check for download permissions.
* Fix - PayPal Logging.
* Fix - Coupon product id and category id checks should run for all coupon types.
* Tweak - Hook in cart totals via action.
* Tweak - Prevent errors when adding or deleting products for the coupon.
* Tweak - Prevent errors when check customer capability to view orders.
* Tweak - Ensure Price Filter links has a trailing slash to avoid pagination issues.
* Tweak - Improved the check for mismatched totals in items lines for PayPal payment gateway.
* Tweak - Use wc_stock_amount to format API orders stock amount.
* Tweak - Ensure show_in_admin_all_list is respected for order statuses.
* Tweak - Remove rounding from shipping costs for greater shipping tax precision.
* Tweak - Only automatically cancel orders created via checkout + allow post_parent to be set.
* Tweak - Deny all access to revisions through API.
= 2.3.7 - 18/03/2015 =
* Fix - Allow saving of empty download expiry date on orders.
* Fix - get_total_discount() function with certain tax setups.
* Fix - stock management for variations for Products API.
* Fix - Price filter styling.
* Fix - Support price filter min or max only.
* Fix - Allowed paths for file url.
* Tweak - Chile address format.
* Tweak - Revised how discounts/discount taxes are stored for consistency. Always store ex. tax to make data retrieval easier, and to ensure totals are correct after settings changes. Backwards compatibility maintained through use of order versioning.
* Tweak - Delete product attachments when the Products API fails.
= 2.3.6 - 13/03/2015 =
* Fix - Removal of coupons containing spaces.
* Fix - Unclosed div in profile page.
* Fix - Export report CSV.
* Fix - Settings API - allow multiselect fields to be emptied.
* Fix - Saving an order needs to save the discount amount ex. tax like the cart.
* Fix - Order again with custom attributes.
* Fix - [CVE-2015-2329] Prevent potential XSS within tooltips (discovered by Fortinet FortiGuard Labs).
* Fix - Paypal debug option.
* Fix - Removed $q->query['wc_query'] = 'product_query' which broke redirects (#7703). Use $q->get('wc_query') instead.
* Fix - Sanitize tax_rate_id when saving taxes in the backend to prevent potential SQL injection (discovered by WordFence).
* Tweak - Show discounts inc. tax when showing order totals inc. tax.
* Tweak - Use 30 days instead of year for transients to avoid bugs in memcache plugins.
* Tweak - Add reports menu item if user can access reports but not the main WC section.
* Tweak - Improve grouped product quantity inputs.
* Tweak - Load the persistant cart if cart is empty.
* Tweak - Prevent cart being cleared when accessing the login page.
* Tweak - Shipping calculator - Made state/postcode respect country locale like checkout.
* Tweak - Move default customer location to general settings tab.
* Tweak - Only run save_category_fields for product_cat taxonomy.
* Tweak - Improved message when variation attributes are missing.
* Tweak - Allow wc_attribute_label to support product-level attribute names.
* Tweak - Added the option to not round the line total.
* Tweak - Improved coupon percent calculation for fixed discounts.
* Tweak - Show calculate total when shipping is needed, but shipping is hidden.
* Tweak - Cart total labels.
* Tweak - Increase wc_get_weight precision.
* Dev - API - reports/sales now also returns total refunds.
= 2.3.5 - 20/02/2015 =
* Fix - Plain text address formatting.
* Fix - Detect shortcodes when saving URLs.
* Fix - Unhook wc_page_endpoint_title after it is ran once (main page title).
* Fix - Taxes save issue when page is paginated.
* Fix - Cross/up-sells should not search variations.
* Fix - Related post offset.
* Tweak - Round report values.
* Tweak - Text in plain text emails.
* Tweak - Improve category coupon message.
* Tweak - Don't download GeoIP Database until geolocation option is enabled in settings.
= 2.3.4 - 17/02/2015 =
* Fix - limit_usage_to_x_items option in coupons.
* Fix - Run coupon codes through html_entity_decode.
* Fix - Tax by code report for refunds.
* Fix - Auto-generation of slug when adding new attribute.
* Fix - Prevented errors when `DOMDocument` is not found (used for your HTML/Multipart emails).
* Fix - Load WC css on user edit screen.
* Fix - DB error when showing reports by product without selecting a product.
* Fix - Stock status when updating out of stock product.
* Fix - Fix place order button text on init.
* Fix - When duplicating products, handle entities.
* Fix - Double shop page in breadcrumb and white space issues.
* Fix - When purchasing multiple downloadable products (same item), multiply download limit by qty purchased.
* Fix - Added checks for gzopen to prevent activation errors.
* Tweak - Added DOMDocument item in the System Status as a requirement.
* Tweak - Simplify default mode should be 'standard'.
* Tweak - Set attribte 'query_var' true when public.
* Tweak - Use wc_get_page_permalink() to get page permalinks.
* Tweak - Register shop_order post statuses earlier to ensure statuses are registered for cron.
* Tweak - Improvements to refund handling in Taxes by code/date, and sales by date reports. Gross/net excludes refunds.
* Tweak - Share data between Sales by Date report and API.
* Tweak - Related posts - replace ORDER BY RAND() with random offset.
* Tweak - Run item meta label through wc_attribute_label() in admin order page.
* Tweak - Run File URLs through esc_url_raw instead of wc_clean to preserve spaces.
* Tweak - Small timeout on checkout update action to prevent several triggering at once.
* Tweak - Restock items AFTER refund, not before.
* Tweak - If logged in, populate customer data from user meta.
= 2.3.3 - 12/02/2015 =
* Fix - Potential notice with preg_match wildcard search, if used incorrectly.
* Fix - Typo in get_from_name method.
* Fix - Fix errors during checkout when mb_convert_encoding() is not supported.
* Fix - Change hooks used to output post columns - fixes columns after quick edit.
* Fix - Only apply product/cat coupon checks for cart to cart coupons.
* Fix - Query in uninstall script.
* Tweak - Only run the uninstaller if the "Uninstall on Delete" option is checked in system status.
= 2.3.2 - 12/02/2015 =
* Fix - Item meta removal query in order class.
* Fix - Pass correct shipping cost to PayPal.
* Fix - Flat rate extra costs when costs are an array.
* Fix - When ratings are required for reviews, ensure validation is performed if the rating element is removed from DOM.
* Fix - When updating shipping in cart, keep shipping calculator in DOM.
* Fix - WC_TEMPLATE_DEBUG_MODE in admin.
* Fix - Average product rating when ratings are not required.
* Fix - attribute_public option.
= 2.3.1 - 11/02/2015 =
* Fix - When the geolocation database cannot download, ensure the correct method is used to log the error.
* Fix - Notice in woocommerce_form_field().
* Fix - attribute_public notice before DB upgrade.
* Fix - [products] ids and sku args.
* Fix - Backwards compatibility for (deprecated) $tax variable in WC_Cart.
* Fix - is_available() check in local pickup.
* Fix - Added WC version of GEOIP classes to prevent conflicts with other plugins.
= 2.3.0 - 11/02/2015 =
* Feature - Option to geo-locate the customer's inital location.
* Feature - Display taxes in store based on the customer location, rather than the shop base.
* Feature - Made tax importer expand postcode ranges.
* Feature - Print styles for reports.
* Feature - Remove products from the cart in the widget.
* Feature - Bulk edit sales schedule on variations.
* Feature - Fresh new frontend / email design.
* Feature - Undo link in message when removing products from the cart.
* Feature - Compatibility with Twenty Fifteen default theme.
* Feature - Added 'top freebies' to product report.
* Feature - Added numeric sort for attributes.
* Feature - Added support for some Jetpack features: Omnisearch, Publicize and Markdown editor.
* Feature - UI for adding Webhooks.
* Feature - Show Gross and Net totals in reports.
* Refactor - Removed deprecated methods from WC_Frontend_Scripts and rewrote script registration and localization to run once.
* Refactor - Routing all email functionality through one send() method.
* Refactor - Replaced existing email css inliner with Emogrifier.
* Refactor - get_product_search_form().
* Refactor - Improved the Shipping Class field in products quick edit and bulk edit.
* Refactor - Removed style settings in favour of separate plugin.
* Refactor - Removed quantity increment/decrement buttons in favour of separate plugin.
* Feature - Added link on purchased products list on orders screen.
* Fix - When 'hide out of stock products' is disabled, out of stock variations / attributes are now visible.
* Fix - Fix cart coupon on-sale checks for variations.
* Tweak - Double the default product image dimensions.
* Tweak - Added refunds to Sales by Date report.
* Tweak - Updated prevent_caching() method to work if a cart/checkout page isn't set.
* Tweak - When user tries to download a file and isn't logged in, send them to the account page with a notice.
* Tweak - Logic in wc_paying_customer to only increase for 'simple' orders.
* Tweak - Added tool to refresh stats to customer list.
* Tweak - Recent order table on my account is responsive.
* Tweak - Drop WC tables in wpmu_drop_tables (for multisite).
* Tweak - Moved 'Proceed to checkout' button on cart to beneath totals.
* Tweak - Improved 'responsiveness' of product data tabs on add/edit product screen.
* Tweak - Added 'stupidtable' script to allow order item sorting on the order screen (by name, cost, qty).
* Tweak - In the cart, add variation selected data to the permalink.
* Dev - API - Look up product by sku.
* Dev - API - New parent_id param for products API.
* Dev - API - Sales data in API now matches sales data in WooCommerce reports page.
* Dev - API - Added 'net_sales' data to reports.
* Dev - API - catalog_visibility is set to visible by default in products API.
* Dev - API - Added new filter to query for specific products by ID: /products?filter[in]
* Dev - Made template debug mode set WC_TEMPLATE_DEBUG_MODE constant and remove all overrides for all template loading functions.
* Dev - Switched to .scss from .less for all styles.
* Dev - Included bourbon for scss mixins.
* Dev - Decoupled the order summary and payments area. Both are updated independently via ajax fragments and can be moved around via actions. TEMPLATES OVERRIDING THESE TEMPLATES WILL NEED TO UPDATE THEIR FILES.
* Dev - Moved WC_Cart::get_cart_from_session() and dependencies to a later hook (was init, now wp_loaded).
* Dev - Migrated away from CHOSEN to SELECT2. Chosen is still registered in case 3rd parties try to enqueue.
* Localisation - Add Ukrainian currency and symbol.
* Localisation - Greece regions.
= 2.2.11 - 29/01/2015 =
* Add - URL in Usage/Limit column in Coupons table to query for orders.
* Fix - esc_url() applied to prevent potential XSS issues.
* Fix - "Link all variations" button.
= 2.2.10 - 16/12/2014 =
* Fix - Stock status on quick and bulk edit.
* Fix - Incorrect clearing of error messages.
= 2.2.9 - 15/12/2014 =
* Add - API - parent_id for products endpoint.
* Fix - Processing and On-hold order links in WooCommerce Status dashboard widget.
* Fix - Orders API when query orders with deleted products.
* Fix - Check order exists in wc_clear_cart_after_payment().
* Fix - move $cart_updated inside $passed_validation to prevent unnessary updates.
* Fix - MX states keys.
* Fix - sanitize_user correctly during registration.
* Fix - API - Variation handling for stock data.
* Fix - When bulk editing variable products, set the stock status for non-stock managed variations.
* Fix - Fix coupons by date queries to prevent inflated results.
* Fix - During refunds, correctly set shipping tax totals.
* Fix - Ensure floats are safely converted to strings.
* Fix - remove_taxes needs to clear line_tax_data.
* Fix - Correctly save custom address fields in admin.
* Fix - API - Fixed a bug for save multiple images from the media library in products endpoint.
* Fix - API - Delete products when happens some error.
* Fix - API - `enable_free_shipping`, `product_category_ids`, `exclude_product_category_ids` and `customer_emails` coupons params.
* Fix - API - Coupons `expiry_date` format.
* Fix - Force HTTP option behavior on Customizer Preview screen.
* Fix - Cart error messages when the session is expired.
* Tweak - API - set_fee should support tax_data.
* Tweak - Don't force tax_rate_id to an integer. Allow strings.
* Tweak - Additional filters inside tax class to support extensions.
* Tweak - Allow plugins to filter the taxable location.
* Tweak - Added result and message keys to order_review AJAX call.
* Tweak - Added get_cart_item to WC_Cart class.
= 2.2.8 - 29/10/2014 =
* Fix - Image crop option.
* Fix - Display of order note date.
* Fix - API POST/PUT products attributes values.
* Fix - Added fallbacks to wp_get_referer().
* Fix - PayPal encoding for return urls.
* Fix - Low stock report should hide no stock.
* Fix - Fixed nonce check in form handler.
* Fix - Notices in status report when checking if templates exist.
* Fix - Allow to filter empty tax rate code.
* Fix - Fixed the value format in stock field with wc_stock_amount().
* Fix - Remove strtolower for status names and capitalize statuses.
* Tweak - Removed unused methods from PayPal gateway.
* Tweak - Use current user ID for refunds.
* Tweak - Allow API edit_product method to update post_name (slug).
= 2.2.7 - 22/10/2014 =
* Fix - Fix refund date.
* Fix - Fixed various notices.
* Fix - Make updater set parent backorder status.
* Fix - In the US address format, use state code rather than the full state name.
* Fix - Use mb_strtolower to prevent issues with unicode chars.
* Fix - Introduced the wc_strtolower() function
* Fix - Make cart total consider taxes when saving an order.
* Fix - Fix /shop/ base URL Non Latin issue with url decode.
* Fix - Correct report handling for full and partial refunds.
* Fix - Update jquery payment to prevent autocomplete issues.
* Fix - Coupon API: Don't return current timestamp when expiry_date is not set.
* Fix - wc_update_product_stock should update stock regardless, if the meta data doesn't currently exist.
* Fix - Added wp_kses_post to purchase note
* Fix - Fixed edit account page fields #6577.
* Fix - Fix stock report queries #6565.
* Fix - Fix error message with maximum amount in coupon class.
* Fix - Fix nonce usage during checkout/account pages.
* Fix - Incorrect conversion of Unicode characters in order status names.
* Fix - Edit Account fields order.
* Fix - Shipping address values on checkout page.
* Fix - Enforce slug format of translated edit-address-slugs.
* Tweak - Allow for non-integer stock quantities.
* Tweak - Update simplify commerce to use new $order->get_status().
* Tweak - Only show integrations subnav when there are multiple integrations.
= 2.2.6 - 08/10/2014 =
* Fix - Notices in the cache helper.
* Fix - Prevent bulk edit from breaking sale price scheduled dates.
* Fix - Prevent address fields being empty when editing an address within an order.
* Fix - Removed save_post remove_action call which breaks 3rd party plugins. See ticket #6376 and #6485 for details.
* Fix - Prevent warnings when set "Specific Countries" empty in shipping methods.
* Tweak - Added woocommerce_product_subcategories_hide_empty filter.
* Tweak - Added filter for shipping tax.
* Tweak - Product attribute shortcode should return columns css class.
= 2.2.5 - 07/10/2014 =
* Fix - Filters in admin screen for coupons and orders.
* Fix - When bulk editing, don't allow sale price to be negative.
* Fix - When manually adding items to an order, show tax columns.
* Fix - When manually adding items to an order, include variation data.
* Fix - Prevent errors when constructing WC_Order without an ID.
* Fix - Item_id notices in email templates.
* Fix - Use variation get_stock_quantity() for variation max_qty.
* Fix - Prevent bulk edit cancel from clearing options when bulk editing variations.
* Fix - Use term_taxonomy_id for transient names - fixes counts in layered nav.
* Fix - Use wc_get_order in simplify-commerce.
* Fix - Use 'no' instead of boolean to disable PayPal gateway.
* Fix - Do not escape redirect url in form handler - fixes malformed URLs.
* Fix - Prevented non-existant pages from breaking cache helper.
* Fix - Prevent sale prices showing errors in admin wrongly.
* Fix - Prevent order statuses affecting other queries.
* Fix - Removed deprecated get_page() functions.
* Fix - Category archives. WP core still has issues dealing with pad_counts + parent when getting categories. Workaround by not hiding empty cats, then filtering the returned list using wp_list_filter.
* Fix - When formatting meta data for display, suffix items to prevent issues when there are multiple values for the same meta key.
* Fix - Unhook save_meta_boxes after first successful run to prevent race conditions.
* Tweak - Added refunds to Sales by Date report.
* Tweak - Tweak load_plugin_textdomain to be relative - this falls back to WP_LANG_DIR automatically. Can prevent "open_basedir restriction in effect".
* Tweak - Added acceptance marks to PayPal Standard where applicable to replace generic PayPal icon.
= 2.2.4 - 18/09/2014 =
* Fix - Prevent errors when adding 'zero-rated' tax on checkout.
* Fix - Fixed a varation product width inheritance bug.
* Fix - Totals in taxes by date report.
* Fix - Fix the 'only 1 visible product' redirect to not trigger when paging results.
* Tweak - Improved headers sent notice to include file and line.
* Tweak - When updating order status, ensure its a valid WC order status.
* Tweak - Add notice when order is no longer editable.
* Dev - Allow getting rating count for a specific rating value #6284.
* Localisation - Nepal States.
* Localisation - Mexico states.
= 2.2.3 - 16/09/2014 =
* Fix - Order status translation in admin and account page.
* Fix - Ensure shipping address gets displayed - fixes needs_shipping_address() method.
* Fix - Escaping of country names in tax settings.
* Fix - Encoding of pagination link when using default permalinks.
* Fix - NPR currency.
* Fix - Fixing "Invalid key" error when clicking link in password reset email.
* Fix - Mobile checkout via PayPal when using tax inclusive prices.
* Fix - Thumbnails "hard crop" option.
* Fix - Missing variables when add new product variation.
* Fix - Fixed minor XSS issue on reports screens by escaping and sanitizing 'range' GET variable.
* Fix - Number format when calculate the line items tax.
* Fix - Language update/install in Multisites.
* Fix - "Set product image" media gallery title in non-product post type.
* Fix - Number of processing orders in WooCommerce > Orders menu.
* Fix - Issue that preventing cookies being set on shutdown after wp_send_json.
* Fix - Incorrect shipping calculation because of missing width in product variation.
* Tweak - Display of locale information on system status page.
* Tweak - Removed postcode for Bahamas.
* Tweak - In system status, show path to template file override.
* Tweak - Dynamically get the address fields in WC_Checkout::create_order()
* Tweak - If a refund fails, delete refund post.
* Tweak - Button for hide the language update message.
* Tweak - Method for install the translations directly.
* Tweak - Display of h4 in settings pages.
* Dev - Added woocommerce_get_settings_ID filters.
= 2.2.2 - 11/09/2014 =
* Fix - Saving of variation stock when parent stock management is disabled.
* Fix - "open_basedir restriction in effect" error caused on install when trying to create the WC logging directory.
* Fix - For regular products, ensure stock level saves on product creation.
= 2.2.1 - 10/09/2014 =
* Fix - Small tweak to the installer to prevent errors caused by outdated plugins.
* Fix - Mijireh Checkout update link.
* Tweak - Small tweak to update notification to remind users to update old plugins prior to install.
= 2.2.0 - 10/09/2014 =
* Feature - Refunds system for orders.
* Feature - New orders panel for managing line items + totals.
* Feature - Language pack downloader. po and mo files removed from core (too heavy).
* Feature - Added used payment gateway to view orders screens.
* Feature - Allow backorders to be configured at variation level.
* Feature - Protect admins from shop manager users.
* Feature - Ability to add custom quantity using add_to_cart shortcode.
* Feature - Ability to set a maximum spend for coupons.
* Feature - Added Simplify Commerce payment gateway.
* Fix - Allow endpoint use on the front page.
* Fix - user_activation_key password reset code.
* Tweak - Recalculate the cart totals, in the event a user registers during checkout and in doing so qualifies for any discounts.
* Tweak - Use `woocommerce_valid_order_statuses_for_payment` in `pay_action` too.
* Tweak - Added the possibility to translate the edit-address endpoint slug.
* Tweak - Removed all the_content filter in favor to wpautop() and do_shortcode().
* Tweak - Send IPN email notifications to new order email.
* Tweak - Clear and wipe session data on logout and end of checkout for guests.
* Tweak - Load archive-product.php for other product taxonomies.
* Tweak - Disable image size settings if filters are being used.
* Tweak - Hide the shipping address when local pickup is used.
* Tweak - Password protected posts are not hidden from catalog by default anymore, visibility can be set via the 'Catalog visibility' option.
* Tweak - Removed the shortcode button in favor to [WooCommerce Shortcodes](https://wordpress.org/plugins/woocommerce-shortcodes/)
* Dev - API Version 2 with push support.
* Dev - API: Lookup customers by email endpoint.
* Dev - API: Allow ordering on the resource level.
* Dev - Customers API / Methods PUT/POST/DELETE.
* Dev - Coupons API / Methods PUT/POST/DELETE.
* Dev - Orders API / Methods PUT/POST/DELETE.
* Dev - Products API / Methods PUT/POST/DELETE.
* Dev - Added description parameter to the woocommerce_form_field function.
* Dev - Introduce `woocommerce_valid_order_statuses_for_payment_complete` filter.
* Dev - Introduce `woocommerce_thankyou_order_received_text` filter.
* Dev - Introduce `woocommerce_product_backorders_allowed` filter.
* Dev - get_user and get_user_id methods.
* Dev - Add new 'wc_admin_reports_path' filter to reports.
* Dev - Add user ID to shipping packages.
* Dev - Added product id parameter to related posts filters.
* Dev - WC_LOG_DIR constant for defining the log directory.
* Dev - Moved default logging directory 1 level above WordPress, rather than in the plugin folder.
* Dev - Added log viewer in System Status.
* Dev - Made stateless classes static to allow unhooking of methods.
* Dev - Introduces the wc_get_log_file_path() function.
* Dev - Introduces the WC_Order::needs_shipping_address() method.
* Dev - Gateways can set transaction ID for the order.
* Dev - Gateways can do refunds via the Payment Gateway API.
* Refactor - Changed the method in which order statuses are stored. Previously, order status was a taxonomy. This caused issues when unique term slugs differed from what we were expecting, and also added additonal overhead to order queries in reports. https://github.com/woothemes/woocommerce/issues/3064 Order status is now stored as post status - several new post statuses have been added. Order class variables are backwards compatible. The only thing to note (for devs) is that any query must use the order status instead of 'publish' when getting orders and querying by post_status. THe shop_order_status has also been removed.
* Refactor - Update stock amounts with DB queries.
* Refactor - Simplified attribute name sanitisation which maintains UTF8 char integrity.
* Refactor - Country class return methods.
* Notice - Deprecated Mijireh gateway in core. Plugin is available on .org.
* Localisation - Egypptian currency.
* Localisation - Address format of Taiwan.
* Localisation - Removed language files from core to made the package lighter (see language pack downloader feature).
= 2.1.12 - 01/07/2014 =
* Fix - Total tax should be +, not -.
* Fix - Address format in plain text emails to use line breaks, not commas.
* Fix - order item count fix and tr class filters.
* Fix - Missing translations during checkout.
* Fix - Correctly clear transients, including sale transient.
* Tweak - woocommerce_get_order_item_totals_excl_free_fees hook.
= 2.1.11 - 09/06/2014 =
* Fix - Plain text email display of customer address.
* Fix - Saving tax rates threw notices (missing git cherry pick).
= 2.1.10 - 03/06/2014 =
* Fix - Removed unecessary localization from edit account.
* Fix - Admin welcome screen css.
* Fix - Fixed my account setting values to wrong user submitted strings.
* Fix - Menu order terms were coming back empty.
* Fix - Fix notice that occurs from external function call.
* Fix - Addons page, reference new json API endpoint.
* Fix - Notices when rendering WooCommerce Shop as Front Page.
* Fix - Prevent undefined notice for Layered Nav title.
* Fix - state_province is not required for mijireh any longer.
* Fix - Fix coupon limit checks and enhance to check ID by provided email (if logged out).
* Fix - Danish krone symbol.
* Fix - check for the existence of the cart during the is_available().
* Fix - Fixes performance degradation on large wp_options tables.
* Fix - improved the shortcodes button for support WordPress 3.9.
* Tweak - Stronger session ID generation.
* Dev - Add action hooks when saving tax rates.
= 2.1.9 - 14/05/2014 =
* Fix - fix case-insensitive matching for coupon posts with uppercase chars.
* Fix - Make the welcome page RTL compatible.
* Fix - Sanitize, but decode, flat rate shipping method ids. UTF-8 Friendly.
* Fix - Stop sending line items to Mijireh. Like PayPal, Mijireh struggles with out prices including tax due to rounding errors. Since the validation cannot be disabled, its better to just send the order as 1 item. This will prevent rounding errors and payment failures. Prices excluding tax are unaffected.
* Fix - Fix fee/coupon lines typo in REST API order response.
* Fix - Fixes a fatal error when WC()->payment_gateways()->get_available_payment_gateways() is called in the admin.
* Fix - is_available check in shipping for excluding countries was backwards.
* Fix - Encoding of @ in download links.
* Fix - Revise how variation attributes are deleted/updated. Prevents issues with WPE caching when you delete and then update right after.
* Fix - Trim commas and empty lines off address formats.
* Fix - defined a min value to cart quantity input.
* Fix - Fix qty input styling in Firefox 29.
* Fix - Use WP SEO class method rather than deprecated fn.
* Fix - Cleaned up logic in email_instructions.
* Fix - Prevent empty session data being stored until a cookie or session exists to retrieve it.
* Fix - fixed WC_Product_Variable::set_stock() compatibility with WC_Product::set_stock().
* Fix - Fix notice when not scanning any files in system status.
* Fix - Made wc_get_product_terms support custom menu_order by using get_terms and an include.
* Fix - Correct character 3 vaildation for UK postcodes.
* Tweak - Add a tip for default selections, and use opt groups for the long bulk edit list.
* Tweak - Option to toggle enable_for_virtual for COD, rather than just doing it.
* Dev - Introduce `woocommerce_coupon_data_panels` action.
* Dev - Add $package to is_available shipping method hooks.
* Dev - Add tool for disabling shipping rate cache for debug.
= 2.1.8 - 30/04/2014 =
* Fix - Prevent saving duplicate skus in quick edit.
* Fix - Sorting of downloads on my account page.
* Fix - Clear cached API reports when deleting other order transients.
* Fix - Shipping calculator cart messages.
* Fix - Display of UTF8 attributes on view order page.
* Fix - Changed the way the order review html is appended to the checkout page via JS to reduce likelihood of errors.
* Fix - Allow removing downloads from product by removing all rows.
* Fix - Ignore variation stock if disabled globally.
* Fix - Prevent duplicate admin menu items when using menu editor plugins.
* Fix - Remove title from product not purchasable message to prevent possible data leak. Thanks Julio Potier.
* Tweak - Updated REST API docs link.
* Tweak - Updated prettyphoto dependencies.
* Tweak - Customer search performance improvements.
* Tweak - Made default shipping label clearer.
* Tweak - Default order email to user email.
* Tweak - Only show downloadable item related text when product has downloads.
* Tweak - Improved Abstract product constructor.
* Tweak - Add COD instructions to emails.
= 2.1.7 - 10/04/2014 =
* Fix - Allow WC API to generate API keys for different user than the one that is making request.
* Fix - Fix the SKU search logic so it works with other filters.
* Fix - Correctly round shipping + shipping tax together when passes the tax inclusive total to paypal.
* Fix - orderby - skip adding hidden input of submit on a GET so JS can submit properly.
* Fix - Check wc_checkout_params.is_checkout against string '1' instead of int 1.
* Fix - Check order exists when resuming on checkout.
* Fix - When removing base taxes, round to precision.
* Fix - Ensure _order_currency is set.
* Fix - Use `$wpdb->db_version()` instead of `mysql_get_server_info()` deprecated in PHP 5.5.
* Fix - myaccount registration added check for auto generate password option.
* Fix - API: normalize both key and value before calculating OAuth signature.
* Fix - API: double-encode percent symbols when normalizing parameters.
* Fix - API: Remove post_parent so grouped simple products are also returned.
* Fix - Clear featured transients when needed.
* Fix - Stay on checkout when removing coupon.
* Fix - Prevent totals refreshing on every keydown event on the checkout.
* Fix - When hierarchy is off, only show children in the cat widget.
* Fix - Delete term count transients after stock status change and trashed post.
* Fix - During save_meta_boxes, only save for the "main" post being saved, not nested or subsequent save_post events.
* Fix - Stop _wc_session_expires autoloading.
* Fix - Remove nonce from comment form to prevent issues with caching.
* Fix - reset grouped products correctly to work with short codes.
* Fix - In admin, work out cart discount without tax amounts.
* Tweak - Apply filters to $product_type and we can set a default product type to new products.
* Tweak - wp_kses_post for meta display in admin.
* Tweak - woocommerce_order_cancelled_notice hook.
* Tweak - Use is_ssl() for get_woocommerce_api_url().
* Tweak - Changes to filters to see if shipping is needed or not in the cart class.
* Tweak - Chunk option names in cleanup_sessions() to reduce load.
* Tweak - Change \WC_Order::add_order_note cap to edit_shop_order instead of manage_woocommerce.
* Tweak - Allow filtering order statuses in dashboard reports widget.
* Tweak - Added is_paying_customer() to easily check if a user is a WC customer.
* Tweak - Allow query string fallback for REST API SSL auth.
* Tweak - woocommerce_coupon_get_discount_amount filter in coupon class.
* Tweak - More friendly/less blunt "no shipping" messages.
* Tweak - use network_site_url instead of network_admin_url for multisite.
* Tweak - Updater - Only show upgrade notices, and use transient cache.
* Tweak - get_image_id method for use in email template. Shows correct variation images.
* Tweak - added validation when save the frontend colors.
= 2.1.6 - 25/03/2014 =
* Fix - Fixed a bug where cron events are scheduled using a function name rather than a hook name.
* Fix - Given transients not required on all pages expiration times to prevent autoloading.
* Fix - Don't trailingslash Order Cancel URLs with a Query String.
* Fix - Switch to jquery trim to allow checkout in older IE.
* Fix - Variation bulk sale price edit over reaching causing errors on save.
* Fix - Only append generator tag on HTML pages.
* Fix - AED currency symbol.
* Fix - Move loop_end hooks as it is generic and used in all WP loops. Prevents some theme conflicts.
* Fix - Lingering tooltip after gallery image delete.
* Fix - Move plugin headers to main WC POT file.
* Fix - Correct discount calculation in admin when fees are involved.
* Fix - Fix sale flash for out of stock sale items.
* Fix - Use protocol relative URLs in the cart widget because it gets cached and can display on https or http pages.
* Fix - Fix term recount during WP callbacks.
* Fix - Convert states to strings for PayPal (non-US).
* Fix - Hide empty at walker level to fix category widget display.
* Fix - form-login form values were not persistent after failed submission.
* Fix - URL decode not needed for custom text attribute names.
* Fix - Fix bulk editing variation sale price.
* Fix - Remove comment exclusion in order notes meta box.
* Fix - Sync min and max prices for regular and sale prices so prices are displayed correctly when sale price is lower than a regular price of another variation.
* Fix - Expanding line item_meta causes conflicts if attributes are named with things like 'name', 'type' or 'qty'. Added blacklist to exclude unsafe values.
* Fix - Added support for clearing report transients when using object caching.
* Fix - encoding issues with attribute values.
* Fix - Escape the contents of the changelog when displayed.
* Fix - Edge case where tax was still displayed for shipping when exempt.
* Tweak - Allow city field to use another input method.
* Tweak - Several new filters.
* Tweak - PayPal, modify currency error message to include both sent and returned currencies for comparison.
* Tweak - enable keyboard shortcuts in prettyPhoto.
* Tweak - Add classes to item meta.
* Tweak - Use is_purchasable to determine if a variation cart button is needed, and potentially show empty_price_html.
* Tweak - new woocommerce_cart_taxes_total filter.
* Tweak - new wc_cart_totals_taxes_total_html() function.
* Tweak - Use API request URL for mijireh and PayPal callbacks.
* Tweak - move variation data to tooltip in order items meta box.
* Tweak - Store variation data for order items added through the admin.
* Tweak - Billing Address > Billing Details text. We take more than address in this section.
* Tweak - Delete terms transient during recount.
* Refactor - jshint javascript files.
* Localisation - add Bangladeshi currency and symbol.
* Localisation - Bangladeshi states (districts).
* Localisation - Croatian currency symbol.
= 2.1.5 - 06/03/2014 =
* Fix - Prevent notices on new plain text email parameter for BACS and Cheque gateways
* Fix - Fixed issue where variation prices were hidden when variation stock management wasn't set
* Fix - Discounts fixed_product are now properly multiplied by quantity
* Fix - Fixed bulk edit % increase and decrease
* Fix - Extra check for access_expires when getting downloadable files
* Fix - get_related method fixed tags OR query not excluding product ID
* Tweak - Fallback for when add ons page is not loading
* Tweak - Hide price suffix in admin panel lists
= 2.1.4 - 05/03/2014 =
* Fix - Prevent duplicate loading of functions files
* Fix - Fixed breaking timeline for reports
* Fix - Category widget ordering
* Fix - BACS and Cheque gateway emails now have a plain text flag
* Fix - wc_get_product_ids_on_sale will never return 0
* Fix - Prevent errors upon comments when order is in trash
* Fix - Reviews widget now links to proper review anchor
* Fix - Added support for permalinks containing a query string in wc_get_endpoint_url
* Fix - Variable product add file button works after adding a new variation
* Fix - Resolved issue where styles didn't get compiled properly
* Fix - Changed the save order so email data is correct for manual orders
* Fix - Later hooking in for template redirect
* Fix - Reverted load order change for language files and provided proper context
* Fix - Made woocommerce_update_cart_action_cart_updated a filter which can return true or false to recalc totals
* Fix - Updated sync logic to exclude hidden and out of stock variations from the price display
* Fix - Changed set_stock to only make a variable product out of stock if all variations are stock managed to resync prices after stock changes
* Fix - Use woocommerce_notify_no_stock_amount not 0 in variable class sync method
* Fix - Suppress errors in download handler by silencing ob_flush and flush calls
* Fix - load_textdomain first from WP_LANG_DIR before load_plugin_textdomain
* Tweak - get_states method now returning false instead of array for countries without states
* Tweak - Improved shipping language strings
* Tweak - Remove admin check around global po translation file loading
* Tweak - Improved styles for tab views
* Refactor - Hardened code base and fixed strict standards notices
= 2.1.3 - 27/02/2014 =
* Fix - Use correct thresholds to calculate out of stock number in dashboard widget
* Fix - Admin screen strings sanitised to work with Chinese characters
* Fix - REST API OAuth signature fixed when using filter params
* Fix - Ensure shipping address data for customers is updated if only shipping to billing address
* Fix - Fixed sprintf missing parameter in customer-new-account.php template
* Fix - Ampersand character properly outputted in plain text emails
* Fix - Stack the password reset fields on smaller screens
* Fix - Bulk edit options now reflect on all variations
* Fix - Prevent notices when country has states but no states are specified in cart
* Fix - Make my-account/view-order use the correct template file
* Fix - Prevent session warnings when WordPress logs out
* Fix - Prevent spaces in file names from breaking product thumbnails
* Fix - Resolved issue where download permissions where not granted in some cases upon order complete
* Fix - Prevent IE cursor from being stuck in loading animation
* Fix - Ensure wc_get_product_ids_on_sale returns array of ints, not strings
* Fix - Prevent rating stars from wrapping in IE
* Fix - Rating stars properly aligned in small screens
* Fix - Handle get_rate_code when no matching rate is found
* Fix - Cleaned noticed that might show when tax rates left empty
* Fix - Prevented warning when you have hide shipping methods until address entered selected in CoD
* Fix - Better URL detection for subdirectory installs in get_woocommerce_api_url
* Fix - Transient names are now md5 hashed so they don't exceed max length
* Fix - Fixed searching for orders and speed improvements there
* Fix - "Show children of current category only" option working again in Product Category widget
* Fix - Order search by SKU can now return multiple results again
* Fix - Fixed alignment of radio button in settings API
* Fix - Layered nav widget now shows terms again when using list OR
* Fix - Prevent multiple attempts at cancelling actions on orders
* Fix - Fixes in reporting for variations
* Fix - My Accounts downloads section now shows files names
* Fix - Improved code to log in via email address
* Fix - When guest checkout is enabled, manual made admin orders can be paid without logging in
* Fix - Fix product counts when subcategories are displayed
* Fix - Fixed Relevanssi conflicts
* Fix - Fixed issue with Mijireh incorrectly rounding shipping totals
* Fix - Shipping class selection will be hidden for virtual variations
* Fix - Prevent product percentage based coupons to stack discounts
* Tweak - Added United Arab Emirates Dirham currency
* Tweak - Enforce a static base for product permalink structures to prevent 404 issues
* Tweak - Introducing woocommerce_get_username_from_email filter in login processing method
* Tweak - Trash pages swapped for endpoints instead of force delete
* Tweak - Flip default status of price_trim_zeros (defaults to true now)
* Tweak - Performance improvements for My Account view with a lot of available downloads
* Tweak - Introduces woocommerce_return_to_shop_redirect filter
* Tweak - Improved tax rounding, to calculate an accurate tax total
* Tweak - Introduced failsafes to prevent actions trying to take place on removed products
* Tweak - Permalinks enabled data in REST API
* Tweak - Filters to restrict granting/revoking access to files
* Tweak - Added Canadian address format
* Refactor - Multiple docblock updates
* Refactor - Multiple code standards improvements
* Refactor - Changed all text strings without explicit domain, to use the 'woocommerce' text domain
* Refactor - Speed improvements in various places
= 2.1.2 - 13/02/2014 =
* Fix - Removed nl2br function from plain text email-order-items email template
* Fix - Made static string translatable in email-order-items email template
* Fix - Added missing third parameter to _doing_it_wrong call
* Fix - Sidebar in reports screen does now fit big numbers (long strings)
* Fix - Report stock icon properly set up
* Fix - Removed manual checks for AJAX requests, relying on DOING_AJAX constant now
* Fix - Checkout get_value now returns null if no value is set, default can be used as fallback
* Fix - Variation download url now cleaned via wc_clean instead of esc_url_raw
* Fix - Wrap billing and shipping fields with a div/class to prevent field order issues
* Fix - Fix line total display for order fees in admin panel order view page
* Fix - Restored multiple image selection for product gallery
* Fix - Update schemas before DBDELTA to fix mysql errors on update
* Fix - Italian address formatting fix
* Fix - Set countries as an array by default in the shipping abstract
* Fix - Fixed term counts when terms span taxonomies
* Fix - Fixed saving of fee tax total
* Fix - Fixed "Shipping via" label in PayPal
* Tweak - Tweak the order of checks in bulk_and_quick_edit_save_post to make it more efficient on autosave
* Tweak - Always set order billing email address when user is logged in, if no email is provided
* Refactor - Removed obsolete view order shortcode class
* Localization - Multiple localization updates
= 2.1.1 - 12/02/2014 =
* Feature - Show notice if template files are out of date for themes including WooCommerce template files
* Feature - Introducing supporting is_wc_endpoint_url function
* Fix - During install, register all post types and endpoints so that the rewrite rules are correctly generated.
* Fix - Allow line breaks in customer addresses on order details page
* Fix - Fixed all language country codes to reflect WordPress standards
* Fix - Payment gateway section links work in lower and upper caps texts
* Fix - Prevents nonce notice when removing item from cart
* Fix - Hide empty categories in product_categories shortcode
* Fix - Fixed Twenty Thirteen single product page layout
* Fix - Fix saving of checkboxes (off state) in widgets API
* Fix - Proper password validation in user register on the My Account page
* Fix - When add_to_cart is called, ensure the correct product_id is set for variations
* Fix - Restored Italian translation files
* Fix - Ensure stock status is updated. Prevents new products being hidden when the option to hide out of stock products is enabled
* Fix - Fix manual order calculation when using non-standard decimal points
* Tweak - Added Croatian Kuna currency
* Tweak - Throw a non-fatal notice when file trying to be included as template doesn't exist
* Tweak - Add versions to all scripts + styles to ensure browser cache is cleared
* Tweak - Added tinymce buttons relevant to the short description
* Refactor - Removed unused change password template and shortcode class
* Refactor - Several function dockblocks improved
* Refactor - Stripped out some unused variables
= 2.1.0 - 10/02/2014 =
* Feature - New REST API
* Feature - Define whether prices should be shown incl. or excl. of tax, and add an optional suffix.
* Feature - Show grouped or itemized taxes during checkout.
* Feature - Split frontend styles into separate appearance/layout stylesheets and removed the enable/disable option.
* Feature - Added woocommerce-smallscreen.css to optimise default layout on handheld devices.
* Feature - Bulk edit increase / decrease variation prices by fixed or percentage values
* Feature - Admin action to link past orders of the same email address to a new user.
* Feature - Account edit page for editing profile data such as email.
* Feature - Customer list reports.
* Feature - Reports - New design, export csvs, more data.
* Feature - Ability to link past orders to a customer (before they registered).
* Feature - Authorize option for paypal standard.
* Feature - Separate options for countries you can ship to and sell to.
* Feature - BACS supports multiple account details.
* Feature - PayPal PDT support (as alternative to IPN).
* Feature - Handling for password protected products.
* Feature - Schema markup selector for downloadables.
* Feature - woocommerce_get_featured_product_ids function.