*** WooCommerce Subscriptions Changelog *** 2014.05.05 - version 1.5 * Requires: WooCommerce 2.1 or newer and Subscriptions 1.4 or newer (if upgrading) * New: a subscription can now be purchased in the same transaction as other products. * New: subscriptions can be purchased in multiple quantities rather than having to be purchased individually * New: subscription renewal dates can now be synced to a specific day of the week, month or year * New: support for the Points & Rewards extension: points will now be rewarded for subscription renewals * New: completely new scheduler capable of scaling to hundreds of thousands of subscriptions & processing queues of thousands of simultaneous renewals * New: filter orders on the Orders administration screen to show only renewal orders (for any subscription) or only original orders i.e. those orders that are not automatically generated to record a subscription renewal * New: subscription switched email to notify store managers when a customer upgrades/downgrades their subscription (replaces the standard WooCommerce New Order email for subscription switches) * New: subscription switch email sent to customers when upgrading or downgrading a subscription (replaces the standard WooCommerce Order Complete and Processing Order emails for subscription switches) * New: added a filter for customising column content on the Manage Subscriptions administration screen (filter's hook name is 'woocommerce_subscriptions_list_table_column_content') * Tweak: the order created to record a subscription switch is now transitioned to "completed" status regardless of whether the subscription needs to be switched or not because the order is simply a record of the switch and not indicative of an item needing to be shipped * Tweak: the My Subscriptions section of the My Account page is now responsive * Tweak: move sign-up fee field to own row on the Edit Product screen to improve display on small screens * Tweak: when asked what type of product they are, variable subscriptions and subscription variations will now identify as both the subscription and standard equivalent (e.g. if a variable subscription is asked if it is a variable product, it will say yes, if a subscription variation is asked if it is a standard variation, it will say yes). * Tweak: in API responses, include variable subscriptions’ children & subscription variations’ parent objects (due to tweak in variable/variation self-identification above) * Tweak: limit subscription regardless of status to prevent the same customer account effectively being able to access more than one free trial period. More: http://docs.woothemes.com/document/subscriptions/store-manager-guide/#limit-subscription * Tweak: only allow customers to purchase subscriptions with PayPal once the store's API credentials are entered * Tweak: prefill "Change" next payment date fields with date in site's timezone instead of next payment date in GMT/UTC timezone * Fix: fix stock management for variable subscriptions (due to the tweak above making variable subscriptions identify as variable products) * Fix: edit product links on Reports page for subscription variations (due to the tweak above making subscription variations identify as standard variations) * Fix: assorted fixes for data returned by API about subscriptions products (due to the tweak above making subscription variations identify as standard variations) * Fix: product meta section is only printed on the My Subscriptions table if the product has meta data (i.e. don't include an empty
) * Fix: when changing the customer on an order, make sure that all payment, trial & expiration dates are updated to prevent scheduling duplicate hooks (and potentially causing duplicate payments) * Fix: display correct cart subtotal in cart widget to customer that has not yet visited the cart or checkout page (forces full total calculation whenever the cart contains a subscription product) * Fix: incorrect next payment date when changing payment method to PayPal or switching subscriptions using PayPal as the payment method * Fix: display the price suffix on variable subscriptions when a custom suffix is set under “WooCommerce > Settings > Tax” * Fix: do not require payment for subscriptions for 1 billing period (e.g. $10 for 1 year) when a product or cart coupon has been applied for 100% of the initial amount 2014.04.09 - version 1.4.10 * Tweak: Do not add the "Payment received" order note when a subscription has a free trial and no sign-up fee, instead display "Payment authorized" for subscriptions using automatic recurring payments and "Free trial commenced" for those using manual renewals * Tweak: On the Manage Subscriptions screen, do not display the subscription sign-up date in the "Last Payment" column if the subscription has a free trial and no sign-up fee (as there was no actual payment made) * Tweak: Reinstate enctype='multipart/form-data' on the subscription add to cart form to fix compatibilty with file uploads via Product Addons extension (related to http://docs.woothemes.com/document/subscriptions/faq/#section-45) * Tweak: Only output P tags for product meta on My Subscriptions table when product has meta * Tweak: add enable/disable field for the Customer Renewal Invoice email * Fix: set correct order date and ID in renewal order emails' subject & heading when sending more than one email in the same request (workaround until woothemes/woocommerce#5168 is implemented in WC 2.2) * Fix: correctly close P tag when display product meta data on the My Subscriptions table * Fix: display correct tax and shipping total on cart page when using Local Pickup shipping method and estimating shipping with the "Calculate Shipping" method * Fix: display correct tax string when the "Display Tax Totals" setting is set to "As a single total" - requires new 'woocommerce_cart_totals_taxes_total_html' filter introduced with WC 2.1. See woothemes/woocommerce#5184 for details. * Fix: capitalise custom attribute names in the product meta section of the My Subscriptions table * Fix: allow standard products variations to be deleted (but still prevent subscription variations from being permanently deleted) * Fix: Maximum execution time error when attempting to switch from a paid subscription to a free subscription * Fix: Include billing period on a variable subscription's price when one variation is free (e.g. "From: $0.00 / month" instead of "$0.00 - $10.00") * Fix: fix potential warnings on Manage Subscriptions admin screen when ordering by next payment date (caused by get_all_users_subscriptions() treating fee line items as product line items) * Fix: don't duplicate renewal orders for subscriptions with a sign-up fee, but $0 recurring total and using a manual renewal method (or when automatic payments are disabled) * Fix: move .pot file into /languages/ directory 2014.03.12 - version 1.4.9 * Tweak: display each payment gateway's automatic payment support on the checkout settings tab of WooCommerce 2.1 * Tweak: when removing a subscription variation, trash it instead of permanently deleting it to prevent issues with renewal * Tweak: prevent subscription products from being permanently deleted, either by store manager or WordPress auto-purge. Deleting subscription products causes assorted issues with WooCommerce core and other plugins/themes as they often expect the product to still exist. All subscription products can still be trashed, but only subscription products not associated with an order (i.e. that have not been purchased) can be deleted. * Tweak: when attempting to manually renew a subscription for a product which has been deleted, throw a notice if the corresponding product has been deleted * Tweak: do not display the "Renew" button on the My Subscriptions table if the corresponding subscription product has been permanently deleted. * Tweak: warn store manager when deleting a user that it will remove them from any subscriptions * Tweak: include subscription price string for any additional fees on an order to make it clear to the customer they are added for each billing period * Tweak: improve recurring discount string for WC 2.1 (e.g. show "-$100 / week" not "-$100 now then $100 / week") * Tweak: more concise subscription price string for taxes, discounts and fees by removing trial period unless the first payment is free * Fix: Searching subscriptions by user details on the Manage Subscriptions table * Fix: making a payment for a failed renewal order in WC 2.1 * Fix: assorted renewal via checkout notices in WC 2.1 * Fix: update change payment method template to ensure submit button has correct text with WC 2.1 * Fix: don't link a subscription's title to the product's page on the "My Subscriptions" table if the product has been deleted * Fix: don't display price range for Variable Subscription's "From" price in WC 2.1 (because it doesn't make sense for prices on different billing periods) * Fix: do not duplicate order fees * Fix: do not apply order item fees to free trial period * Fix: workaround assorted WPML bugs with variable subscription products, like a "-1 variation trial length", when using the "Edit Product" screen as the Product Translation Interface * Fix: use WC 2.1's order currency API to display currency at time of placing order rather than currency currently used on the store * Fix: when using PayPal's PDT and IPN, do not create a duplicate order on subscription sign-up 2014.02.13 - version 1.4.8 * Tweak: remove support for WooCommerce versions prior to 2.0 (i.e. 1.x) * Tweak: add new 'woocommerce_subscriptions_renewal_order_item_name' filter * Tweak: don't display recurring payment method on My Subscriptions table when subscription uses manual renewals * Tweak: improve subscription price field styles on Edit Product page for WC 2.1 * Fix: ordering subscriptions by start, expiration or end date on the Manage Subscriptions screen * Fix: changing payment method in WooCommerce versions before 2.1 * Fix: add new recurring shipping items correctly on the Edit Order screen in WC 2.1 instead of adding it as a 'shipping' row * Fix: update order item shipping meta (i.e. method & cost) on the Edit Order screen in WC 2.1 instead of adding new meta rows * Fix: set renewal order taxes to those calculated at the time of checkout when renewing a subscription via checkout, either due to manual payments or payment in lieu of failed automatic renewal payment * Fix: set fees on renewal orders if a fee is added to a renewal order when renewing a subscription via checkout, either due to manual payments or payment in lieu of failed automatic renewal payment * Fix: set correct renewal order shipping line items in WC 2.1 * Fix: display correct recurring shipping total in WC 2.1 on the Edit Order screen for orders created pre-WC 2.1 * Fix: correctly update recurring shipping items in WC 2.1 when saving the Edit Order screen for orders created pre-WC 2.1 * Fix: prefill recurring payment method (as manual) when manually adding a subscription via the Edit Order screen * Fix: display account creation fields in WC 2.1 when cart contains a subscription and guest checkout is enabled * Fix: display correct recurring shipping amount on orders with WC 2.1 when there is a free trial * Fix: subscription length sent to PayPal with WC 2.1 2014.01.29 - version 1.4.7 * Fix: Fatal error "Call to undefined function woocommerce_round_tax_total()" when saving an order on the Edit Order screen with no value set for recurring tax and recurring shipping tax 2014.01.21 - version 1.4.6 * Tweak: Full WooCommerce 2.1 compatibillity * Tweak: If a subcriber visits a variable subscription's page, and that subscription is limited to one per customer, and the customer has an active subscription, automatically initiate the switch process. * Tweak: Display subscription's address not default address when changing a single subscription's address (requires on WooCommerce 2.1) * Tweak: Add new 'woocommerce_subscriptions_pre_update_recurring_payment_method' hook * Fix: When customer is changing payment method, cancel subscription with PayPal only after the customer has completed the sign-up (not when initiating the payment method change) * Fix: Display sale price field on the Edit Product screen for both variable products & variable subscription products when Stock Management is disabled (was previously hidden erroneously) * Fix: Variable subscription "From:" price when a variation has the same initial price, made up of of a free trial and sign-up fee, but a different recurring price on the same billing period. * Fix: Colspan for variation's susbcription pricing fields on the Edit Product page when Stock Management is enabled. * Fix: "Notice: Trying to get property of non-object" when searching by user name for a user which doesn't exist * Fix: don't expire a subscription when a PayPal EOT notification comes through for a subscription that has already been cancelled * Fix: don't expire a subscription when the recurring payment method has been changed from one PayPal account to another PayPal account * Fix: make sure when changing the payment method on a subscription that all payment gateways have been initialised before attempting to cancel the subscription with the current payment gateway (to make sure the subscription is correctly cancelled) * Fix: don't include Subscription Information in new order email unless that admin option is checked (it is off by default) * Fix: make sure recurring discounts applied before tax are correctly applied to manual renewals and manul renewal of a failed automatic payment * Fix: Add PayPal IPN transaction ID check for those transactions which have an 'txn_id' field to further try and prevent duplicate IPN handling * Fix: Ignore PayPal's 'subscr_eot' IPN message completely. It is incorrectly documented and leads to assorted bugs when appearing at unexpected times, like immediately for subscriptions of only one payment, at the same time as the last payment and when a subscription is cancelled due to failed payments. Subscriptions internal scheduleding is now used exclusively for expiring a subscription and it's failed payment handling is used whenever a subscription payment fails. 2013.12.13 - version 1.4.5 * Tweak: Add bulk suspension, cancellation and reactivation options to the Manage Subscriptions screen - just in time for the holidays. * Tweak: Apply the 'woocommerce_order_again_cart_item_data' filter when renewing a cancelled/expired subscription to carry over order item meta from extensions like Gravity Forms Addons * Tweak: New option to display subscription start & end date in new order email (on by default), customisable via the /emails/subscription-info.php template. * Tweak: Log subscription activation after setting subscription schedules to help diagnose issues with scheduling next payment, expiration date & trial end date. * Tweak: First pass at WooCommerce 2.1 compatibility. * Tweak: Display "When Cancelled" on the My Subscriptions table's "End Date" column for active subscriptions with no expiration. * Tweak: Display staging/live mode in the system status report. * Tweak: Use a subscription length string that is easier to translate - i.e. "1 year" instead of "%s %s" * Tweak: When getting the next payment date for a subscription, reschedule the next payment if it has been dropped. Allows for automatic repair of dropped next payment dates by visiting the Manage Subscriptions screen. * Fix: When manually adding a variable subscription product to the cart, set the line subtotal/total to be the variation's total. * Fix: only apply subscription coupons to subscription products even if custom code is allowing products + subscriptions in the cart. * Fix: correctly add subscription variation meta data to order, not variable subscription meta data, when manually adding a subscription. * Fix: make sure fees are never added more than once. Fixes integration with Payment Gateway based Fees extension. * Fix: don't block the order's initial tax row when adding a recurring tax row on the Edit Order screen. * Fix: in the My Subscriptions table, display the order item's meta data, not the meta data on the order item's products. Means that when order item meta data is changed, the correct meta is shown in the My Subscriptions table. 2013.11.26 - version 1.4.4 * Tweak: reinstate Subscription Search on the Manage Subscriptions screen for stores with less than a few thousand subscriptions * Tweak: don't send subscription related emails on staging sites * Tweak: only load WooCommerce & Subscriptions admin CSS on WooCommerce & Subscriptions administration screens * Tweak: massive performance improvement for get_all_users_subscriptions() function (used on Customer Report page). Props Ken Bass (www.kenbass.com) & Chuck Mac (www.chuckmac.info). * Tweak: the "Suspend" button is no longer displayed on a store manager's My Account page when 0 suspensions are allowed, to avoid confusion (store managers can always suspend subscriptions from the Manage Subscriptions screen) * Tweak: include whether WCS_DEBUG mode is enabled in the WooCommerce System Status report. * Tweak: use a string literal text domain for translation plugins which don't support variable text domains, like the latest version of WPML * Tweak: try to align next payment dates with PayPal's schedule by update the next payment date time whenever PayPal processes a payment * Tweak: reduce hidden meta data included on the Manage Subscriptions screen to improve load time and provide cleaner search/filter URLs * Tweak: new 'woocommerce_subscription_lengths' filter for custom subscription lengths: http://docs.woothemes.com/document/subscriptions/faq/#section-57 * Tweak: add related order links to the Edit Order screen for renewal orders of cancelled/expired subscriptions * Fix: only load email classes once in case something is destroying and then reinitiating the Woocommerce::woocommerce_mailer property * Fix: only set recurring payment method meta data when an order is marked as completed for those orders that contain a subscription * Fix: switching subscriptions without apportioning sign-up fees * Fix: allow switching between variations of a variable subscription that is limited to one per customer * Fix: fix next payment date displayed for Subscriptions purhcased with PayPal that include a free trial and have their first payment processed after the free trial had ended * Fix: prevent 'Request-URI Too Large' errors on the Manage Subscriptions page for some servers when using the customer, product and/or page filters * Fix: set subscriptions manually added via the Edit Order screen to use the Manual Renewal process * Fix: display correct next payment date for the first payment on a switched subscription where the store manger has changed the next payment date 2013.10.22 - version 1.4.3 * Tweak: add a work around to support selling subscriptions with a $0 recurring total via PayPal * Tweak: more specific PayPal notice about changing Receiver Email on the PayPal settings page * Tweak: set a subscription's start date based on the date payment was completed rather than date the order was originally placed * Tweak: update subscription add to cart template to use a hidden field for the product ID, matching changes in WooCommerce 2.0.15 to work with plugins like Quick View * Tweak: speed up Manage Subscriptions page load slightly when viewing all subscriptions with no customer/product filters * Tweak: memory usage improvement by no longer autoloading cron locks * Tweak: when getting the next payment date, don't fall back to calculate it when the completed payment count >= subscription length (speeds up My Account page & Manage Subscriptions screen) * Fix: use new 'woocommerce_order_needs_payment' in WC > 2.0.16 to require a payment method be set on orders with a free trial (and therefore, $0 order total) * Fix: set correct recurring payment method when paying for a previously placed order using * Fix: display correct recurring payment gateway name in warning dialog on the Edit Order screen when the recurring payment method is different to the original order's payment method * Fix: when a user has no subscriptions, link to the store on user's account page instead of linking to the user's account page. * Fix: don't include trashed subscriptions in subscription count and pagination when viewing "all" subscriptions on the Manage Subscriptions page * Fix: call correct 'woocommerce_subscription_completed_payment_count' filter (was using 'woocommerce_subscription_failed_payment_count' hook) * Fix: set correct first payment date when downgrading a subscription 2013.10.01 - version 1.4.2 * Tweak: improve performance for My Account page. * Tweak: improve the Customer Renewal Invoice email template used when an automatic renewal order failed. Now includes information about the failed payment and a link to My Account page to complete payment. * Tweak: handle PayPal IPN requests for subscriptions created with different systems by requiring only the 'subscr_id' value, not the 'invoice' & 'custom' PayPal IPN values (which would be different or not exist for subscriptions created with another system). * Fix: variable subscription "From:" price when a variable has the same initial price but a longer billing period. * Fix: update staging site lock to prevent duplicate payments for staging sites created with WP Engine. * Fix: send Customer Renewal Invoice email when automatic renewal payment failed. * Fix: "The requested URL's length exceeds the capacity limit for this server" error that occurs on some servers when filtering or modifying orders on the Orders administration screen. * Fix: always show store managers a warning when trashing an order for a subscription via the Orders administration screen. 2013.09.25 - version 1.4.1 * Fix: renewal of cancelled subscriptions from the "My Account" page * Fix: display subscriptions created as a renewal in the customer's "My Subscriptions" table * Fix: don't display "Change Payment Method" button on the "My Subscriptions" table unless at least one payment gateway on the site supports the payment method being changed. * Fix: don't display "Change Payment Method" button on the "Checkout -> Pay" form unless at least one payment gateway on the site supports the payment method being changed. * Fix: error message displayed when no payment gateways are available to change the payment method. 2013.09.20 - version 1.4 * New: "Switch" subscriptions feature to allow customers to upgrade/downgrade their subscription: http://docs.woothemes.com/document/subscriptions/switching-guide/ * New: The payment method used for automatic recurring payments can now be changed by subscribers: http://docs.woothemes.com/document/subscriptions/customers-view/#section-5 * New: Database structure for subscriptions to improve performance on all sites and fix memory exhaustion issues on sites with tens of thousands of subscriptions. Subscription meta data is now stored in order meta not user meta. * New: The recurring shipping method, title, tax and total used for renewals can now be changed by store managers from the 'Edit Order' page of the original order used to purchase the subscription (for those payment gateways which support changing recurring amounts). * New: Renewal order emails: using the WooCommerce email system for renewal orders so they can be enabled/disabled, and the content/templates can be customised. * New: "Cancelled Subscription" email sent to store managers. * New: 'get_subscriptions()' function to help developers easily access and filter customer's subscriptions. * New: 'woocommerce_subscriptions_update_users_role' filter to allow extensions to prevent Subscriptions from handling user roles. * New: Subscription status, status/end/expiration dates, completed payment list and other meta data can now be changed via the order item meta UI on the Edit Order screen when the WCS_DEBUG constant is set to true. * Tweak: Order totals are now $0 when signing up for a subscription with a free trial period making revenue reporting more accurate. Totals on all existing orders will be changed when upgrading. * Tweak: On the customer "My Subscriptions" table, show "End Date" column, instead of "Expiration". This column now includes the end date for cancelled/switched subscriptions, or the end of prepaid term date if a cancelled subscription is still within a prepaid term. * Tweak: The payment method used for recurring payments is now displayed on the customer's My Subscriptions table (if there are future payments scheduled) * Tweak: Allow template overrides of the /single-product/add-to-cart/subscription.php template * Tweak: If the WooCommerce "Hold Stock" setting is at the default 60 minutes, Subscriptions will change it to 1 week on upgrade. This avoids the possibility of subscriptions being cancelled when a manual renewal payment is due or when payment takes longer than 60 minutes, like it does when using a PayPal eCheck. * Tweak: If a subscription is cancelled without payment, don't allow for it to be renewed (to avoid circumventing sign-up fees) * Tweak: The Subscriptions shortcode now includes variation data * Tweak: Use WooCommerce date format instead of default WordPress date format * Tweak: Reduce memory usage by no longer loading every payment gateway on every page request just to access PayPal's settings * Tweak: A subscription is now cancelled with PayPal after a failed payment, rather than allowing PayPal to retry the failed payment n times every 5 days. This allows for Subscriptions to handle the failure, meaning it can immediately suspend the subscription and the customer can log in to pay for the renewal. * Fix: Display correct default settings * Fix: If a subscription is cancelled before being paid for, don't show the "Pay" button next to it on the My Subscriptions table * Fix: When using a sign-up fee equal to the recurring fee, and a free trial, make sure the correct amount is sent to PayPal * Fix: For variable subscription products with no variations, fix the price string (should be "-" not " / day"). * Fix: Don't assign the deafult inactive role to a subscriber when one subscription is cancelled/expires, but they have other active subscriptions * Fix: Incorrectly charging a second payment for subscription variations that were meant to be for 1 billing period * Fix: Incorrectly set trial expiration dates for subscription variations which have different trial expirations * Fix: Line totals when adding a subscription product with a free trial and/or sign-up fee via the Edit Order screen 2013.08.15 - version 1.3.11 * When a subscription payment is due on the 29th or 30th day of February (i.e. it is normally charged on the 29th or 30th day of the month, and the next billing month is February) charge on the last day of February instead. More details: http://docs.woothemes.com/document/subscriptions/faq/#section-16 * Trial and subscription expiration dates now match payment dates by using the last day of the month instead of PHP's strtotime() month addition * Fix Variable Subscription prices when not all variations have a sale price or sign-up fee * Fix duplicate payment bug where a 2nd payment was charged (n - 1) hours after the first for the payment immediately following a free trial when the next payment date was changed for a subscription with a free trial that was manually added to the site on sites using a timezone of UTC -n 2013.08.08 - version 1.3.10 * WP 3.6 PHP Strict Notice fixes * On renewal orders, use the WC_Product->get_title() method to make sure product name goes through the 'woocommerce_product_title' filter * Only display subscription meta bulk edit options on Variable Subscriptions (not Variable products) * Fix incorrect suspension bug on IPN payments from PayPal when not using manual renewal payments * Fix variation_id & product_id for Variable Subscriptions on the renewal order of an expired/cancelled subscription 2013.08.07 - version 1.3.9 * Handle bulk edit of sale prices & percentage increase or decrease of a simple subscription's regular price or sale price * When automatic payments are switched off, and therefore, the subscription will be using manual payments, payment details (e.g. credit card details) are no longer required when purchasing a subscription with $0 due up front * Fix bug where subscriptions purchased with PayPal and 'automatic payments' switch off were not suspended when renewal was due * Fix subscription price string when initial discount is applied to a subscription for only 1 billing period (e.g. $10 for 1 month) * Fix strict notice: "Strict Standards: Declaration of WC_Product_Subscription_Variation::get_price_html() should be compatible with WC_Product::get_price_html($price = '')" * Fix the transfer of a subscription variation's attributes when it is manually renewed via checkout * Fix saving a product when switching between simple and variable subscription while keeping variations associated with the subscription * Fix display of sale prices on subscription variations 2013.07.25 - version 1.3.8 * When a user is deleted from WordPress (or a WordPress network) cancel their subscriptions with the payment gateway * New safeguard against duplicate payments from staging sites * Only display admin notices to users who have the capability to remedy the notice * Fix bug when calling user_has_subscription() without a status (this bug was also affecting the change address functionality) * Fix bug where customer still needed to provide a payment method when applying a recurring coupon equal to 100% of a subscription to a subscription with a free trial period * Fix coupon bug where combining product discount and recurring discount allowed a total less than 0. * Fix bug where a payment method was not set when a coupon discounted the initial payment to $0 but there were still recurring amounts to be paid. * Fix cornercase fatal error where is_woocommerce_active() is not defined because woothemes_queue_update() is being defined without also defining is_woocommerce_active() 2013.07.12 - version 1.3.7 * Display "From: " on a variable product's price when it has different billing schedule but same price * Display sign up fee and subscription length on variable products "From:" price * Account for free trials and sign up fees when calculating the cheapest possible variation in a variable subscription * Fix PayPal bug with coupons for first payment only 2013.07.05 - version 1.3.6 * New Recurring % Discount and Sign-up Fee % Discount coupons * Set subscription coupon discount amounts in cart meta data * New HTML5 elements for price fields on Edit Product page (adds validation so a string like $5 will no longer validate as a price) * Improve validation of pricing fields for subscription products * Improve layout of variable subscription pricing fields on small screens * Fix bug where price was not displayed for a subscription variation when all prices were equal, but billing periods were not. * Fix carry over of deprecated 'role' param on WC_Subscriptions_Renewal_Order::is_renewal() * Fix tax total displayed on orders when recurring tax total is the same as initial tax total (e.g. display "$2 / month" not "$2 up front then $2 / month") * Fix bug where shipping was not added to first payment for subscriptions with a sign-up fee and no free trial * Fix bug where recurring coupons were not discounting the first payment for subscriptions with a sign-up fee and no free trial * Fix bug applying discount coupons twice to manual renewals and renewal of a failed automatic payment 2013.06.24 - version 1.3.5 * Coupon Behaviour Change: due to popular demand, WooCommerce's Product and Cart coupons now discount only the first payment. This also improves compatibility with the Point & Rewards and Gift Certificate extensions. More details: http://docs.woothemes.com/document/faq/#section-3 * Add new 'WCS_DEBUG' mode to make it easier to test renewal payments. More details: http://docs.woothemes.com/document/subscriptions/faq/#section-29 * Add new option to limit a subscription product to one active subscription per customer * Update translation files (pot file) * Hide redundant "Sold Individually" checkbox on "Edit Product" screen (subscriptions can only be purchased individually) * Display required "*" next to account fields when a subscription is in the cart * New $status parameter for WC_Subscriptions_Manager::user_has_subscription() * Fix incorrect payment date times when another plugin is behaving badly and calling date_default_timezone_set() to set timezone to something other than WordPress default - UTC * Fix activation issue (500 error) for first time activation on sites with a large number of existing users * Fix bug in variable subscription price string for those variable subscription products which were once simple subscriptions * Fix tax price string displayed for WC 2.0.6+ * Fix tax inclusive shipping prices displayed on an order after it has been placed * Fix bulk trash action on the Manage Subscriptions page 2013.06.06 - version 1.3.4 * Fix subscription string when not charging a recurring payment but including a sign-up fee (e.g. display $0 / month with a $20 sign-up fee instead of "Free!") * Fix the "From:" price displayed on a Grouped product which contains a subscription which has a $0 recurring amount but a sign-up fee * Fix hardcoded DB table name in upgrade process to version 1.3. 2013.05.13 - version 1.3.3 * Use a translation safe admin page screen ID to fix issues with WooCommerce Branding extension * Fix automatic renewal order emails sent for orders transitioning straight to completed even when email notification off * Fix PHP warning "'WC_Product_Variable_Subscription' does not have a method 'get_sign_up_fee'" when renewing a Variable Subscription product * Fix incorrect subscription billing interval for subscriptions started on the last day of the month for an interval greater than one * Fix PayPal IPN transaction ID bug preventing some sign-ups from being handled correctly * Fix a variable subscription's "From:" price billing interval when all variations have an interval different to 1 2013.04.19 - version 1.3.2 * Change active subscription cancellation behaviour - now when cancelling a subscription, the subscriber's role is changed at the end of the prepaid term (instead of as soon as they cancel their subscription) * Add safeguard against duplicate PayPal IPN requests triggering duplciate renewal orders & renewal order emails * Fix Manage Subscriptions page filter for variable subscription products * Fix sign-up fee currency symbol - was not being shown, now it is * Fix renewal payment handling for free subscriptions (i.e. those with a renewal payment amount of $0.00) * Fix PayPal configuration notice when PayPal is unusable (because the store's currency isn't supported) * Fix bug in paying for non-renewal orders via the "Pay" link sent via email 2013.03.26 - version 1.3.1 * Add screen options pane to Manage Subscriptions admin page to show/hide columns & set number of subscriptions to display * Add product filter to Manage Subscriptions admin page * Add customer filter to Manage Subscriptions admin page * Fix incorrect cancellation of subscriptions purchased with PayPal for one billing period that has an interval other than 1 (e.g. $5 for 2 months) * Fix PayPal IPN handling with WooCommerce 2.0.4, which no longer strips slashes in $_POST * Make the text on the add to cart & place order buttons available for translation on multilingual sites using WPML 2013.03.15 - version 1.3 * Requires WooCommerce 2.0 or newer * New Variable Subscription product type, woo! * New 'subscription_end_of_prepaid_term' hook triggered at the end of the paid up period for subscriptions that have been cancelled before their end date * New filters on all subscription product meta data (e.g. 'woocommerce_subscriptions_product_period') * New 'woocommerce_my_account_my_subscriptions_actions' filter for action buttons displayed on "My Subscriptions" table * New option to turn off automatic payments for all new orders * Add new customer suspension limit setting also allowing store managers to turn off customer suspensions completely (site admins can always suspend any subscription) * Add checkbox to allow subscribers to change the address used on all active subscriptions * Add "Change Shipping Address" action to "My Subscriptions" table to allow subscribers to change the shipping address on a specific subscription * Improve failed renewal order handling - rather than changing the failed renewal orders status, keep the order as a record of the failed payment & create a new renewal order for the payment * Improve "My Subscriptions" table action links - right aligned buttons to match WooCommerce order actions. Update to custom my-subscriptions.php templates required. * Improve free shipping string on orders * Improve cart shipping string * Fix order totals displayed on orders after payment * Fix for potential duplicate renewal payments when W3 Total Cache or another caching plugin is enabled * Fix manual addition of non-subscription products to an order * Fix bug adding outstanding balance even when admin has requested not to add outstanding balances * Fix bug which would allow a customer to reactivate a subscription that required payment when using an out-of-date my-subscriptions.php template * Fix order totals when prices inclusive of tax in WC 2.0 * No longer allow downloads for files associated with a subscription that has expired, been cancelled or is on-hold * Old upgrade routine for versions 1.1.x -> 1.2 can now be run when prematurely upgrading WooCommerce to version 2.0 * Avoid potential conflict with other subscription plugins (if any exist) when checking if an order item is a subscription * Work with corrected processing order email hook in WC 2.0 to fix processing subscription renewal orders in WC 2.0+ * Simplified cron lock system - using single option instead of transients * Customer suspensions now off by default 2013.02.13 - version 1.2.5 * WC 2.0 Compatibility * Fix race condition for user registration/guest checkout (in WC2.0+ only) * Fix warning logged when processing a payment with PayPal: "Invalid profile status for reactivate action; profile should be suspended" * Fix next payment date when date is last day of month (to workaround PHP strtotime() quirk) 2013.01.16 - version 1.2.4 * Add feature to manually change subscription details on an existing subscription (for gateways that support it) * Add pre-fill subscription details feature when manually adding a subscription via the "Add Order" administration screen * Add new shortcode for displaying a user's subscriptions - either use [subscriptions] to display subscriptions purchased by the currently logged in user or [subscriptions user_id=""] to display for a specific user * Add new 'gateway_scheduled_payments' supports flag for payment gateways to handle schedules themselves (with bulk processing, like PayPal) * Add new 'woocommerce_subscriptions_max_failed_payments_exceeded' hook for gateways & plugins to override defaults * Add new 'woocommerce_subscriptions_list_table_pre_process_actions' for adding custom actions to Manage Subscriptions admin table * Add "Trial Expiration Date" to the Manage Subscriptions table * Add filter to thank you message * Improve PayPal IPN handling by making it independent of the invoice ID stored at PayPal for the subscription (to help with migrations & imported subscriptions) * Improve names of available payment gateways * Improve efficiency of multiple loops by fixing logic * Fix new WP3.5 warnings * Fix sorting of subscriptions by Next Payment Date in the Manage Subscriptions table * Fix "Suspend" link incorrectly being shown for pending subscriptions on a customer's "My Subscriptions" table * Fix incorrect suspension of subscriptions upon renewal for gateways that process payments in batches like PayPal (and therefore, may process a payment before it is scheduled) * Fix manually adding subscriptions via the add order screen * Fix "Fatal error: Call to a member function supports() on a non-object" * Fix order totals for products with free trial and sign-up fee * Fix minor JavaScript error attempting to validate trial length on pages other than "Edit Product" * Fix PayPal suspend & reactivate profile status change notes (previously, all notes said "cancelled") * Fix handling of PayPal failed payment IPN requests * Fix buttons on activation message for WP3.5+ * Fix bug in subscription search * Fix suspension of a subscription when a payment fails * Fix get_order_subscription_string() when subscription is for 1 billing period (and generally improve it by using get_formatted_order_total()) 2012.12.04 - version 1.2.3 * New updater * Fix checkout bug when selling free subscriptions (or subscriptions with a 100% discount coupon applied) * Make subscription status translatable * Don't show add to cart template when subscription product is not purchasable 2012.11.27 - version 1.2.2 * Fix backward compatibility for subscriptions with a free trial period that existed prior to customisable trial periods added in version 1.2 * Fix bug in cart & order subscription price strings being displayed when there is a free trial period & no sign-up fee * Fix formatted line subtotal for subscriptions in admin new order emails * Fix bug in cart subtotal when displayed in cart widget * Fix subscription activation & order status change for payment with PayPal when a subscription includes a free trial and no sign-up fee * Delete renewal orders generated by PayPal which are a duplicate of the initial order * Improved tax line items on review order page when a subscription is in the cart * Simplified subscription string for subscriptions with no sign-up fee or trial period 2012.11.16 - version 1.2.1 * Fix suspension bug where next payment date after calculated after a subscription has been suspended was not always in the future * Fix bug with PayPal where a renewal order was created for the first subscription payment * Fix bug in version 1.2 upgrade routine causing renewal orders to duplicate if run more than once (for example, after a timeout) * Fix coupon bug preventing non-subscription coupons from being applied * Changing date of renewal order's generated in 1.2 upgrade routine to be in site time not server time * Deleting any renewal orders generated in 1.2 upgrade routine which are a duplicate of the initial order 2012.11.08 - version 1.2 * Support for sale prices on subscription products * On the Manage Subscriptions page, store managers can now search for subscriptions by subscriber username, email, order ID, product ID or subscription item name (subscription product name at time of purchase) * Any payment gateway with a WooCommerce extension can now be used to purchase and renew subscriptions via manual payments * Subscribers can now use a different payment method for each recurring payment via manual payments * Subscribers can now change the payment method on a subscription if an automatic payments fails * A subscription's next payment date can now be changed if the payment gateways used to purchased it can change the date * WooCommerce reports now include revenue from subscription's recurring payments * Improved record keeping for recurring subscription payments with a renewal order created for each payment * Improved shipping management for subscriptions with physical goods through new renewal order system - each billing period, a processing order is created and store manager can mark the order as complete once the product for that period has been shipped * Improved subscription event logging on orders - subscription product name is now used instead of subscription key * Suspended subscription status changed to "on-hold" to match the WooCommerce Order status * When an order for a subscription is placed "on-hold" the subscription in that order is also placed "on-hold" * When subscription sign-up or renewal payment fails, subscriptions are now placed "on-hold" instead of "failed" so the subscription can be activated when payment is completed on the order * A customer can now renew a subscription that was cancelled or expired via a link on the "My Subscriptions" page * The subscription name displayed in the "Manage Subscriptions" and "My Subscriptions" tables now comes from the name at the time of the order not the current post item * Fixing bug in subscription reactivation - if a subscription expiry is before the reactivation date, the subscription now correctly expires soon after being activated instead of remaining active * Subscriptions in the trash can now be permanently deleted * Fixed the "Active Subscriber?" user column value to display even when other plugins are #doingitwrong * Next payment, last payment, start date and expiration dates are now displayed in blog/site time instead of server time * For dates within 24 hours, a more human friendly hourly time difference is now displayed instead of just the date * Removed end date and start date from My Subscriptions template so that it now shows only next payment and expiration dates * Improve subscription price description when subscription is only for one period, e.g. "$5 for 3 months" is now used instead of "$5 every 3 months for 3 months" * Fix bug in PayPal Standard integration affecting subscriptions for one billing period and a interval greater than 1 (e.g. a subscription of $5 for 3 months) * Allow for different trial period to billing period (if the gateway supports it), e.g. a 2 week free trial with $5 per month subscription is now possible * Add a coupon to apply fixed discount to a subscription's sign up fees only * Add a coupon to apply fixed discount to a subscription's recurring payment only * Add renewal order count column to 'Manage Subscriptions' table * List renewal orders on the "Edit Order" page for the initial order of a subscription * Fix bug in subscription price string for subscriptions with a trial period and a sign-up fee = recurring price + shipping 2012.09.27 - version 1.1.8 * Add safeguard against firing the scheduled payment hook if the subscription is suspended, on-hold, cancelled or expired 2012.09.19 - version 1.1.7 * PayPal Standard expires a subscription immediately if it is only for one billing period, this doesn't make sense, so Subscriptions now ignores PayPal IPN request to expire a subscription immediately and instead expires the subscription after one billing period has passed 2012.09.07 - version 1.1.6 * Updating renewal order email to work with changes in WooCommerce * Accounting for failed payments when determining next payment date * Adding a workaround for ISS issues with PHP's strtotime() function so expiry, trial & next payment dates are consistent across all servers * Fixing renewal order ID added in the order note on the original order * Fixing bug in automatic subscription and order cancellation when the maximum number of allowable failed payments is reached * Fix bug in WC_Subscriptions_Order::get_failed_payment_count() 2012.09.03 - version 1.1.5 * Improving safeguard against WP-Cron infinite loop by adding fallback value for payment blocking transient * Fixing bug in payment safeguard relating to large subscription keys (order ID & product ID) * Better handling of subscription with no-future payments 2012.08.27 - version 1.1.4 * Adding a workaround to deal with PayPal invoice prefix changes and IPN requests for orders using the old invoice prefix * More conventional text-domain for internationalisation - woocommerce-subscriptions instead of woocommerce_subscription * Upgrade safe internationalisation by allowing language files to be located in /wp-content/languages/woocommerce-subscriptions/ * Fixing PayPal issue when no invoice prefix is set * Fixing status message issues on Subscription's Management Page * Fixing "Creating default object from empty value" warning in PHP version newer than 5.4 2012.08.22 - version 1.1.3 * Updating to WooCommerce 1.6.3 PayPal invoice/order key changes * Better sorting of dates, especially last/next payment dates in the Subscriptions Management table * Ordering users by display name in Subscriptions Management table * Fixing products set as subscriptions against a users account in 1.1.2 * Adding version dependant upgrade script 2012.08.13 - version 1.1.2 * Adding a safeguard against WP-Cron's infinite loop 2012.08.03 - version 1.1.1 * Fixing multisite bug which displayed a user's subscriptions from each site in a network on every other site in the network * Fixing multisite activation 2012.07.26 - version 1.1 * Free trial periods can now be added to the beginning of a subscription * Subscriptions can now be manually created by adding a subscription to an order or creating a new order with a subscription * Subscriptions can now be billed at different intervals of each period, e.g. $5 every 2 weeks or $10 every 6 months * Subscriptions can now be suspended and reactivated (by subscribers and store managers) * Subscriptions purchased with PayPal Standard can now be cancelled (and suspended/reactivated) * Guest checkout & sign-up login WooCommerce admin settings are now honoured for all transactions that do not include a subscription * When a customer ID is changed on an order, any subscriptions on that order are transferred to the new customer * Fixing PayPal IPN EOT error causing cancelled subscriptions to be marked as expired * Fixing i18n implementation to allow translations 2012.06.21 - version 1.0 * First Release