-
Notifications
You must be signed in to change notification settings - Fork 184
/
changelog.txt
2527 lines (2306 loc) · 261 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
*** WooCommerce Subscriptions Changelog ***
2024-12-16 - version 7.0.0
* Fix: Prevent failing non-recent renewal order from suspending the subscription and marking the most recent renewal order as failed.
* Fix: Use block theme-styled buttons for subscription and related-orders actions on My Account pages.
* Fix: Subscription totals not properly updating when customers remove items via the My Account > View Subscription page on some stores with caching enabled.
* Fix: Resolved unexpected errors during the renewal process when a subscription contains metadata with key "id".
* Update: Changed the link on the order thank-you page to take customers directly to their "My Account > Subscriptions" page.
* Dev: Update subscriptions-core to 7.8.0
2024-11-27 - version 6.9.1
* Fix: Resolved compatibility issues with WordPress 6.7 caused by translating strings too early.
* Dev: Update subscriptions-core to 7.7.2
2024-11-14 - version 6.9.0
* Add: New Customer Notification feature - sends reminder emails for upcoming subscription renewals, trials ending, and subscription expirations.
* Fix: Prevent adding products to the cart if a subscription renewal is already present.
* Update: Improved performance of wcs_get_subscription() when querying by product and customer or order.
* Update: Improved performance when checking limited subscription product availability.
* Update: Deprecate upgrading from versions of WooCommerce Subscriptions prior to 3.0.0 (released Jan 2020).
* Dev: Minor refactoring of `init` method in `WC_Subscriptions_Upgrader` class.
* Dev: Introduce the filter `woocommerce_subscriptions_synced_first_renewal_payment_timestamp` to enable plugins to modify the first renewal date of synced subscriptions.
* Dev: Update `get_post_meta()` calls to fetch product meta using CRUD getters.
* Dev: Update subscriptions-core to 7.7.1
2024-10-14 - version 6.8.0
* Fix: Restore Retry icon in Orders table for HPOS-enabled stores.
* Fix: Correctly updates a subscription status to `cancelled` during a payment failure call when the current status is `pending-cancel`.
* Fix: Clear the `cancelled_email_sent` meta when a subscription is reactivated to allow the customer to receive future cancellation emails.
* Fix: Prevent deprecation notices after updating to WooCommerce 9.3.
* Fix: Prevent PHP fatal error that occurs when calculating the total tax refunded on a subscription.
* Dev: Only initialise the `WCS_WC_Admin_Manager` class on stores running WC 9.2 or older. This class handled integration with the Woo Navigation feature that was removed in WC 9.3.
2024-09-13 - version 6.7.0
* Fix: Resolved two issues preventing the correct display of the "Subscription items can no longer be edited." message on the Edit Subscription page.
* Fix: Checks for the existence of `wc_get_page_screen_id` before calling it on `wcs_get_page_screen_id`, and for the admin context before calling `list_table_primary_column` to prevent fatal errors.
* Fix: Blocks the reactivation of a subscription when the end date is in the past.
* Fix: Ensure a subscription's modified date is updated when its related order cache is updated on non-HPOS sites.
* Fix: Ensure trial period form data is set before use to prevent fatal errors when the data is missing.
* Fix: Resolved an error with coupon discount calculations for manual or early renewal orders on stores with tax-inclusive pricing.
* Fix: Add the theme-compatible button class to the switch button on the My Account > Subscription page.
* Dev: Removing the unused method `maybe_remove_formatted_order_total_filter` hooked to `woocommerce_get_formatted_order_total` which was deprecated.
* Dev: Update subscriptions-core to 7.5.0
2024-09-05 - version 6.6.2
* Fix: Prevent errors during checkout when a customer is switching their subscription product and does not require payment.
* Dev: Update subscriptions-core to 7.4.3.
2024-08-27 - version 6.6.1
* Fix: Resolved an issue where simple product prices were incorrectly set to $0 when purchasing subscriptions and simple products with a coupon in WC 9.2.
* Dev: Update subscriptions-core to 7.4.2.
2024-08-22 - version 6.6.0
* Fix: Resolve duplicate subscription creation and PHP warning when switching subscriptions with Prepaid for WooCommerce Subscriptions plugin active.
* Fix: Switch calculations now exclude previous switch orders with a checkout-draft status.
* Dev: Introduce new parameter to WC_Subscription::get_last_order() to enable filtering out orders with specific statuses.
* Update: Schedule subscription-related events with a priority of 1 to allow for earlier execution within the Action Scheduler.
* Fix: Ensure admin notices are displayed after performing bulk actions on subscriptions when HPOS is enabled.
* Fix: Add a year to the next renewal date billing interval is 12 months or more for a synced subscription.
* Dev: Added filter to enable overriding the total paid for current switch period.
* Dev: Updated subscriptions-core to 7.4.1.
2024-07-16 - version 6.5.0
* Add: Include trial_period, suspension_count, and requires_manual_renewal in the REST API response for subscriptions.
* Update: When a renewal order's payment is skipped, include the order's current status in the note to help troubleshooting.
* Fix: Label improvements on subscription and order page templates.
* Fix: Fixed an issue with subscriptions containing multiple renewal orders to mark a random item as processing, instead of the last order.
* Fix: Prevent errors from invalid subscription objects during customer payment method updates.
* Dev: Updated subscriptions-core to 7.3.0.
2024-06-28 - version 6.4.1
* Fix: Resolved errors preventing subscription-related webhooks from sending on WC 9.0 stores.
2024-06-13 - version 6.4.0
* Add: New WP CLI support to manage subscriptions via command line.
* Add: Introduce wc/v2 subscription REST API endpoints.
* Fix: label improvement on my subscription page template.
* Fix: Regenerate subscriptions related order caches (renewal, resubscribe, switch) if it's stored as an invalid value to prevent fatal errors.
* Update: Show "FREE" instead of 0 when there is no shipping cost in the recurring totals section of the Cart and Checkout blocks (requires WooCommerce 9.0+).
* Dev: New function wcs_set_recurring_item_total() to set line item totals that have been copied from an initial order to their proper recurring totals (i.e. remove sign-up fees).
* Dev: Updated subscriptions-core to 7.2.0.
2024-05-24 - version 6.3.2
* Fix: Prevent overriding line item totals provided in request data when creating Orders via the REST API.
2024-05-09 - version 6.3.1
* Fix: Resolved an issue that caused "WC_DateTime could not be converted to int" warnings to occur on non-hpos sites while editing a subscription.
2024-05-09 - version 6.3.0
* Fix: Uncaught exception from 'WCS_Related_Order_Store_Cached_CPT::delete_relations' when order is not an instance of WC_Order.
* Fix: Include subscription sign-up fees on orders created via the REST API.
* Fix: Add check to prevent fatal error in rsort and array_sum.
* Fix: Use `add_to_cart_ajax_redirect` instead of the deprecated `redirect_ajax_add_to_cart` function as callback.
* Fix: Filtered order links in subscription reports returns all the orders when HPOS is enabled.
* Fix: Typo in confirmation alert when users remove an item from a subscription.
* Fix: Ensure the scheduled sale price for subscription products ends at the end of the "to" day set in product settings.
* Fix: Subscription table is empty in mobile view when HPOS is enabled.
* Fix: WooCommerce page header is hidden when HPOS is enabled.
* Fix: Subscription updated messages missing on the Edit Subscription page when HPOS is enabled.
* Fix: Resolved an issue that prevented bulk actions from running on the Subscriptions list table when the table was filtered by date, payment method, product or customer.
* Fix: Subscriptions created via the POST `/wc/v3/orders/{order_id}/subscriptions` endpoint shouldn't include sign-up fees and/or $0 trial periods in line item totals.
* Update: Update the shipping method styling to apply borders to the highlighted shipping option in the Checkout block.
* Update: Include a full stack trace in failed scheduled action logs to improve troubleshooting issues.
* Update: Show notice about product being removed from the cart when a subscription is for disabled mixed checkout setting.
* Update: Change plugin name back to WooCommerce Subscriptions.
* Dev: Calling wcs_create_subscription() will no longer attempt to fetch a fresh instance of the subscription at the end. This is to prevent loading the subscription from the database potentially unnecessarily.
* Dev: Updated subscriptions-core to 7.1.0.
* Dev: Bump WooCommerce minimum required version to 7.9.0.
2024-04-11 - version 6.2.0
* Add: Declare WooCommerce as a plugin dependency in the plugin header.
* Fix: Ensure next payment dates are only extended when early renewal orders paid via the modal are fully paid. Prevents extending dates on authorized but not captured payments.
* Fix: Updated the switching calculator to handle situations where an upgrade has a new price per day less than the old price per day. Previously this would result in a negative upgrade cost.
* Fix: Update the failing payment method on a subscription when customers successfully pay for a failed renewal order via the block checkout.
* Fix: Resolved an issue that would cause subscriptions to be directly cancelled by the WooCommerce process of automatically cancelling unpaid orders in-line with the hold stock setting.
* Fix: Prevent duplicate status transition notes on subscriptions and potential infinite loops when processing subscription status transitions.
* Fix: Resolved an issue that could lead to "Undefined array key 'order-received'" errors.
* Fix: Resolved errors that could occur when paying for renewal orders via the checkout when the store has custom checkout fields.
* Fix: Resolved database errors that would occur when ordering the subscriptions list table by the 'Last order date' on sites with HPOS enabled.
* Dev: Introduced a new filter ('wcs_setup_cart_for_subscription_initial_payment') to enable third-party plugins to use the pay-for-order flow to complete a subscription's initial payment.
* Dev: Updated subscriptions-core to 7.0.0.
2024-03-28 - version 6.1.0
* Fix: Ensure the subscription renewal payment process doesn't attempt to reprocess previously paid renewal orders.
* Fix: Resolved an issue where discounts, when reapplied to failed or manual subscription order payments, would incorrectly account for inclusive tax.
* Fix: Resolved an issue that could cause an empty error notice to appear on the My Account > Payment methods page when a customer attempted to delete a token used by subscriptions.
* Fix: Make sure we always clear the subscription object from cache after updating dates.
* Fix: Use block theme styles for the 'Add to Cart' button on subscription product pages.
* Fix: Customer notes not being saved on the Edit Subscription page for stores with HPOS enabled.
* Fix: Ensure products that have a yearly billing period can choose a date that the subscription is synchronized to.
* Fix: Improved alignment of subscription product pricing fields on the edit product screen for consistency with other fields.
* Fix: Avoid setting empty meta keys on subscriptions when changing the customer's default payment method.
* Fix: Use a more scalable way to filter the orders admin list table by parent orders on HPOS stores.
* Fix: Resolved an issue that prevented subscription custom place order button labels from working on the block checkout.
* Update: Change the update all subscriptions checkbox displayed on the change payment method page to be enabled by default.
* Dev: Update subscriptions-core to 6.9.0
2024-02-08 - version 6.0.0
* Add: Subscription plugin settings can now be fetched via the /wc/v3/settings/subscriptions REST API endpoint.
* Fix: Trigger the subscription.updated webhook event for all subscription updates.
* Fix: Block the UI after a customer clicks actions on the My Account > Subscriptions page to prevent multiple requests from being sent.
* Fix: WC 8.6.0 compatibility: Resolved wc_get_log_file_path() deprecation warnings.
* Dev: Update subscriptions-core to 6.8.0
2024-01-17 - version 5.9.1
* Fix: Resolved an error that would occur with WooCommerce 8.5.0 when editing a subscription customer from the admin dashboard.
2024-01-11 - version 5.9.0
* Fix: Resolved an issue that caused ordering the Admin Subscriptions List Table to not work when HPOS is enabled.
* Fix: When switching all subscription items in the same cart, ensure the previous subscription is reused where possible instead of creating all new subscriptions.
* Update: Changed the edit subscription product "Expire after" (Subscription length) so it more clearly describes when a subscription will automatically stop renewing.
* Update: Log all exceptions caught by WooCommerce while processing a subscription scheduled action.
* Dev: Update subscriptions-core to 6.7.0.
2023-12-21 - version 5.8.0
* Fix: Incorrect switch calculation when upgrading a synchronised product before the first renewal is due where the initial payment was prorated.
* Fix: When updating a subscription via the REST API, don't update the start date to the current time if the start date is not set in the request.
* Fix: When using the checkout block to pay for renewal orders, ensure the order's cart hash is updated to make sure the existing order can be used.
* Fix: Prevents a PHP fatal error that occurs when the cart contains a renewal order item that no longer exists.
* Fix: When HPOS is enabled and data compatibility mode is turned on, make sure subscription date changes made to postmeta are synced to orders_meta table.
* Fix: Resolved an issue that would cause undefined $current_page, $max_num_pages, and $paginate variable errors when viewing a page with the subscriptions-shortcode.
* Dev: Update subscriptions-core to 6.6.0.
2023-11-09 - version 5.7.0
* Add: Introduce a new REST API endpoint to create subscription(s) from a given order. This endpoint is available at POST `/wc/v3/orders/{order_id}/subscriptions` and accepts a single order ID.
* Add: When a customer toggles automatic renewals on or off via their My Account page, add a note to the subscription to record that event.
* Fix: Set and update a subscription's trial end date via the REST API.
* Fix: Ensure the `woocommerce_subscription_renewal_payment_complete` hook is always triggered when processing early renewals via the checkout page (introduced in 5.6.0).
* Fix: When a subscription is flagged as requiring manual payments, allow admin users to turn on automatic payments for a subscription via the Edit Subscription page by selecting a new payment method.
* Fix: When processing an early renewal order, make sure the suspension count is reset back to 0 on payment complete.
* Fix: Ensure proper backfilling of subscription metadata (i.e. dates and cache) to the postmeta table when HPOS is enabled and compatibility mode (data syncing) is turned on.
* Fix: Fetch and update the `_cancelled_email_sent` meta in a HPOS compatibile way.
* Dev: Introduce a new wcs_get_subscription_grouping_key() function to generate a unique key for a subscription based on its billing schedule. This function uses the existing recurring cart key concept.
* Dev: Deprecate the WC_Subscriptions_Synchroniser::add_to_recurring_cart_key(). Use WC_Subscriptions_Synchroniser::add_to_recurring_product_grouping_key() instead.
* Dev: Update subscriptions-core to 6.5.0.
2023-10-18 - version 5.6.0
* Add: Introduce the "Subscription Relationship" column under the Orders list admin page when HPOS is enabled.
* Add: Use admin theme color and the correct WooCommerce colors.
* Fix: Resolved an issue that caused subscriptions to go on-hold when a customer fails or abandons an early renewal order payment.
* Fix: Resolved an issue that caused subscriptions with an unpaid early renewal order to be incorrectly considered as needing payment.
* Fix: When HPOS is enabled, make the orders_by_type_query filter box work in the WooCommerce orders screen.
* Fix: Ensure renewal orders paid via the Block Checkout are correctly linked to their subscription.
* Fix: Resolved an issue that caused paying for failed/pending parent orders that include Product Add-ons to not calculate the correct total.
* Fix: Ensure the order needs processing transient is deleted when a subscription order (eg renewal) is created. Fixes issues with renewal orders going straight to a completed status.
* Fix: Store the correct subscription start date in postmeta and ordermeta when HPOS and data syncing is being used.
* Fix: When HPOS is enabled, deleting a customer will now delete their subscriptions.
* Fix: Missing styles on the Edit Subscription page when HPOS is enabled.
* Fix: Resolve an issue that would cause additional subscriptions to be created when completing a switch via the Block Checkout.
* Fix: Resolve an issue that would cause 3rd party plugin edit product fields with the show_if_variable-subscription class to be incorrectly hidden.
* Fix: Allow gateways to execute action on payment method deletion before updating the subscription.
* Fix: Ensure subscriptions have a date created that correctly accounts for the site's timezone. Fixes issues with subscriptions having a date created double the site's UTC offset.
* Fix: When HPOS is enabled, fix quick-editing the subscription statuses on the admin list table.
* Dev: PHP 8.2: Fix "Creation of dynamic property" warnings.
* Dev: PHP 8.2: Fix "Automatic conversion of false to array is deprecated" warnings.
* Dev: PHP warnings from using debug_backtrace().
* Dev: Updated subscriptions-core to 6.4.0
* Dev: Updated the hooks for Checkout Blocks, replacing the deprecated `woocommerce_blocks_checkout_` prefixed hooks with `woocommerce_store_api_checkout`.
2023-09-21 - version 5.5.0
* Tweak - Use admin theme color in selectors.
* Tweak - Change plugin name to Woo Subscriptions.
2023-08-11 - version 5.4.0
* Add: Introduce an updated empty state screen for the WooCommerce > Subscriptions list table.
* Fix: Ensure subscription checkout and cart block integrations are loaded on store environments where WooPayments is not enabled.
* Fix: Ensure the shipping phone number field is copied to subscriptions and their orders when copying address meta.
* Update: When HPOS is disabled, fetch subscriptions by customer_id using the user's subscription cache to improve performance.
* Dev: Deprecated the 'woocommerce_subscriptions_not_found_label' filter.
* Dev: Updated subscriptions-core to 6.2.0
2023-07-26 - version 5.3.1
* Fix: Resolved an issue that prevented the "Used for variations" checkbox to not be enabled on the edit product page load causing variations to be deleted erroneously.
* Dev: Fixed wcs_get_subscription_orders() returning an empty list when querying parent orders when HPOS is enabled with data syncing off.
* Dev: Use the WC_VERSION constant when determining the active WooCommerce version inside our dependency manager if it's defined.
* Dev: Updated subscriptions-core to 6.1.0
2023-07-19 - version 5.3.0
* Fix: Ensure when a customer changes the shipping method on cart and checkout that the recurring totals correctly reflect the chosen method.
* Fix: Resolve an issue that prevented the "Used for variations" checkbox from being enabled on the variable subscription product edit screen on WC version v7.9.0.
* Fix: When HPOS is enabled, the `wc/v3/subscriptions` REST API endpoint will now fetch subscriptions of all statuses.
* Dev: Filter the WC_Order_Query args to properly query subscription statuses when HPOS is enabled.
* Dev: Updated subscriptions-core to 6.0.0
2023-07-05 - version 5.2.0
* Fix: Resolved an issue that prevented the selected Shipping Method from being saved when switching an assembled Product Bundle.
* Fix: When HPOS is enabled, permanently deleting a subscription related order wasn't updating the related orders cache properly.
* Fix: Added logic to check if the recurring cart array is present before displaying the recurring totals section in the cart.
* Dev: Updated subscriptions-core to 5.8.0
2023-06-05 - version 5.1.3
* Fix: Resolved an issue with customers being redirected to an incorrect Pay for Order URL after login.
* Dev: Updated subscriptions-core to 5.7.2
2023-05-11 - version 5.1.2
* Fix: Resolve errors for third-party code using the URLs returned from WC_Subscriptions_Admin::add_subscription_url() and WCS_Cart_Renewal::get_checkout_payment_url() because they were erroneously escaped. #4526
* Dev: Enable third-party code to alter the delete payment token URL returned from flag_subscription_payment_token_deletions. #4526
* Dev: Update subscriptions-core to 5.7.1. #4526
2023-05-05 - version 5.1.1
* Fix: Error when third-party extensions use the `woocommerce_subscriptions_add_switch_query_args` filter. #4522
2023-05-04 - version 5.1.0
* Fix: Correctly determine subscription free shipping eligibility when the initial payment cart isn't eligible. Fixes erroneous "Invalid recurring shipping method" errors on checkout. #4513
* Fix: Fatal error from third-party extensions using the `woocommerce_update_order` expecting the second parameter. #4519
* Dev: Fixed precision loss notice that occurs when running PHP 8.1. #4513
* Dev: Fix phpcs and semgrep warnings to improve code quality. #4513 #4514
* Dev: Use `wp_safe_redirect()` when processing a payment method change request. #4513
* Dev: Update subscriptions-core to 5.7.0. #4519
* Dev: Pass the subscription object as the second parameter to `woocommerce_update_subscription` hook (and `woocommerce_update_order` for backwards compatibility). #4519
* Dev: Return a response from the WC_Subscription::set_status() function in line with the parent WC_Order::set_status() function. #4519
* Dev: Add the 'wcs_recurring_shipping_package_rates_match_standard_rates' filter to enable third-parties to override whether the subscription packages match during checkout validation. #4519
2023-03-31 - version 5.0.1
* Fix: WooCommerce dependency check was erroneously failing on stores with other plugins including a woocommerce.php file. #4497
2023-03-10 - version 5.0.0
* Fix: When a customer changes their address during a subscription switch, don't save their new address in the postmeta table when HPOS is enabled. #4489
* Fix: When HPOS is enabled, changing your address while paying for a renewal order will update the address on the subscription. #4491
* Fix: Prevent admin error notices being shown for the "subscription trial end" event that was caused by no callbacks being attached to this scheduled action. #4491
* Fix: Prevent fatal error when copying the `_shipping_address` meta data where the value is not an array. #4495
* Update: Use the WC installed version to determine if Subscription dependencies are met rather than the database version.
* Dev: Update subscriptions-core to 5.5.0. #4491
2023-02-22 - version 4.9.1
* Fix: Revert minimum required version of WooCommerce to 6.5 due to fatal errors on some sites.
2023-02-22 - version 4.9.0
* Add: Declare WooCommerce Subscriptions compatible with High-Performance Order Storage.
* Dev: Update subscriptions-core to 5.4.0.
* Dev: Remove the recurring shipping method cache that caused bugs for third-party plugins like Conditional Shipping and Payments.
* Dev: Bump minimum required version of WooCommerce to 7.0.
2023-02-01 - version 4.8.1
* Fix: Fatal error when loading the Edit Subscription page with custom admin billing or shipping fields.
* Dev: Update subscriptions-core to 5.3.1.
2023-01-30 - version 4.8.0
* Add: Highlight subscriptions with overdue payment in list view with red icon & tooltip.
* Add: New wcs_set_order_address() helper function to set an array of address fields on an order or subscription.
* Update: Admin subscription reports are disabled on stores that have opted into HPOS without data syncing enabled.
* Fix: Shipping address correctly set when resubscribing or switching subscriptions that contain different billing and shipping addresses.
* Fix: When processing customer requests to update all their subscription payment methods, ensure the updated subscription is used to fetch the new payment meta, not and old instance.
* Fix: Catch exceptions when changing payment method associated with a subscription to avoid fatal errors.
* Fix: Show the payment retries metabox for renewal orders that have retry attempts on stores that have HPOS enabled.
* Fix: Scheduled retry actions are now cancelled when trashing/deleting a renewal order on stores that have HPOS enabled.
* Fix: On HPOS stores, return the correct count per subscription status from the `/system_status` WC API endpoint.
* Fix: Refactor `WC_Subscriptions_Switcher::process_checkout()` to support stores with HPOS enabled.
* Fix: Refactor `WC_REST_Subscriptions_V1_Controller::get_subscription_orders()` to support stores with HPOS enabled.
* Fix: Edit, add, and list Subscription admin pages now work when HPOS is enabled.
* Fix: Fixed issues where multiple subscription purchases wouldn't appear on the My Account > Subscriptions screen, on HPOS environments.
* Fix: Refactor `WCS_Meta_Box_Subscription_Data::save` to support HPOS stores, fixing a PHP warning notice when updating an order via the Edit Order screen.
* Fix: Set the `download_permissions_granted` value when purchasing a downloadable subscription product when HPOS is enabled.
* Fix: When a customer changes their address on their account or subscription, make sure the new address is saved when HPOS is enabled.
* Fix: Removed the potential for an infinite loop when getting a subscription's related orders while the subscription is being loaded.
* Fix: Refactor `WC_Subscriptions_Renewal_Order` and `WC_Subscriptions_Tracker` classes to support HPOS stores.
* Fix: "Subscriptions by Payment Gateway" in WooCommerce → Status now shows the correct values when HPOS is enabled.
* Fix: Check whether the order actually exists before accessing order properties in wcs_order_contains_subscription().
* Fix: When a subscription's parent order is trashed or deleted, make sure the related subscription is also trashed or deleted on stores with HPOS enabled.
* Fix: When a subscription is trashed or deleted, make sure it is cancelled first on stores with HPOS enabled.
* Fix: Merge any custom meta_query args passed to wcs_get_orders_with_meta_query() to avoid overriding WC core args that map onto meta_query.
* Fix: Prevent erroneously resyncing a subscription every time it is loaded from the database on HPOS environments.
* Fix: On HPOS environments, ensure subscription related order caches are updated when relationship order meta (eg `_subscription_renewal` or `_subscription_switch`) is updated.
* Fix: On HPOS environments, update related orders cache when subscription is trashed, deleted, or restored / untrashed.
* Fix: Replace code using wp_count_posts(), get_post_type(), get_posts and wp_delete_post() with equivalent WC Data Store functions to support stores that have HPOS enabled.
* Dev: Add subscriptions-core library version to the WooCommerce system status report.
* Dev: Introduced a WCS_Object_Data_Cache_Manager and WCS_Object_Data_Cache_Manager_Many_To_One class as HPOS equivalents of the WCS_Post_Meta_Cache_Manager classes.
* Dev: Introduced a new `untrash_order()` in the `WCS_Orders_Table_Subscription_Data_Store` class to fix untrashing subscriptions on stores that have HPOS enabled.
* Dev: Moved the trash, untrash & delete related `add_actions()` in the `WC_Subscriptions_Manager` class to be added on the `woocommerce_loaded` action.
* Dev: Fix phpcs violations in the `WC_Subscriptions_Tracker` and `WCS_Admin_System_Status` classes to improve code quality.
* Dev: Deprecate the `WC_Subscriptions_Switcher::update_shipping_methods()` function.
* Dev: Fix phpcs violations in the `WC_REST_Subscription_System_Status_Manager` class to improve code quality.
* Dev: Remove deprecated `strptime` function in favour of `DateTime::createFromFormat`.
* Dev: Update subscriptions-core to 5.3.0.
* Dev: Bump minimum required version of WooCommerce to 6.5.
2022-12-06 - version 4.7.0
* Add: New wcs_get_orders_with_meta_query() helper function to query for orders and subscriptions.
* Add: New WCS_Orders_Table_Subscription_Data_Store class to support subscriptions stored in High-Performance Order Storage (HPOS).
* Add: New WCS_Orders_Table_Data_Store_Controller class to load the proper subscriptions data store when the store has HPOS enabled.
* Add: New data copier class to copy data to subscriptions and related orders in place of direct database queries in prepraration for HPOS support.
* Fix: Set payment tokens when copying data between orders and subscriptions in a CRUD compatible way. Fixes PHP notices during renewal order process.
* Fix: Infinite loop that can occur with `WCS_Orders_Table_Subscription_Data_Store::read_multiple()` on HPOS-enabled stores.
* Fix: On HPOS stores, when querying for subscriptions with wcs_get_orders_with_meta_query() with status 'any', ensure that wc_get_orders() queries for subscription statuses.
* Fix: On HPOS stores, when saving a subscription make sure subscription properties (ie `_requires_manual_renewal`) are saved to the database.
* Fix: On HPOS stores, when a subscription is loaded from the database, make sure all core subscription properties are read directly from meta.
* Fix: When viewing My Account > Subscriptions, fix an issue where no subscriptions were listed when HPOS is enabled.
* Fix: On HPOS stores, ensure payment tokens are copied from the subscription to the renewal order.
* Fix: Refactor `WCS_Meta_Box_Schedule::save` to support HPOS stores, fixing a PHP warning notice when updating an order via the Edit Order screen.
* Fix: Return a fresh instance of the renewal order after creating it. Fixes caching issues on HPOS sites where the returned order has no line items.
* Fix: Processing a manual renewal order with HPOS and data syncing enabled correctly saves the related order cache metadata on the subscription and prevents the post and order meta data getting out of sync.
* Fix: Use supported CRUD apis to determine if subscriptions are present on store (`wcs_do_subscriptions_exist`)
* Fix: With HPOS and data syncing enabled, updating the status of a pending manual renewal order to a paid status correctly activates the related subscription.
* Fix: Switch orders not appearing in related orders table on edit subscription screen when HPOS is active.
* Fix: On HPOS stores, make sure the links in the related-orders table redirect to the new Edit Order URL.
* Fix: When saving sync meta data on a new subscription, use 'woocommerce_new_subscription' instead of 'save_post'. This is to prevent errors when purchasing a subscription on stores that have HPOS enabled.
* Fix: When WooCommerce is network activated on multisites, don't show the "WooCommerce Subscriptions is inactive".
* Update: Improve maybe_add_subscription_meta() and subscription_contains_synced_product() inside our WC_Subscriptions_Synchroniser class to use CRUD methods.
* Update: Refactor the `wcs_is_subscription` helper function to support HPOS.
* Update: Refactor our Related Orders data store classes (WCS_Related_Order_Store_Cached_CPT and WCS_Related_Order_Store_CPT) to use CRUD methods to support subscriptions and orders stored in HPOS.
* Update: Display related orders table when viewing the new "Edit Order" page (HPOS enabled stores).
* Update: Replace instances of `get_posts()` across codebase with new wcs_get_orders_with_meta_query() function.
* Update: The subscription creation function `wcs_create_subscription` has been updated to use WooCommerce CRUD methods in preparation for supporting High Performance Order Storage (HPOS).
* Update: Improve wcs_copy_order_address() to use modern APIs for setting address fields.
* Dev: Removed the deprecated "wcs_subscriptions_for_{$relation_type}_order" dynamic hook used to filter the list of related subscriptions for the given relation type. The following hooks have been removed with no alternative:
wcs_subscriptions_for_renewal_order
wcs_subscriptions_for_switch_order
wcs_subscriptions_for_resubscribe_order
* Dev: Introduce a WC_Subscription::set_status() function to handle subscriptions set with a draft or auto-draft status. Replaces the need for the overriding WC_Subscription::get_status() which has been deleted.
* Dev: Manual renewal orders created with HPOS and data syncing enabled are properly linked to the subscription by its `_subscription_renewal` meta and backfilled to posts table.
* Dev: Update subscriptions-core to 5.1.0
* Dev: Replace use of deprecated hook `wcs_renewal_order_meta_query` with `wc_subscriptions_renewal_order_data` in `WC_Subscriptions_Switcher`.
* Dev: Usage of \WC_Subscriptions_Core_Plugin::get_plugin_version() is no longer recommended for version detection. \WC_Subscriptions_Core_Plugin::get_library_version() should be used instead.
* Dev: Code that was tagged with a version and moved from WooCommerce Subscriptions now explicitly mentions this and shows the correct subscriptions-core and WC Subscriptions versions.
* Dev: Refactor the saving of subscription dates in the subscription datastore to separate fetching changes and saving. Enables backfilling subscription dates when HPOS syncing is enabled.
* Dev: Replace the use of the deprecated wcs_renewal_order_meta hook with wc_subscription_renewal_order_data in the WCS_Related_Order_Store_Cached_CPT class.
* Dev: wcs_get_objects_property and wcs_set_objects_property have been marked as deprecated. Getters/Setters should be used on the objects instead.
* Dev: Deprecated the "wcs_{type}_meta_query" dynamic hook used to alter the database query used to fetch the meta data to copy between subscriptions and renewal orders. There is no direct replacement. Third-parties should use the "wc_subscriptions_{type}_data" or "wc_subscriptions_object_data" hooks instead.
* Dev: Deprecated the "wcs_{type}_meta" dynamic hook used to filter data copied to subscriptions and renewal orders. Third-parties should use wc_subscriptions_{type}_data instead.
wcs_subscription_meta -> wc_subscriptions_subscription_data
wcs_parent_meta -> wc_subscriptions_parent_data
wcs_resubscribe_order_meta -> wc_subscriptions_resubscribe_order_data
wcs_renewal_order_meta -> wc_subscriptions_renewal_order_data
* Dev: woocommerce_new_subscription_data hook will only work with CPT datastore and so has been deprecated.
* Dev: i18n usage of strftime has been deprecated for subscription titles. Date is now formatted using woocommerce standard date formatting.
* Dev: Removes the legacy `woo-includes/` directory.
* Dev: Updated internal version references to the version of subscriptions-core.
* Dev: Bump minimum required version of WooCommerce to 6.0.
2022-10-11 - version 4.6.0
* Add: Declare incompatibility with WooCommerce High-Performance Order Storage (HPOS).
* Fix: Move One Time Shipping metabox fields to use the woocommerce_product_options_shipping_product_data hook introduced in WC 6.0.
* Update: Improve handling of bulk action execution.
* Dev: Update subscriptions-core to 2.3.0
2022-08-26 - version 4.5.1
* Fix - Fatal Error caused in rare cases where quantity is zero during renewal, builds upon fix released in 4.4.0.
2022-08-04 - version 4.5.0
* Dev: Add missing `woocommerce_subscriptions_switch_link_text` and `woocommerce_subscriptions_switch_link_classes` filters for finer control of switch link. PR#4382
* Fix: Update subscription address when changed with renewals on block checkout.
2022-06-07 - version 4.4.0
* Fix - Fatal Error caused in rare cases where quantity is zero during renewal.
2022-05-24 - version 4.3.0
* Dev: Retrieving users subscriptions order has been updated to use the WooCommerce specific APIs in WC_Subscriptions_Order.
* Dev: Deprecate the WC_Subscriptions_Order::get_meta() function. Use wcs_get_objects_property( $order, $meta_key, "single", $default ) instead.
* Dev: Update the wcs_get_objects_property() function to prevent calls to get_post_meta() on objects that support calling the get_meta() function.
* Dev: Replace the get_post_meta() calls in WCS_Post_Meta_Cache_Manager with WC_Order::get_meta().
* Dev: Replace code using get_post_type( $order_id ) with WC Data Store get_order_type().
* Dev: Replace all cases of update_post_meta() where an Order ID is passed to use WC_Order::update_meta_data() instead.
2022-04-29 - version 4.2.0
* Fix: Remove WooThemes helper/updater admin notice/banner. PR#4328
* Fix: Remove PHP/deprecation notices during the early renewal and switch process when using WooCommerce Blocks 7.2. PR#4341
* Fix: Display subscription billing details in the Cart Block when purchasing products with subscription plans created using the All Products extension. subscriptions-core#149
* Update: Switch to global functions to remove deprecation warnings originating from WooCommerce Blocks. subscriptions-core#124
* Dev: Update subscriptions-core to 1.9.0. PR#4345
2022-03-22 - version 4.1.0
* Fix: Undefined variable `user_can_suspend` when a customer suspension limit is defined and the max number of suspensions has been reached. PR#4318
* Fix: Sets up subscriptions integration with the Mini Cart Block and adds new hook to filter compatible blocks. subscriptions-core#103
* Fix: When using a WooCommerce Blocks powered checkout, fix an issue that led to limited products being removed from the cart when completing a switch or renewal order. subscriptions-core#119
* Fix: When there is only one Shipping Method available in the recurring shipping package, make sure that this method is treated as selected in the current session and the `woocommerce_after_shipping_rate` action runs. subscriptions-core#115
* Fix: Don't anonymize new subscriptions related to old subscriptions via a resubscribe relationship. subscriptions-core#121
* Fix: Content that appears on the My account > Payment methods page should be translatable. subscriptions-core#125
* Dev: Update subscriptions-core to 1.7.0. PR#4319
2022-02-07 - version 4.0.2
* Dev: Update subscriptions-core to 1.6.3. PR#4307
* Fix: Replace uses of is_ajax() with wp_doing_ajax(). wcs#4296 PR#4307
* Improve handling of session data.
2022-01-19 - version 4.0.1
* Fix: Prevent fatal error when too few arguments passed to widget_title filter. PR#4302
* Dev: Update subscriptions-core to 1.6.2. PR#4302
2022-01-19 - version 4.0.0
* New: Update the minimum required WooCommerce version from 3.9 to 4.4. PR#4282
* Fix: Unable to remove subscription line items via the REST API. PR#4258
* Fix: Don't show subscription related product fields when the custom variable type products are created. PR#4215
* Fix: Add consistent margins to the recurring taxes totals row on the Checkout and Cart block. PR#4273
* Fix: Fatal error due to order with no created date in order row template. PR#4273
* Fix: Fatal error on the customer payment page for renewal orders with deleted products. PR#4273
* Fix: Prevent fatal errors on the admin subscriptions screen when a subscription fails to load. PR#4290
* Fix: Incorrect message on the subscriptions table when filtering returns no results. PR#4290
* Fix: Update Cart and Checkout Block hooks to prevent deprecation warnings. PR#4280
* Tweak: Update tooltip wording when deleting product variation. PR#4273
* Tweak: Don't show an admin error notice when a store downgrades to a previous minor version of Subscriptions. PR#4273
* Tweak: Misleading order note on payment method change. PR#4273
* Dev: Moved subscription core files moved into a new subscriptions-core library (loaded from vendor/woocommerce/subscriptions-core). PR#4121
* Dev: New `WC_Subscriptions_Plugin` class to be the main Subscriptions plugin handler class. PR#4116
* Dev: Moved and deprecated 33 functions from class `WC_Subscriptions` to more suitable classes. PR#4114
* Dev: Moved switching feature related classes into its own directory (`includes/switching/`). PR#4122
* Dev: Moved payment retry feature related classes into its own directory (`includes/payment-retry/`). PR#4146
* Dev: Moved early renewal feature related classes into its own directory (`includes/early-renewals/`). PR#4148
* Dev: Moved the "Accept manual renewals" feature and settings to a new `WCS_Manual_Renewal_Manager` class. PR#4124
* Dev: Moved the "Customer Suspensions" feature and settings code to a new `WCS_Customer_Suspension_Manager` class. PR#4138
* Dev: Moved the "Drip Downloadable Content" feature and settings to a new `WCS_Drip_Downloads_Manager` class. PR#4142
* Dev: Moved the "Allow $0 initial checkout without a payment method" feature and settings to a new `WCS_Zero_Initial_Payment_Checkout_Manager` class. PR#4145
* Dev: Moved the "Limited payment recurring coupon" feature to a new `WCS_Limited_Recurring_Coupon_Manager` class. PR#4150
* Dev: Moved the custom subscription product and checkout button text feature to a new `WCS_Call_To_Action_Button_Text_Manager` class. PR#4152
* Dev: Moved the custom active and inactive subscriber roles feature to a new `WCS_Subscriber_Role_Manager` class. PR#4153
* Dev: Removed the Action Scheduler library from WC Subscriptions since it has been included in WooCommerce core since version 3.0. PR#4202
2021-10-06 - version 3.1.6
* Fix: Add back the limited subscription setting for simple subscription products (introduced in v3.1.5). PR#4214
2021-09-28 - version 3.1.5
* Fix: Update subtracted tax amounts to account for quantity changes. PR#4107
* Fix: Correctly remove limited coupons (i.e. "Active for x payments") when the coupon code is made up of only numeric characters. PR#4139
* Fix: Only set subtracted taxes on new items when the rates don't match the base location. PR#4177
* Fix: Hide variable subscription meta fields on the Edit Product page of custom variable products. PR#4193
* Fix: Use the shipping fields to get and save the edit subscription shipping field data. PR#4161
* Fix: Fix TypeError exceptions by checking for WC_Order types inside wcs_get_subscriptions_for_order(). PR#4188
* Fix: Incorrect subtracted tax calculations when updating the subscription when the store currency uses a comma decimal separator. PR#4182
* Fix: Hide the shipping address fields on checkout when the cart contains a subscription product and the 'Force shipping to billing address' setting is selected. PR#4172
* Fix: Get the signup fee for coupon calculation inclusive or excluding tax depending on store settings. PR#4166
2021-07-22 - version 3.1.4
* Fix: Points and Rewards discounts (including WC Coupons when Points and Rewards is active) being removed from the cart when applied on the checkout page. PR#4158
* Fix: Subscriptions with one-time shipping having shipping charged on all renewal orders. PR#4156
* Fix: Rare fatal error caused by missing WC_Query class. PR#4155
* Fix: Make loading the variation edit product tab more performant on large sites. PR#4144
* Fix: Add a primary key to the last payment temporary table to improve compatibility with some hosts on larger sites. PR#4151
* Tweak: Update the wording when a customer edits their subscription address that this applies to "future renewals". PR#4118
* Dev: Add missing `woocommerce_rest_pre_insert_shop_subscription_object` filter to prepare_object_for_database() within the Subscriptions REST API controller class. PR#4119
* Dev: Add a `data-payment-method` attribute to the Early Renewal modal button action. PR#4123
2021-06-09 - version 3.1.3
* Fix: Switch calculations not correctly charging the full sign up fee when the "Prorate Sign up Fee" option is set to "Never (charge the full sign up fee)". PR#4096
* Fix: Fixes PayPal Reference Transactions integration with Checkout blocks. PR#4105
* Fix: Set the updated payment token on all pending-payment renewals so that manually retrying a failed payment uses the updated token set on the subscription. PR#4108
* Dev: Moved the `WC_Subscriptions::enqueue_scripts` and` WC_Subscriptions::equeue_styles` static functions to the new `WC_Subscriptions_Frontend_Scripts` class (deprecated existing functions). PR#4104
2021-05-19 - version 3.1.2
* Fix: Don't show recurring shipping method selection when the rates and options match the initial cart options. PR#4091
* Fix: Update the recurring shipping totals on selection and fix invalid recurring shipping method notices. PR#4099
* Fix: Update the subscription shipping address after on switch. PR#4095
2021-05-12 - version 3.1.1
* Fix: "Invalid recurring shipping method" error on checkout when attempting to purchase a subscription with one-time shipping. PR#4088
* Fix: Rework subscription webhook migration script added in 3.1 to clear cached webhook data. PR#4082
2021-05-10 - version 3.1.0
* New: Add support for WooCommerce Cart and Checkout blocks. PR#3993
* New: Support v3 subscription endpoints. PR#4001
* New: Add woocommerce_inbox_variant option. PR#4084
* New: Update the WC minimum required version to WC 3.7. PR#3914
* New: Add a new Accounts setting to allow admin to enable registration on checkout of subscription customers. PR#3883
* New: Display switch, renewal and resubscribe context in the 'Add to cart' and 'Place order' buttons. PR#3624
* Fix: Fix customer subscription caching errors on multisite installations. PR#4074
* Fix: Update the `_subtracted_base_location_taxes` when an admin edits the subscription line item subtotal. PR#4068
* Fix: Migrate existing v3 subscription webhooks to v1 when upgrading to 3.1 to maintain the same payload delivered. PR#4079
* Fix: Fatal error when processing an initial PayPal Standard payment on a manually created subscription that has no parent order. PR#4033
* Fix: Only allow reactivation of pending-canceled subscription when end date is in the future. PR#4037
* Fix: Don't add a free trial period when resubscribing to a synced subscription. PR#4045
* Fix: Catch exceptions thrown when updating a subscription's payment method. PR#4051
* Fix: Incorrect sign-up fee discount amount calculated when the customer is outside of all tax zones and prices are entered with tax included. PR#4052
* Fix: Allow paying for pending parent orders that contain a limited subscription product where the subscription is already active. PR#4061
* Fix: Show recurring shipping totals/options when a virtual product is the last product added to the cart. PR#4053
* Fix: Refactor how `_subtracted_base_location_tax` order item meta is stored on subscription items to avoid calculation issues when the quantity is changed. PR#4062
* Fix: Fixes PHP notices when using the v1/subscriptions/ID/orders REST endpoint on a subscription where one of its related orders was directly deleted from the database. PR#4058
* Tweak: Always show the delete save card button but now display a notice when trying to delete a card tied to an active subscription. PR#4076
* Tweak: Update the subscription order note to when the PayPal Standard subscription is suspended and migrated over to PayPal Reference Transactions during a switch request. PR#4057
* Tweak: Display orders in the related orders admin table sorted by date. PR#3575
* Dev: Refactor the recurring totals template. PR#3550
2021-04-16 - version 3.0.15
* Tweak: Improve compatibility with WPML. PR#4034
* Dev: Introduce filter to allow third-parties gateways to filter whether a token meta was updated. PR#4030
* Fix: Fixes for endpoint in "My Account".
2021-04-07 - version 3.0.14
* New: Add support for importing and exporting subscription variations via the WooCommerce > Products > Export/Import tools. PR#3970
* Fix: Only show one Subscriptions settings menu item on the WC Admin navigation. PR#4054
* Fix: Prevent PHP notices on the Edit Subscription page caused accessing an undefined index. PR#4056
* Fix: Existing variations will no longer be deleted when updating a regular variable product to a subscription variable product. PR#3795
* Fix: Update the `_subtracted_base_location_tax` meta data when a subscription's line item quantity is modified. PR#4039
* Fix: Next payment date calculations when the start date and last payment date are the same. PR#4017
* Dev: Update jQuery 3.0 deprecations. PR#4015
2021-02-16 - version 3.0.13
* Fix: Pass an order status array to get_order_report_data() to prevent possible fatals by 3rd parties. PR#3930
* Fix: Change logic to allow customers to pay for failed order with limited product. PR#3947
* Fix: Prevent base length from being saved in the DB when retrieved in 'apportion_length'. PR#3954
* Fix: Prevent errors when using Product Bundles (which uses WCS_Add_Cart_Item) by introducing a WCS_Add_Cart_Item::is_switch_after_fully_reduced_prepaid_term() function. PR#3957
* Fix: Introduce an SQL Transactions helper with automatic commit/rollback on shutdown. Prevents strange behaviour when a shutdown occurs during a SQL transaction. PR#3827
* Fix: [PHP 8.0] Change maybe_retry_payment() arg name to prevent unknown variable name errors. PR#3984
* Fix: Delete '_switch_totals_calc_base_length' meta incorrectly saved in the database on upgrade. PR#3958
* Fix: Prevent WC_Order_Item_Coupon::offsetGet errors during renewal. PR#4009
* Dev: Introduce new hooks to various Switch_Totals_Calculator functions. PR#3872
2021-01-06 - version 3.0.12
* New: Add an order note when subscriptions are deleted after the customer is deleted. PR#3783
* New: [WC Admin] Register items in new navigation menu. PR#3868
* New: [WC Admin] Add the Subscriptions setting to WC Admin's Settings navigation list. PR#3911
* Tweak: Fix capitalisation of Subscription webhook topic names so they match WooCommerce core. PR#3902
* Tweak: Refactor `wcs_help_tip()` to enable custom tooltip classes. PR#3871
* Tweak: Replace remaining uses of new WC_Order() with wc_get_order() to get an order instance. PR#3858
* Fix: Fix the amount customers are charged after switching after a previous switch which reduced the pre-paid term fully. PR#3805
* Fix: Calculate a gap payment when switching to a subscription with one length and no payment date to extend. PR#3879
* Fix: Only require cart payment if there's a subscription with a next payment date. PR#3899
* Fix: Only display the failed scheduled action warning to admin users who can view subscriptions. PR#3905
* Fix: Prefix attribute keys correctly before getting switch url. Fixes issues with auto-switch redirects removing pre-exisiting URL params. PR#3913
* Fix: Prevent reducing stock while saving a subscription on the admin edit subscription screen. PR#3926
* Fix: Use product object to read the original, unmodified length of a cart item during a switch. PR#3929
* Dev: Trigger create/update webhooks during Subscription REST API calls. PR#3919
* Dev: Add filters to enable third-parties to change the new and old payment method titles used in subscription changed payment method notes. PR#3908
2020-11-25 - version 3.0.11
* Tweak: Improve the missing customer error message displayed for third-party built checkouts when registration is disabled on checkout. PR#3893
* Fix: Remove the possibility of a negative calculation of prepaid days on subscription downgrades. PR#3881
* Fix: Fix issues preventing stores using the $0 Initial Checkout feature from being able to checkout. PR#3887
* Fix: Remove potential fatal error when processing end-of-prepaid term scheduled actions caused by the subscription not existing. PR#3875
* Fix: Trigger payment complete actions after renewing early via modal. PR#3888
* Fix: Performance improvements to limited products running slow queries on the shop page. PR#3895
* Fix: [PHP 8.0] Only pass array values to call_user_func_array calls. PR#3884
* Fix: [PHP 8.0] Replaces certain uses of method_exists() with is_callable(). PR#3892
2020-11-10 - version 3.0.10
* Fix: Store shipping line item instance ID separately and copy it to renewal line item meta. PR#3712
* Fix: Account for the base store tax rates subtracted from line items when paying for renewals manually. PR#3745
* Fix: Update the persistent cart while paying for renewal orders via the checkout. Fixes division by zero errors while manually renewing. PR#3824
* Fix: Clear report cache data before regenerating new preset date results preventing infinitely growing report caches. PR#3800
* Fix: Remove subscription period string transient caching to fix issues after translating. PR#3770
* Fix: WC 4.7 compatibility. Use filter to change endpoint titles in My Account. PR#3857
* Fix: When generating product price strings fallback to a default period string if no period is set. PR#3848
* Fix: Remove uses of jQuery( document ).ready() which was deprecated. PR#3846
* New: Add option to enable admin to lock in increased parent order line item prices. PR#3816
* Tweak: Allow admin to set a next payment date in 2 minutes via the edit subscription screen on staging sites. PR#3778
2020-09-29 - version 3.0.9
* Fix: Offset subscription next payment date calculations based on site time. All dates still remain in UTC, but calculations on the 1st and last day of the month will now take into account the site timezone. PR#3708
* Fix: Only attempt to display the customer notice when updating the default token from the My Account page. PR#3799
* Fix: Prefix variation attributes with `attribute_` when setting up renewal carts. PR#3809
* Dev: Add a new hook to the change_users_subscription() function - this hook is triggered before the status change. PR#3787
2020-09-24 - version 3.0.8
* Tweak: Remove the '$X now' from price string when synced product sign up date is today. PR#3797
* Fix: Treat a subscription with a cancelled parent order as "needing payment". This ensures cancelling the subscription will go right to cancelled, rather than pending-cancellation. PR#3784
* Fix: Remove code responsible for hiding/showing the WC order totals meta box. This fixes the deprecated jQuery.fn.load() warnings. PR#3786
* Fix: Fix updating status and end dates via the REST API. PR#3796
* Dev: Add an action hook to edit subscription admin payment meta inputs. Enables third-parties to display custom fields for each gateway. PR#3798
* Dev: Opt-in tracking data for Subscriptions Reports PR#3738
Data sent to WooCommerce:
Subscriptions report views
Subscriptions report filter usage - clicks and report range
Number of subscriptions, orders, products
Plugin version
To disable this tracking, opt-out of WooCommerce tracking, see https://woocommerce.com/usage-tracking/
2020-08-11 - version 3.0.7
* Fix: Prevent possible errors caused by inaccessible get_current_screen() function. PR#3678
* Fix: Decouple single_add_to_cart_text() from add_to_cart_text() and remove double and incorrect filtering. PR#3705
* Fix: Account for the pre-paid term when canceling a subscription which is on-hold without a required payment. PR#3726
* Fix: [WC4.4] Replace uses of `get_product_from_item()` with `$item->get_product()`. PR#3769
* Fix: [WC4.4] Deprecate use of the WC_Cart::tax_display_cart. PR#3741
* Fix: [WC4.4] Update WC_Product_Variable_Subscription::get_available_variations() function signature. PR#3761
* Fix: [WC4.0] Use the WC version appropriate hook to override the text explaining uneditable subscriptions. PR#3678
* Fix: [WP5.5] Add permission callback for the REST statuses endpoint. PR#3765
* Fix: [WP5.5] Remove the post box header from edit subscription meta boxes #3771
* Performance: Validate product type changes on large sites to avoid running queries on edit product page loads. PR#3699
* Tweak: [WC Code Standards] Fixes for i18n-related issues. PR#3757
2020-07-29 - version 3.0.6
* Tweak: Add placeholder explanation for the upcoming recurring report. PR#3655
* Tweak: Add a link to QuickForget.com in the IPN error notice. PR#3744
* Fix: Fix COD gateway availability for trial subscriptions. PR#3740
* Fix: Fetch customer error notice messages on the change payment method page in WC post 3.9 version compatible way. PR#3730
* Fix: Don't reduce stock for items added to a subscription manually via admin screen. PR#3725
* Fix: Only display the automatic renewal note in emails when there's a next payment. PR#3679
* Fix: Use the interval to calculate first payment date for synced products. Fixes an issue that caused a purchase outside the sync grace period to not account for the subscription interval. PR#3303
* Dev: Add two new action hooks before and after change payment submit button. PR#3718
* Dev: Add a new helper function wcs_trial_has_passed(). PR#3289
* Dev: Replace uses of cal_days_in_month() with a date() equivalent. PR#3734
* Dev: Make various changes to improve coding standards. PRs#3748, #3749, #3753
2020-06-16 - version 3.0.5
* Fix: Ensure the mixed checkout setting correctly prevents mixed carts after customer login. PR#3696
* Fix: Translate the automatic subscription recurring note in emails. PR#3684
* Fix: Account for limited coupon use across recurring carts. Fixes an issue which leads to limited coupons applying beyond the limit. PR#3552
* Fix: Copy the item usage limit to coupons applied to manual renewal carts. PR#3686
* Dev: Add a filter to control access to the early renewal modal. PR#3675
2020-04-28 - version 3.0.4
* Fix: Save changes to payment method meta on the edit subscription screen. PR#3666
* Fix: Grant Shop Managers edit capabilities over subscriber users. PR#3669
* Fix: Remove original item from switched subscription during a multiple line item, different billing schedule switch. PR#3659
* Fix: Use strict conditionals when comparing results of as_next_scheduled_action. Fixes rescheduling of actions which were ran manually. PR#3661
* Tweak: To comply with Visa's changes to rules governing free trial subscriptions, add additional subscription details to email templates. PR#3664
2020-04-01 - version 3.0.3
* Fix: Only set the payment method if it has changed via admin edit. PR#3646
* Fix: Performance issue in WCS_Payment_Tokens::get_subscriptions_from_token. PR#3649
* Fix: Exclude empty nonce.
2020-03-11 - version 3.0.2
* New: Add WC Admin Compatibility. PR#3628
* Fix: Restore the trial end date after reactivating a subscription which was cancelled. PR#3572
* Fix: Hide the order again button for orders which contain limited products. PR#3612
* Fix: Don't show recurring cart taxes when no taxes apply. PR#3633
* Fix: Prevent autocompleting orders which contain free, simple, non-digital products. PR#3621
* Fix: Remove redundant double line from customer report query. PR#3640
* Fix: [PayPal] Modify WC payload regex to account for alphanumeric chars. PR#3629
* Fix: Hide the free shipping label for free shipping and free local pickup options. PR#3618
* Fix: Prevent fatal errors when getting price for variable products which aren't synced. PR#3616
* Fix: Don't send WC core emails for subscription related orders when in Staging mode. PR#3576
* Fix: Update PayPal settings URL used in admin notices. PR#3617
* Tweak: Update wording in warning when attempting to change the subscription product type. PR#3623
2020.01.17 - version 3.0.1
* Fix: Support multiple modals on the customer's view subscription page. Fixes an issue where preventing the early renewal modal being displayed was preventing all modals on the page from being displayed. PR#3571
* Fix: Silence PHP warning in events by date report caused by empty set of data. PR#3577
* Fix: [WC3.7] Copy the rate percent meta to tax line items during renewal meta copy. PR#3578
* Fix: Introduce a user permissions check for the auto-renewal toggle. PR#3579
* Fix: Update Action Scheduler library to 3.0.1. This release includes a database tables schema version bump. PR#3593
2020.01.06 - version 3.0.0
* New: Update Action Scheduler to 3.0.
* New: Apply WC styling to subscription statuses, subscription related order and retry meta table statuses. PR#3467, PR#3506
* New: Introduce new Renewal Order On-hold Emails. PR#3475
* Fix: Display gateway specific errors on the subscription change payment method page. PR#3278
* Fix: Order the results from WCS_Retry_Manager::store()->get_retries() correctly according to the orderby arg. Previously this function would always return results ordered by ascending ID. PR#3498
* Fix: Send customer Renewal Order Processing Emails on the correct status transitions. PR#3475
* Fix: Only update the subscription status once when processing $0 renewals orders. Fixes race condition caused by updating two instances of the same order. PR#3531
* Fix: Adjust admin CSS and data metabox for recent changes in WP and WC. PR#3540
* Fix: Fix admin notice error link for failed scheduled action when using WC_Log_Handler_DB. PR#3544
* Fix: Correctly calculate inclusive line item taxes when paying for manual renewal orders. PR#3545
* Fix: Add customer note details to renewal order email templates. PR#3536
* Fix: Validate the subscription start date during admin manual subscription creation. PR#3556
* Fix: Only display the WC Subscriptions activation notice on sites without a subscription product. PR#3558
* Fix: [WC 3.9] Ensure WCS_Retry_Manager::check_order_statuses_for_payment() has default value for the $order parameter. PR3565
* Fix: [WP 5.3] Fix variable subscription product admin field CSS. PR#3564
* Tweak: [WooCommerce dashboard widget] tweak media screen size breakpoints to avoid misalignment issues. PR#3553
* Tweak: Use product object rather than ID when validating mixed checkout setting. Improves compatibility with plugins like Mix and Match and Product Bundles. PR#3551
* Tweak: Display the cart and checkout recurring totals included taxes in a more readable way. PR#3546
* Dev: Allow 3rd party developers using the 'woocommerce_subscriptions_allow_switching_options' filter to add tooltip content. PR#3542
2019.11.14 - version 2.6.5
* Fix: Account for prorated switch sign up fees in multi-switches. PR#3519
* Fix: Tooltip content displayed on WooCommerce > Subscriptions administration screen.
* Dev: Add additional hooks in My Account Subscription Details table template. PR#3523
2019.11.12 - version 2.6.4
* Tweak: Update the My Account customer has no subscriptions notice to match WC core. PR#3516
* Fix: Add hidden class to subscription_pricing and subscription_sync edit product fields. Fixes a bug when the subscription product types are removed from the edit product type drop-down. PR#3514
* Fix: error on My Account > Payment Methods for non credit card tokens and allow deleting tokens with clear alternative. PR#3482
* Fix: Allow only number of days in specific month for synchronize renewals. PR#3470
* Fix: Save subscription meta box data via set_props(). Fixes fatal error when saving invalid data. PR#3524
* Fix: Use update_option() rather than add_option() to record WC Subscriptions activation. Fixes infinitely running activation hook under some circumstances. PR#3525
* Dev - Opt-in tracking data for Subscriptions PR#3504
Data sent to WooCommerce:
Staging or live site
Live URL
WooCommerce Subscriptions Settings
Dates of the first and last created subscriptions
Number of subscriptions
Number of subscriptions with each status
Gross totals for switch, renewal, resubscribe, and initial totals
Order counts for for switch, renewal, resubscribe, and initial orders
To disable this tracking, opt out of WooCommerce tracking, see https://woocommerce.com/usage-tracking/
2019.10.29 - version 2.6.3
* Fix: use dashicon over fa icon. PR#3497
* Fix: remove button type from close modal link. PR#3497
* Fix: Remove double filtering of the meta label through the woocommerce_attribute_label filter. PR#3476
* Fix: Restore the subscription's end date after reactivation. PR#3399
* Fix: Tooltip content displayed on WooCommerce > Subscriptions administration screen.
* Tweak: Allow modals to be displayed on admin screens. PR#3497
* Tweak: Redirect the customer to checkout after failed early renewal attempt. PR#3494
* Dev: Allow third parties to filter the switch cart item object properties. PR#3484
2019.10.10 - version 2.6.2
* Tweak: Add the switch direction the switch data stored in _subscription_switch_data order meta. PR#3440
* Tweak: Add an order note to manual renewal order to note the order is awaiting customer payment. PR#3456
* Tweak: Add note on the renewal order when a manual payment retry is ran. PR#3477
* Fix: Hide sync meta data on the edit order and subscription screen. PR#3454
* Fix: Fix an issue that led to missing _switched_subscription_item_id line item meta which caused incorrect multi-switch upgrade costs among other issues. PR#3461
* Fix: Store the full set of current subscription counts not just the last element. Fixes issues when exporting subscription report data. PR#3455
* Fix: Add the manually admin requested renewal order notes in the correct order. PR#3462
* Fix: Display the customer facing subscription dates in site time. Fixing display inconsistencies. PR#3469
* Fix: Updated the link in the staging site admin notice. PR#3473
* Fix: Only get return retries from the post store which are retry posts. Fixes an issue where it would return a retry object for other post types. PR#3481
* Fix: Load renewal order fee items to manual renewal carts. PR#3480
* Dev: Fixed WC_Subscription::get_date() returning dates in the site time if the site was using GMT offsets in their site settings. PR#3469
2019.09.04 - version 2.6.1
* Fix a bug that would lead to switch log entries not including all information. PR#3441
* Fix fatal errors that would occur on the admin edit order screen on staging sites. PR#3443
* Performance: Sort using subscription related order IDs on the application layer with rsort() instead of MySQL orderby clause. PR#3442
2019.09.02 - version 2.6.0
* New: New option to allow customers with automatically renewing subscriptions to renew early via a modal rather than going through the checkout. PR#3293
* New: Link subscription report counts in the 'by date' report to order and subscription listing page. PR#3318
* New: Add different message and link to documentation for store managers when no payment methods available on checkout. PR#3340
* New: Add a note and a tooltip explaining locked manual subscriptions on staging sites. PR#3327
* New: Use the switching flow to enable items to be added to existing subscriptions. PR#3394
* New: Log switch debug information when a switch order is processed. PR#3424
* Tweak: Use sentence case for table and section headings in customer facing templates. PR#3392,#3407,#3412,#3432
* Tweak: Make improvements to the subscription admin dashboard reports. Fixes misalignment issues on certain display sizes. PR#3401
* Tweak: Update the PayPal admin notices to be more correct based on if Standard is enabled or not. PR#3393
* Tweak: Display PayPal type specific features in the System Status and feature tooltip. PR#3411
* Tweak: Display un-loadable orders in the subscriptions related order table. PR#3342
* Tweak: Always pass product instances to WC_Subscriptions_Product methods. PR#3396
* Tweak: Update the ended subscriptions report legend key for more grammatically correct option. PR#3415
* Tweak: Disable the auto-renewal toggle on staging sites. PR#3387
* Tweak: [REST API] Include 'removed line items' in subscription response. PR#3198
* Tweak: Replace self::class with php __CLASS__ constant in report classes. PR#
* Tweak: Transform "Allow Switching" admin settings into to a multi-checkbox option. PR#3373
* Fix: Refactor the WC_Subscriptions_Switcher::calculate_prorated_totals() function and fix a number of switching issues in the process. PR#3250
* Fix: Keep the trial end when switching between two products with matching trial periods when the subscription is still on trial. PR#3409
* Fix: Use the last order's paid date in switching calculations when determining the number of days consumed in the current cycle. PR#3420
* Fix: Ignore the WP_SITEURL global on multisites when determining the site URL for staging sites. PR#3397
* Fix: Repair subscription line items with missing `_has_trial` line item meta. PR#3239
* Fix: Only retrieve subscriptions with the product as a line item - exclude switched and removed products while using `wcs_get_subscriptions_for_product()`. PR#3386
* Fix: Don't display tax values in recurring cart section when taxes aren't enabled under certain circumstances. PR#3408
* Fix: Trigger the `woocommerce_before\after_add_to_cart_quantity` actions on the subscription single product pages. PR#3388
* Fix: [WC 3.7] Include the "additional content" in subscription-related emails. #3416
* Fix: [WC 3.7] Remove uses of deprecated $order->get_used_coupons(). PR#3421
* Fix: Copy or replace fees from cart to subscription while switching. PR#3184
* Fix: Save subscription after setting payment meta via wcs_set_payment_meta(). Fixes issues after updating the payment meta before payment retry. PR#3425
* Fix: Don't allow users to partially pay for renewal orders if some products are out of stock. This was previously fixed by broke in Subscriptions 2.1. PR#3436
* Fix: Add filter which can be turned on to allow out of stock manual renewals to pass cart and checkout validations. PR#3435
* Fix: [WC Services] Fixed compatibility bug which caused coupons to be removed when automatic tax rates enabled with WC Services. PR#3376
* Fix: Remove uninitiated database transaction rollback in WC_Subscriptions_Switcher::process_checkout. PR#3307
* Fix: Validate cart contents after login when mixed checkout is disabled. PR#3151
* Fix: Fix issue which led to the 'save changes' button always being active on product variations tab. PR#3357
* Fix: Fix division by zero warning in subscriptions by customer report. PR#3371
* Fix: Use site time while adding a period to the first payment date so that last day of month is right. PR#3368
* Performance: Limit the "product has a subscription" query to just a single result to be more performant. PR#3389
* Dev: Deprecate get_completed_payment_count() in favor of get_payment_count(). PR#2971
* Dev: [WC 3.7] Only use deprecated woocommerce_before_cart_item_quantity_zero hooks on WC pre 3.7. PR#3377
* Dev: Introduce WCS_Dependent_Hook_Manager class to assist in attaching callbacks on specific WC versions. PR#3377
* Dev: Add BEM classes to templates and make general code improvements. PR#3135
* Dev: Always use get_date_types_to_schedule() to schedule dates. PR#3091
* Dev: Deprecate old and unused WC_Subscriptions_Manager::process_subscription_payments_on_order() and WC_Subscriptions_Manager::process_subscription_payment_failure_on_order() functions. PR#3378
2019.07.04 - version 2.5.7
* Fix: Check for any free shipping which has its requirements met - not just the first one. PR#3329
* Fix: Fix un-purchasability issues with limited subscriptions in manual renewal carts. PR#3358
* Tweak: Update email address to create support admin user with. PR#3363
* Tweak: Update the plugin headers to include Automattic. PR#3365
2019.05.30 - version 2.5.6
* Fix: Exclude core order properties from the meta copied from the subscription to early renewal orders. #PR3331
* Tweak: Add the 'is-active' class to My Account > My Subscription menu item when user is on View Subscription page. PR#3328
2019.05.13 - version 2.5.5
* New: Add support for admin users to re-display the staging site notice if it was previously hidden. PR#3321
* Fix: Revert a fix released in 2.5.4 which attempted to implement a workaround for SiteGround's staging sites. PR#3323 reverts: PR#3285
2019.05.08 - version 2.5.4
* Fix: Don't save empty product sale date ranges. Fixes an issue where the sale price appears in 1970 after a timezone offset change. PR#3283
* Fix: Validate subscription coupon types for non subscription and non-signup fee products. Fixes an issue where subscription coupons limited to 1 use never apply to some mixed carts. PR#3280
* Fix: Fix the PHP warnings that occur on the WP Dashboard page caused by incorrect use of args in a sprintf string. PR#3290
* Fix: Maintain any cart coupons when emptying the cart because of the store's mixed checkout settings. PR#3291
* Fix: Fix fatal errors when calling wcs_get_objects_property with a non-object parameter. PR#3308
* Fix: Use the raw SERVER_ADMIN variable to generate site URL on SiteGround sites. This fixes issues where SiteGround hosted staging sites weren't being recognized as staging sites due to SiteGround's special handling of the site url stored in the DB. PR#3285
* Fix: Don't check subscription limitation purchasability on admin screens. PR#3311
* Fix: Pass the 4th param to callbacks on woocommerce_checkout_create_order_shipping_item. PR#3317
* Fix: Remove order-specific e-mail actions from "Subscription actions" drop-down. PR#3299
* Fix: Add the item subtotal tax when manually renewing where the prices included tax. Fixes an issue where if the store's tax rates change, customers renewing manually may get a strange item price. PR#3286
* Tweak: Keep renewal orders "created_via" meta as "subscription" when paid via the checkout. PR#3301
* Tweak: Remove cancelled PayPal Reference Transactions Billing Agreements from manual, non-PayPal, and ended subscriptions. Fixes an issue where a cancelled subscription is reactivated and attempts to use a cancelled billing agreement. PR#3263
* Tweak: Increase the WC tested version to 3.6.0. PR#3313
* Tweak: Update Action Scheduler to 2.2.4. PR#3312
* New: Add a filter to allow 3rd parties to disable auto-switching. PR#3316
2019.03.20 - version 2.5.3
* New: Update Action Scheduler to version 2.2.1. PR#3266
* Fix: Display the subscription status names (rather than the raw status) in the edit subscription related orders table. PR#3272
* Fix: Use the correct endpoint for redirecting to the only available subscription on My Account. PR#3273
* Fix: [WPML] Keep language request args in Subscription My Account endpoint URLs. PR#3068
* Fix: Save the sale price schedule dates in UTC time (like WooCommerce core). PR#3270
* Fix: Use site time when checking if payment date and trial end date are same. Fixes issues with synced products with a trial. PR#3264
* Fix: Update retry report queries to refer to new retry tables. PR#3237
* Fix: Do not display the PayPal Profile ID on the edit subscription screen when the subscription is Manual Renewal. PR#3259
* Fix: Exclude `pending-cancel` subscriptions from anonymisation. PR#3256
* Fix: Pass the user ID and gateway ID parameters in the right order. Fixes issues with bulk updating customer payment tokens. PR#3258
* Fix: Temporarily lock payment on parent orders paid with PayPal Standard. Prevents customers paying twice while waiting for PayPal to respond. PR#2974
* Fix: Remove HTML from strings passed through translation functions. PR#3067
* Fix: Prevent endpoint settings having the same value. PR#3211
* Fix: Remove `strtolower()` uses on translated text. Prevents lowercasing translated text which may have language specific capitalisation. PR#3251
* Fix: Prevent possible fatal errors while populating the checkout with customer order data. Refactors the wcs_get_objects_property function. PR#3225
* Fix: Removes use of absint for amounts/totals in reports. PR#3242
* Fix: Display correct placeholder values for 'subject' and 'heading' e-mail settings #3246
* Fix: Do not load the view-subscription scripts when subscription can't be viewed or doesn't exist. PR#3235
* Fix: [WC3.6] Use new helper function to generate cart hash. PR#3215
* Tweak: Use 'WC_Order_Item_Product::get_product' wherever possible in 'WC_Subscriptions_Synchroniser'. PR#3230
* Tweak: Clarify the meaning of certain count values in subscription reports tool tips. PR#3143
* Tweak: Fixes various typos. PR#3276
* Dev: Add $cart as a parameter for the woocommerce_cart_subscription_string_details hook. PR#3257
2019.02.21 - version 2.5.2
* Fix: Check if sale price is empty before returning it as the product price. Fixes compat. issues with Dynamic Pricing. PR#3213
* Fix: Copy subscription meta data to early renewal orders. PR#3221
* Fix: Add jquery-blockui as a dependency of the view-subscription JS file. PR#3227
* Fix: Validate the DOM object exists before applying styles. Fixes JS errors on the My Account View Subscription page. PR#3218
* Tweak: Escape line item names via wp_kses_post to allow safe html tags. PR#3224
* Dev: Filter the wcs_cart_totals_shipping_method_price_label function to allow third-parties to alter the free shipping label. PR#3228
* Dev: Add $variation parameter to 'woocommerce_subscriptions_product_needs_one_time_shipping' filter. PR#3197
2019.02.11 - version 2.5.1
* Fix: In report queries use WordPress prefixed table names. PR#3205
* Fix: Fix errors caused by calling WC_Gateway_Paypal::update_option() in early WooCommerce versions. PR#3208
* Tweak: Rename the 'uncancel' admin subscription action to 'reactivate'. PR#3209
* Enhancement: Add downloadable and virtual subscription options to the filter on the products admin page. PR#3199
2019.02.06 - version 2.5.0
* New: Add payment gateway feature support tooltips to the WooCommerce>Setting>Payments screen. PR#3013
* New: Add Subscriptions-related information to the WooCommerce Status Widget. PR#2980
* New: Add option to allow a $0 initial sign-up without payment method. PR#3015
* New: Update Action Scheduler to v2.2.0. PR#3187
* New: Allow customers to update all subscriptions' payment method. PRs#3064,#3080,#3041
* New: Display downloads in separate table on the customer's View Subscription page. PR#3128
* New: Add new option to filter Admin subscriptions table by manual subscriptions. PR#3144
* New: Add auto-renew toggle to Customer's View Subscription page. PR #3156
* New: Add option to disable PayPal Standard for subscription-related purchases. PR#3152
* New: Add change payment method link to the edit subscription screen. PR#3086
* New: Allow store managers and customers to uncancel a subscription while it's still in a pending-cancel status. PR#2993
* Fix: Prevent PHP warning in WC_Subscriptions_Cart::cart_needs_payment(). PR#3142
* Fix: Do not return non-order objects from WC_Subscription::get_related_orders( 'all' ). Prevents errors when the calling function expects an order but got false. PR#3140
* Fix: Don't display the subscriptions My Account menu item when endpoint is empty. PR#3146
* Fix: Fix rounding warnings with PayPal Reference Transactions. PR#3134
* Fix: Remove use of an invalid Exception object type. PR#3148
* Fix: Fallback to previous renewal when parent order is not define for PayPal Standard IPNs. PR#2855
* Fix: Update WC_Subscription::status_transition() method to be inline with WC_Order::status_transition(). PR#2777
* Fix: Skip non-orders objects when generating the related orders table to prevent fatal errors. PR#3161
* Fix: Redirect non-logged in users to login when handling requests to change a payment method. PR#3160
* Fix: Don't apply retry rules to manual renewal payment attempts. PR#3153
* Tweak: Revert subscription customer ID and post_author changes introduced for WC3.5. PR#3159
* Tweak: Update failed scheduled action notice content. PR#3170
* Tweak: Ignore all $0.01 PayPal Standard IPN transactions. PR#3178
* Tweak: Add installed plugin information to the log file during plugin upgrade. PR#3181
* Dev: Add WC_Subscription::get_change_payment_method_url() function. PR#3041
* Dev: Add a filter to allow custom relations to be supported by the related order store. PR#3089
* Dev: Update uses of woocommerce_order_item_meta_end to use add_action, remove_action - not filter APIs. #3163
* Dev: [WC 3.5.4] Subscription order key updates. PR#3171
* Dev: Deprecate WC_Subscriptions_Cart::pre_get_refreshed_fragments. PR#3173
2018.12.21 - version 2.4.7
* Fix: Fix an issue with the release date of 2.4.6.
2018.12.21 - version 2.4.6
* Dev: Add 'woocommerce_subscription_is_manual' filter. PR#3102
* Tweak: Add action attributes to the add to cart form on subscription product pages. PR#3105
* Fix: Remove "Your subscription will be activated when payment clears" on the order received page when the subscription is already active. PR#3099
* Fix: [WP 5.0.2] Fix an issue where the Admin Subscriptions table was empty. PR#3139
2018.11.28 - version 2.4.5
* Fix: Fix caching on data for the Upcoming Recurring Revenue and Subscriptions By Date reports. PR#3069.
* Fix: Fix compatibility with Disable Report Cache Updates mini-plugin. PR#3069.
* Fix: Make Stripe source ID unique while setting through REST API. PR#3090.
* Fix: Display synced variation product's next payment date after the variation is selected by a customer on the product page. PR#3094.
* Fix: Activate subscription after processing an IPN on parent orders previously processed by PDT. PR#3097.
* Tweak: Update incomplete retry migration status label styling and wording to "In-Progress" to avoid confusing in-progress migrations as being a problem. PR#3088
2018.11.20 - version 2.4.4
* Fix: Prevent fatal errors when the retry migration doesn't receive a valid retry object. PR#3042
* Fix: Fix PHP notices in subscription events by date report. PR#3078
* Fix: Don't trigger payment gateways while processing retries on staging sites. PR#2870
* Fix: Apply coupons and discounts to initial payment and early renewal carts. PR#3048
* Fix: Use the correct `for` attribute in the variable_subscription_trial_period label element. PR#3081
* Fix: [PayPal Standard] Prevent creating multiple orders to record a single sign up transaction that was previously handled by a PDT request. PR#3074
* Tweak: Remove the nonce from early renewal urls. PR#3085
2018.11.13 - version 2.4.3
* Fix: Pass the quantity argument to woocommerce_add_cart_item_data filter. PR#3051
* Dev: Update Action Scheduler to 2.1.1. PR#3059
* Dev: Add a new filter (`wcs_remove_fees_from_initial_cart`) which can be used to override the removal of fees from the initial cart. PR#3046
2018.10.29 - version 2.4.2
* Fix: Always get the subscription's customer user from post meta. Fixes issues on sites running WC 3.5 where the subscription customer was incorrectly being set to an admin user. PR#3037
* Fix: Use the current timestamp of site's timezone for comparison during synchronisation first payment date calculations. PR#3003
* Fix: Sort the user subscriptions cache to ensure subscriptions appear in the correct order on the My Account > Subscriptions page. PR#2965
* Fix: Correctly account for tax inclusive sign up fees for synced products. PR#2818
* Fix: Fix PHP 7.1.x warnings related to get_sign_up_fee() and product variations. PR#3014
* Fix: Use the correct breadcrumbs on "change payment method" and "change address" pages. PR#3008
* Fix: Fix product purchasability issues when switching between limited variable products. PR#3007
* Fix: Remove the erasure tools link from the description of the erasure settings for users without the manage_privacy_options capability. PR#3004
* Dev: Add switch proration filters. PR#3011
* Dev: Use admin_created_subscription hook to generate download permissions. PR#3024
* Dev: Deprecated wcs_get_sites_timezone() fixes get_local_timezone() deprecated warnings. PR#3032
2018.10.16 - version 2.4.1
* Fix: Cache the retry data needs migration logic to avoid a get_posts() call on every request. PR#2994
* Fix: Load the retry store instance on WordPress init rather than on Subscriptions plugin load. Fixes errors with third-party plugins hooking into get post queries and calling undeclared WP functions. PR#3000
* Fix: Fix an undefined product ID error which could occur during a switch request when trying to access a product from the old subscription format. PR#2961
* Fix: Fix a missing closing `a` tag in the downgrade notice. PR#3002
* Dev: Add a new hook ('woocommerce_admin_created_subscription') which is triggered after a subscription is created manually via the admin screen. PR#2988
* Dev: Add new hooks to allow third-parties to customize subscription filtering behavior on the admin subscriptions table. PR#2989
2018.10.09 - version 2.4.0
* New: Update Action Scheduler to v2.1.0.
* Fix: Remove the URL scheme when generating the site's duplicate lock URL. Fixes an issue where staging sites with a URL length equal the scheme would incorrectly not trigger staging mode. PR#2599
* Fix: Move callbacks attached specifically for renewal carts to the constructor so that all extended cart classes are not hooked on. PR#2963
* Fix: Allow products which are password protected to be manually renewed via the cart. PR#2912
* Fix: Remove unnecessary leading space in translation string. PR#2976
* Fix: Add group by clause to subscriber count reports query. PR#2970
* Fix: Fix an error which would occur when calling the deprecated get_related_orders_query(). PR#2954
* Tweak: Separate a subscription start from the creation date. PR#2594
* Tweak: Display the expected site URL in staging site notice and system status. PR#2950
* Dev: Implement an Autoloader for loading plugin class files. PR#2412
* Dev: Replace WC_Logger type hinting in function signatures to use lower level WC_Logger_Interface. PR#2902
* Dev: Remove switch_line_items_pre_2_1_2() and switch_shipping_line_items_pre_2_1_2() functions. PR#2900
* Dev: [WC 3.5] Move subscription customer ID's into the post author column on sites running WC 3.5 and above. PR#2559
* Dev: Move payment retry data to custom tables. PR#2753
* Dev: Update file inclusions to use relative paths. PR#2936
* Dev: Add an API for third-parties to register their custom subscription date types. PR#2840
* Dev: Update the hook used for adding Subscriptions Settings. PR#2939
* Dev: Add a 'wcs_payment_gateways_change_payment_method' filter to allow third-parties to filter which payment methods are displayed when changing payment methods. PR#2571
* Dev: Trigger a new 'wcs_before_replace_pay_shortcode' action before displaying the change payment shortcode.
* Dev: Add the 'wcs_update_all_subscriptions_addresses_checked' filter to allow third-parties to filter the default checked status of the all_subscriptions_addresses field. PR#2948
2018.09.25 - version 2.3.7
* Fix: Don't apply subscription payment gateway filters while on the order-pay page. PR#2927
* Fix: Prevent admin users from changing product type when the product has active subscriptions. PR#2932
* Fix: Avoid calculating the initial order carts shipping without an address. PR#2923
* Fix: Remove unnecessary empty() check for PHP < 5.5 compat. PR#2940
* Fix: Reinstate switch orders being returned from WC_Subscription::get_related_orders() when called with the default $order_type param. This returns the behavior of this function to what it was pre v2.3. PR#2946
* Tweak: [WC 3.4] Dont escape the product attribute labels in the add-to-cart/variable-subscription.php template. PR#2914
* Tweak: Add a link to the subscription customer's profile on the admin edit subscription screen. PR#2911
* Tweak: [dev] Update calls of remove_action() and remove_filter() removing the unused 4th parameter. PR#2926
2018.09.10 - version 2.3.6
* New: Include subscription paid and completed UTC dates in REST API subscriptions response. PR#2895
* Fix: When switching during a free trial the days in the new cycle are equal to the days in the old cycle. This returns next payment date calculations to what it was pre 2.3.3. PR#2887
* Fix: Make sure to display the inactive plugin notice on sites running unsupported WC versions. PR#2878
* Fix: Reinstate the _customer_user admin subscriptions table filter by customer $_GET arg. PR#2884
* Tweak: Automatically add download permissions for manually created subscriptions. PR#2836
* Tweak: Modify renewal order staging note to include URLs of the live and staging site. PR#2881
* Tweak: Rename WC_Subscriptions_Change_Payment_Gateway::store_pay_shortcode_mesages(). PR#2899
* Tweak: Set "add to cart" and "place order" button text settings to default if no value is provided. PR#2676
2018.08.27 - version 2.3.5
* Fix: Exclude customers with at least 1 subscription from the WC inactivity user cleanup query. PR#2830
* Fix: Calculate PayPal trial args from the next payment date while resubscribing before the subscription's end date. PR#2828
* Fix: Only display the 2.3 upgrade notice after plugin upgrade, not after install. PR#2869
* Tweak: Add 'woocommerce_subscriptions_can_user_renew_early' filter to allow third-parties to filter renew early eligibility. PR#2859
* Tweak: Include resubscribe data in the subscription REST API response. PR#2863
* Tweak: Improve the performance of some queries by using cached customer subscriptions instead of meta queries. PR#2856
* Tweak: Improve the performance of the query which generates the data for the Subscriptions by Date report. PR#2788
* Tweak: Give customers the option to update their subscription tokens after changing their default method. PR#2819
2018.08.10 - version 2.3.4
* New: Add filter to bypass coupon removal for recurring carts. PR#2832
* Fix: Check if subscription is payable before populating the cart with a renewal order. PR#2838
* Fix: Add a margin to the bottom of subscription information email table to better align with other sections of the email. PR#2853
* Fix: Prevent infinite loops which can occur while trying to repair PayPal Standard subscriptions with `S-****` Profile IDs. PR#2848
* Fix: [WC3.4.4] Check refunded order totals in a WC version compatible way. Fixes an issue where limited coupons weren't removed after reaching their limit. PR#2850
* Tweak: Require payment for recurring carts which contain limited coupons which will expire and then require payment. PR#2850
2018.07.24 - version 2.3.3
* Fix: Prevent infinite loops while generating variable product min and max data. PR#2810
* Fix: Filter renewal order cart shipping packages, removing one time shipping products from shipping calculations. PR#2811
* Fix: Only generate persistent related order and customer subscription caches via the Transients API to avoid the possibility of retrieving out of date data stored in the option. PR#2823
* Fix: Update WC_Subscriptions_Order::maybe_autocomplete_order() to allow for it to handle orders before they have an ID (before they are inserted). PR#2784
* Fix: Adjust for possible differences in billing cycles because of rounding when calculating prorated totals for switch requests. PR#2617