Updates to 6.0.0

This commit is contained in:
WooCommerce
2024-02-08 10:11:43 +00:00
parent e3e24b965e
commit e40fc0f53b
23 changed files with 321 additions and 166 deletions

View File

@@ -1,5 +1,11 @@
*** Woo Subscriptions Changelog *** *** Woo Subscriptions Changelog ***
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.
2024-01-17 - version 5.9.1 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. * Fix: Resolved an error that would occur with WooCommerce 8.5.0 when editing a subscription customer from the admin dashboard.

View File

@@ -0,0 +1,106 @@
<?php
defined( 'ABSPATH' ) || exit;
/**
* WC REST API Subscriptions Settings class.
*
* Adds subscription settings to the wc/<version>/settings and wc/<version>/settings/{group_id} endpoint.
*/
class WC_REST_Subscriptions_Settings {
/**
* Init class and attach callbacks.
*/
public function __construct() {
add_filter( 'woocommerce_settings_groups', [ $this, 'add_settings_group' ] );
add_filter( 'woocommerce_settings-subscriptions', [ $this, 'add_settings' ] );
}
/**
* Register the subscriptions settings group for use in the WC REST API /settings endpoint
*
* @param array $groups Array of setting groups.
*
* @return array
*/
public function add_settings_group( $groups ) {
$groups[] = [
'id' => 'subscriptions',
'label' => __( 'Subscriptions', 'woocommerce-subscriptions' ),
];
return $groups;
}
/**
* Add subscriptions specific settings to the WC REST API /settings/subscriptions endpoint.
*
* @param array $settings Array of settings.
*
* @return array
*/
public function add_settings( $settings ) {
$subscription_settings = WC_Subscriptions_Admin::get_settings();
foreach( $subscription_settings as $setting ) {
// Skip settings that don't have a id, type or are an invalid setting type i.e. skip over title, sectionend, etc.
if ( empty( $setting['id'] ) || empty( $setting['type'] ) || ! $this->is_setting_type_valid( $setting['type'] ) ) {
continue;
}
$settings[] = $this->format_setting( $setting );
}
return $settings;
}
/**
* Checks if a setting type is a valid supported setting type.
*
* @param string $type Type.
*
* @return bool
*/
private function is_setting_type_valid( $type ) {
return in_array( $type, [ 'text', 'email', 'number', 'color', 'password', 'textarea', 'select', 'multiselect', 'radio', 'checkbox', 'image_width', 'thumbnail_cropping' ], true );
}
/**
* Returns the subscriptions setting in the format expected by the WC /settings REST API.
*
* @param array $setting Subscription setting.
*
* @return array|bool
*/
private function format_setting( $setting ) {
$description = '';
if ( ! empty( $setting['desc'] ) ) {
$description = $setting['desc'];
} elseif ( ! empty( $setting['description'] ) ) {
$description = $setting['description'];
}
$new_setting = [
'id' => $setting['id'],
'label' => ! empty( $setting['title'] ) ? $setting['title'] : '',
'description' => $description,
'type' => $setting['type'],
'option_key' => $setting['id'],
'default' => ! empty( $setting['default'] ) ? $setting['default'] : '',
];
if ( isset( $setting['options'] ) ) {
$new_setting['options'] = $setting['options'];
}
if ( isset( $setting['desc_tip'] ) ) {
if ( true === $setting['desc_tip'] ) {
$new_setting['tip'] = $description;
} elseif ( ! empty( $setting['desc_tip'] ) ) {
$new_setting['tip'] = $setting['desc_tip'];
}
}
return $new_setting;
}
}

View File

@@ -75,6 +75,7 @@ class WCS_API {
} }
WC_REST_Subscription_System_Status_Manager::init(); WC_REST_Subscription_System_Status_Manager::init();
new WC_REST_Subscriptions_Settings();
} }
/** /**

View File

@@ -79,10 +79,8 @@ class WCS_Webhooks {
'woocommerce_process_shop_subscription_meta', 'woocommerce_process_shop_subscription_meta',
), ),
'subscription.updated' => array( 'subscription.updated' => array(
'wcs_api_subscription_updated',
'woocommerce_subscription_status_changed',
'wcs_webhook_subscription_updated', 'wcs_webhook_subscription_updated',
'woocommerce_process_shop_subscription_meta', 'woocommerce_update_subscription',
), ),
'subscription.deleted' => array( 'subscription.deleted' => array(
'woocommerce_subscription_trashed', 'woocommerce_subscription_trashed',

View File

@@ -2,16 +2,16 @@
# This file is distributed under the same license as the Woo Subscriptions plugin. # This file is distributed under the same license as the Woo Subscriptions plugin.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Woo Subscriptions 5.9.1\n" "Project-Id-Version: Woo Subscriptions 6.0.0\n"
"Report-Msgid-Bugs-To: https://woocommerce.com/contact-us\n" "Report-Msgid-Bugs-To: https://woocommerce.com/contact-us\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2024-01-17T02:51:06+00:00\n" "POT-Creation-Date: 2024-02-08T06:42:10+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.9.0\n" "X-Generator: WP-CLI 2.8.1\n"
"X-Domain: woocommerce-subscriptions\n" "X-Domain: woocommerce-subscriptions\n"
#. Plugin Name of the plugin #. Plugin Name of the plugin
@@ -48,6 +48,7 @@ msgstr ""
#: includes/admin/class-wcs-admin-reports.php:81 #: includes/admin/class-wcs-admin-reports.php:81
#: includes/admin/reports/class-wcs-report-subscription-events-by-date.php:922 #: includes/admin/reports/class-wcs-report-subscription-events-by-date.php:922
#: includes/api/class-wc-rest-subscriptions-settings.php:29
#: vendor/woocommerce/subscriptions-core/includes/admin/class-wc-subscriptions-admin.php:1030 #: vendor/woocommerce/subscriptions-core/includes/admin/class-wc-subscriptions-admin.php:1030
#: vendor/woocommerce/subscriptions-core/includes/admin/class-wc-subscriptions-admin.php:1182 #: vendor/woocommerce/subscriptions-core/includes/admin/class-wc-subscriptions-admin.php:1182
#: vendor/woocommerce/subscriptions-core/includes/admin/class-wcs-admin-system-status.php:59 #: vendor/woocommerce/subscriptions-core/includes/admin/class-wcs-admin-system-status.php:59
@@ -1228,19 +1229,19 @@ msgstr ""
msgid "Learn more" msgid "Learn more"
msgstr "" msgstr ""
#: includes/class-wcs-webhooks.php:110 #: includes/class-wcs-webhooks.php:108
msgid " Subscription created" msgid " Subscription created"
msgstr "" msgstr ""
#: includes/class-wcs-webhooks.php:111 #: includes/class-wcs-webhooks.php:109
msgid " Subscription updated" msgid " Subscription updated"
msgstr "" msgstr ""
#: includes/class-wcs-webhooks.php:112 #: includes/class-wcs-webhooks.php:110
msgid " Subscription deleted" msgid " Subscription deleted"
msgstr "" msgstr ""
#: includes/class-wcs-webhooks.php:113 #: includes/class-wcs-webhooks.php:111
msgid " Subscription switched" msgid " Subscription switched"
msgstr "" msgstr ""
@@ -1886,6 +1887,46 @@ msgstr ""
msgid "Want to renew early via the checkout? Click %shere.%s" msgid "Want to renew early via the checkout? Click %shere.%s"
msgstr "" msgstr ""
#: tests/unit/scheduler/scheduler.php:65
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:291
msgctxt "table heading"
msgid "Start Date"
msgstr ""
#: tests/unit/scheduler/scheduler.php:66
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:292
msgctxt "table heading"
msgid "Trial End"
msgstr ""
#: tests/unit/scheduler/scheduler.php:67
#: vendor/woocommerce/subscriptions-core/templates/myaccount/my-subscriptions.php:40
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:293
msgctxt "table heading"
msgid "Next Payment"
msgstr ""
#: tests/unit/scheduler/scheduler.php:68
#: vendor/woocommerce/subscriptions-core/templates/emails/cancelled-subscription.php:23
#: vendor/woocommerce/subscriptions-core/templates/emails/expired-subscription.php:23
#: vendor/woocommerce/subscriptions-core/templates/emails/on-hold-subscription.php:23
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:294
msgctxt "table heading"
msgid "Last Order Date"
msgstr ""
#: tests/unit/scheduler/scheduler.php:69
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:295
msgctxt "table heading"
msgid "Cancelled Date"
msgstr ""
#: tests/unit/scheduler/scheduler.php:70
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:296
msgctxt "table heading"
msgid "End Date"
msgstr ""
#. translators: 1: relation type, 2: list of valid relation types. #. translators: 1: relation type, 2: list of valid relation types.
#: vendor/woocommerce/subscriptions-core/includes/abstracts/abstract-wcs-related-order-store.php:148 #: vendor/woocommerce/subscriptions-core/includes/abstracts/abstract-wcs-related-order-store.php:148
msgid "Invalid relation type: %1$s. Order relationship type must be one of: %2$s." msgid "Invalid relation type: %1$s. Order relationship type must be one of: %2$s."
@@ -2368,7 +2409,7 @@ msgstr ""
#: vendor/woocommerce/subscriptions-core/includes/admin/class-wcs-admin-post-types.php:1365 #: vendor/woocommerce/subscriptions-core/includes/admin/class-wcs-admin-post-types.php:1365
#: vendor/woocommerce/subscriptions-core/includes/admin/class-wcs-admin-post-types.php:1754 #: vendor/woocommerce/subscriptions-core/includes/admin/class-wcs-admin-post-types.php:1754
#: vendor/woocommerce/subscriptions-core/includes/class-wc-subscriptions-manager.php:1937 #: vendor/woocommerce/subscriptions-core/includes/class-wc-subscriptions-manager.php:1937
#: vendor/woocommerce/subscriptions-core/includes/wcs-user-functions.php:327 #: vendor/woocommerce/subscriptions-core/includes/wcs-user-functions.php:329
#: vendor/woocommerce/subscriptions-core/templates/myaccount/related-orders.php:78 #: vendor/woocommerce/subscriptions-core/templates/myaccount/related-orders.php:78
msgctxt "an action on a subscription" msgctxt "an action on a subscription"
msgid "Cancel" msgid "Cancel"
@@ -4082,20 +4123,20 @@ msgstr ""
msgid "First payment: %s" msgid "First payment: %s"
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/includes/class-wcs-cached-data-manager.php:77 #: vendor/woocommerce/subscriptions-core/includes/class-wcs-cached-data-manager.php:75
msgid "Related order caching is now handled by %1$s." msgid "Related order caching is now handled by %1$s."
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/includes/class-wcs-cached-data-manager.php:84 #: vendor/woocommerce/subscriptions-core/includes/class-wcs-cached-data-manager.php:82
msgid "Customer subscription caching is now handled by %1$s." msgid "Customer subscription caching is now handled by %1$s."
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/includes/class-wcs-cached-data-manager.php:108 #: vendor/woocommerce/subscriptions-core/includes/class-wcs-cached-data-manager.php:106
#: vendor/woocommerce/subscriptions-core/includes/class-wcs-cached-data-manager.php:238 #: vendor/woocommerce/subscriptions-core/includes/class-wcs-cached-data-manager.php:238
msgid "Customer subscription caching is now handled by %1$s and %2$s." msgid "Customer subscription caching is now handled by %1$s and %2$s."
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/includes/class-wcs-cached-data-manager.php:125 #: vendor/woocommerce/subscriptions-core/includes/class-wcs-cached-data-manager.php:123
msgid "new related order methods in WCS_Related_Order_Store" msgid "new related order methods in WCS_Related_Order_Store"
msgstr "" msgstr ""
@@ -5215,46 +5256,46 @@ msgid "Customers with a subscription are excluded from this setting."
msgstr "" msgstr ""
#. translators: placeholder is a list of version numbers (e.g. "1.3 & 1.4 & 1.5") #. translators: placeholder is a list of version numbers (e.g. "1.3 & 1.4 & 1.5")
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:355 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:360
msgid "Database updated to version %s" msgid "Database updated to version %s"
msgstr "" msgstr ""
#. translators: placeholder is number of upgraded subscriptions #. translators: placeholder is number of upgraded subscriptions
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:363 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:368
msgctxt "used in the subscriptions upgrader" msgctxt "used in the subscriptions upgrader"
msgid "Marked %s subscription products as \"sold individually\"." msgid "Marked %s subscription products as \"sold individually\"."
msgstr "" msgstr ""
#. translators: 1$: number of action scheduler hooks upgraded, 2$: "{execution_time}", will be replaced on front end with actual time #. translators: 1$: number of action scheduler hooks upgraded, 2$: "{execution_time}", will be replaced on front end with actual time
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:372 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:377
msgid "Migrated %1$s subscription related hooks to the new scheduler (in %2$s seconds)." msgid "Migrated %1$s subscription related hooks to the new scheduler (in %2$s seconds)."
msgstr "" msgstr ""
#. translators: 1$: number of subscriptions upgraded, 2$: "{execution_time}", will be replaced on front end with actual time it took #. translators: 1$: number of subscriptions upgraded, 2$: "{execution_time}", will be replaced on front end with actual time it took
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:384 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:389
msgid "Migrated %1$s subscriptions to the new structure (in %2$s seconds)." msgid "Migrated %1$s subscriptions to the new structure (in %2$s seconds)."
msgstr "" msgstr ""
#. translators: placeholder is "{time_left}", will be replaced on front end with actual time #. translators: placeholder is "{time_left}", will be replaced on front end with actual time
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:387 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:392
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:433 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:438
msgctxt "Message that gets sent to front end." msgctxt "Message that gets sent to front end."
msgid "Estimated time left (minutes:seconds): %s" msgid "Estimated time left (minutes:seconds): %s"
msgstr "" msgstr ""
#. translators: 1$: error message, 2$: opening link tag, 3$: closing link tag, 4$: break tag #. translators: 1$: error message, 2$: opening link tag, 3$: closing link tag, 4$: break tag
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:397 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:402
msgid "Unable to upgrade subscriptions.%4$sError: %1$s%4$sPlease refresh the page and try again. If problem persists, %2$scontact support%3$s." msgid "Unable to upgrade subscriptions.%4$sError: %1$s%4$sPlease refresh the page and try again. If problem persists, %2$scontact support%3$s."
msgstr "" msgstr ""
#. translators: placeholder is the number of subscriptions repaired #. translators: placeholder is the number of subscriptions repaired
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:412 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:417
msgctxt "Repair message that gets sent to front end." msgctxt "Repair message that gets sent to front end."
msgid "Repaired %d subscriptions with incorrect dates, line tax data or missing customer notes." msgid "Repaired %d subscriptions with incorrect dates, line tax data or missing customer notes."
msgstr "" msgstr ""
#. translators: placeholder is number of subscriptions that were checked and did not need repairs. There's a space at the beginning! #. translators: placeholder is number of subscriptions that were checked and did not need repairs. There's a space at the beginning!
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:418 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:423
msgctxt "Repair message that gets sent to front end." msgctxt "Repair message that gets sent to front end."
msgid " %d other subscription was checked and did not need any repairs." msgid " %d other subscription was checked and did not need any repairs."
msgid_plural "%d other subscriptions were checked and did not need any repairs." msgid_plural "%d other subscriptions were checked and did not need any repairs."
@@ -5262,38 +5303,38 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#. translators: placeholder is "{execution_time}", which will be replaced on front end with actual time #. translators: placeholder is "{execution_time}", which will be replaced on front end with actual time
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:422 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:427
msgctxt "Repair message that gets sent to front end." msgctxt "Repair message that gets sent to front end."
msgid "(in %s seconds)" msgid "(in %s seconds)"
msgstr "" msgstr ""
#. translators: $1: "Repaired x subs with incorrect dates...", $2: "X others were checked and no repair needed", $3: "(in X seconds)". Ordering for RTL languages. #. translators: $1: "Repaired x subs with incorrect dates...", $2: "X others were checked and no repair needed", $3: "(in X seconds)". Ordering for RTL languages.
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:425 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:430
msgctxt "The assembled repair message that gets sent to front end." msgctxt "The assembled repair message that gets sent to front end."
msgid "%1$s%2$s %3$s" msgid "%1$s%2$s %3$s"
msgstr "" msgstr ""
#. translators: 1$: error message, 2$: opening link tag, 3$: closing link tag, 4$: break tag #. translators: 1$: error message, 2$: opening link tag, 3$: closing link tag, 4$: break tag
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:444 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:449
msgctxt "Error message that gets sent to front end when upgrading Subscriptions" msgctxt "Error message that gets sent to front end when upgrading Subscriptions"
msgid "Unable to repair subscriptions.%4$sError: %1$s%4$sPlease refresh the page and try again. If problem persists, %2$scontact support%3$s." msgid "Unable to repair subscriptions.%4$sError: %1$s%4$sPlease refresh the page and try again. If problem persists, %2$scontact support%3$s."
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:648 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:653
msgid "Welcome to WooCommerce Subscriptions 2.1" msgid "Welcome to WooCommerce Subscriptions 2.1"
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:648 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:653
msgid "About WooCommerce Subscriptions" msgid "About WooCommerce Subscriptions"
msgstr "" msgstr ""
#. translators: 1-2: opening/closing <strong> tags, 3-4: opening/closing tags linked to ticket form. #. translators: 1-2: opening/closing <strong> tags, 3-4: opening/closing tags linked to ticket form.
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:879 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:884
msgid "%1$sWarning!%2$s We discovered an issue in %1$sWooCommerce Subscriptions 2.3.0 - 2.3.2%2$s that may cause your subscription renewal order and customer subscription caches to contain invalid data. For information about how to update the cached data, please %3$sopen a new support ticket%4$s." msgid "%1$sWarning!%2$s We discovered an issue in %1$sWooCommerce Subscriptions 2.3.0 - 2.3.2%2$s that may cause your subscription renewal order and customer subscription caches to contain invalid data. For information about how to update the cached data, please %3$sopen a new support ticket%4$s."
msgstr "" msgstr ""
#. translators: 1-2: opening/closing <strong> tags, 3: active version of Subscriptions, 4: current version of Subscriptions, 5-6: opening/closing tags linked to ticket form, 7-8: opening/closing tags linked to documentation. #. translators: 1-2: opening/closing <strong> tags, 3: active version of Subscriptions, 4: current version of Subscriptions, 5-6: opening/closing tags linked to ticket form, 7-8: opening/closing tags linked to documentation.
#: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:958 #: vendor/woocommerce/subscriptions-core/includes/upgrades/class-wc-subscriptions-upgrader.php:963
msgid "%1$sWarning!%2$s It appears that you have downgraded %1$sWooCommerce Subscriptions%2$s from %3$s to %4$s. Downgrading the plugin in this way may cause issues. Please update to %3$s or higher, or %5$sopen a new support ticket%6$s for further assistance. %7$sLearn more &raquo;%8$s" msgid "%1$sWarning!%2$s It appears that you have downgraded %1$sWooCommerce Subscriptions%2$s from %3$s to %4$s. Downgrading the plugin in this way may cause issues. Please update to %3$s or higher, or %5$sopen a new support ticket%6$s for further assistance. %7$sLearn more &raquo;%8$s"
msgstr "" msgstr ""
@@ -5814,15 +5855,15 @@ msgid "Continue"
msgstr "" msgstr ""
#. translators: $1: placeholder is number of weeks, 2$: path to the file #. translators: $1: placeholder is number of weeks, 2$: path to the file
#: vendor/woocommerce/subscriptions-core/includes/upgrades/templates/wcs-upgrade.php:66 #: vendor/woocommerce/subscriptions-core/includes/upgrades/templates/wcs-upgrade.php:74
msgid "To record the progress of the update a new log file was created. This file will be automatically deleted in %1$d weeks. If you would like to delete it sooner, you can find it here: %2$s" msgid "To record the progress of the update a new log file was created. This file will be automatically deleted in %1$d weeks. If you would like to delete it sooner, you can find it in the %2$sWooCommerce logs screen%3$s."
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/includes/upgrades/templates/wcs-upgrade.php:71 #: vendor/woocommerce/subscriptions-core/includes/upgrades/templates/wcs-upgrade.php:79
msgid "Update Error" msgid "Update Error"
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/includes/upgrades/templates/wcs-upgrade.php:72 #: vendor/woocommerce/subscriptions-core/includes/upgrades/templates/wcs-upgrade.php:80
msgid "There was an error with the update. Please refresh the page and try again." msgid "There was an error with the update. Please refresh the page and try again."
msgstr "" msgstr ""
@@ -6124,7 +6165,7 @@ msgctxt "no trial period"
msgid "no" msgid "no"
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/includes/wcs-user-functions.php:318 #: vendor/woocommerce/subscriptions-core/includes/wcs-user-functions.php:319
#: vendor/woocommerce/subscriptions-core/templates/single-product/add-to-cart/subscription.php:30 #: vendor/woocommerce/subscriptions-core/templates/single-product/add-to-cart/subscription.php:30
#: vendor/woocommerce/subscriptions-core/templates/single-product/add-to-cart/variable-subscription.php:28 #: vendor/woocommerce/subscriptions-core/templates/single-product/add-to-cart/variable-subscription.php:28
msgid "Resubscribe" msgid "Resubscribe"
@@ -6203,20 +6244,20 @@ msgstr ""
msgid "Create subscription product" msgid "Create subscription product"
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/templates/admin/html-failed-scheduled-action-notice.php:21 #: vendor/woocommerce/subscriptions-core/templates/admin/html-failed-scheduled-action-notice.php:26
msgid "An error has occurred while processing a recent subscription related event. For steps on how to fix the affected subscription and to learn more about the possible causes of this error, please read our guide %1$shere%2$s." msgid "An error has occurred while processing a recent subscription related event. For steps on how to fix the affected subscription and to learn more about the possible causes of this error, please read our guide %1$shere%2$s."
msgid_plural "An error has occurred while processing recent subscription related events. For steps on how to fix the affected subscriptions and to learn more about the possible causes of this error, please read our guide %1$shere%2$s." msgid_plural "An error has occurred while processing recent subscription related events. For steps on how to fix the affected subscriptions and to learn more about the possible causes of this error, please read our guide %1$shere%2$s."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: vendor/woocommerce/subscriptions-core/templates/admin/html-failed-scheduled-action-notice.php:31 #: vendor/woocommerce/subscriptions-core/templates/admin/html-failed-scheduled-action-notice.php:36
msgid "Affected event:" msgid "Affected event:"
msgid_plural "Affected events:" msgid_plural "Affected events:"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#. translators: $1 the log file name $2 and $3 are opening and closing link tags, respectively. #. translators: $1 the log file name $2 and $3 are opening and closing link tags, respectively.
#: vendor/woocommerce/subscriptions-core/templates/admin/html-failed-scheduled-action-notice.php:38 #: vendor/woocommerce/subscriptions-core/templates/admin/html-failed-scheduled-action-notice.php:43
msgid "To see further details about these errors, view the %1$s log file from the %2$sWooCommerce logs screen.%2$s" msgid "To see further details about these errors, view the %1$s log file from the %2$sWooCommerce logs screen.%2$s"
msgstr "" msgstr ""
@@ -6367,14 +6408,6 @@ msgctxt "table headings in notification email"
msgid "Price" msgid "Price"
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/templates/emails/cancelled-subscription.php:23
#: vendor/woocommerce/subscriptions-core/templates/emails/expired-subscription.php:23
#: vendor/woocommerce/subscriptions-core/templates/emails/on-hold-subscription.php:23
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:294
msgctxt "table heading"
msgid "Last Order Date"
msgstr ""
#: vendor/woocommerce/subscriptions-core/templates/emails/cancelled-subscription.php:24 #: vendor/woocommerce/subscriptions-core/templates/emails/cancelled-subscription.php:24
msgctxt "table headings in notification email" msgctxt "table headings in notification email"
msgid "End of Prepaid Term" msgid "End of Prepaid Term"
@@ -6657,12 +6690,6 @@ msgstr ""
msgid "ID" msgid "ID"
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/templates/myaccount/my-subscriptions.php:40
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:293
msgctxt "table heading"
msgid "Next Payment"
msgstr ""
#: vendor/woocommerce/subscriptions-core/templates/myaccount/my-subscriptions.php:46 #: vendor/woocommerce/subscriptions-core/templates/myaccount/my-subscriptions.php:46
#: vendor/woocommerce/subscriptions-core/templates/myaccount/related-orders.php:53 #: vendor/woocommerce/subscriptions-core/templates/myaccount/related-orders.php:53
#: vendor/woocommerce/subscriptions-core/templates/myaccount/related-subscriptions.php:42 #: vendor/woocommerce/subscriptions-core/templates/myaccount/related-subscriptions.php:42
@@ -6770,11 +6797,11 @@ msgstr ""
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/templates/myaccount/subscription-details.php:94 #: vendor/woocommerce/subscriptions-core/templates/myaccount/subscription-details.php:101
msgid "Subscription updates" msgid "Subscription updates"
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/templates/myaccount/subscription-details.php:100 #: vendor/woocommerce/subscriptions-core/templates/myaccount/subscription-details.php:107
msgctxt "date on subscription updates list. Will be localized" msgctxt "date on subscription updates list. Will be localized"
msgid "l jS \\o\\f F Y, h:ia" msgid "l jS \\o\\f F Y, h:ia"
msgstr "" msgstr ""
@@ -6842,26 +6869,6 @@ msgstr ""
msgid "Can not get address type display name. Address type is not a string." msgid "Can not get address type display name. Address type is not a string."
msgstr "" msgstr ""
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:291
msgctxt "table heading"
msgid "Start Date"
msgstr ""
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:292
msgctxt "table heading"
msgid "Trial End"
msgstr ""
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:295
msgctxt "table heading"
msgid "Cancelled Date"
msgstr ""
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:296
msgctxt "table heading"
msgid "End Date"
msgstr ""
#: vendor/woocommerce/subscriptions-core/wcs-functions.php:331 #: vendor/woocommerce/subscriptions-core/wcs-functions.php:331
msgid "Date type is not a string." msgid "Date type is not a string."
msgstr "" msgstr ""

2
vendor/autoload.php vendored
View File

@@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) {
require_once __DIR__ . '/composer/autoload_real.php'; require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit05910b6e6fdd55087b6b8fac1607afc2::getLoader(); return ComposerAutoloaderInit355d724f37b9eb5e851f078727e57a07::getLoader();

View File

@@ -45,35 +45,34 @@ class ClassLoader
/** @var \Closure(string):void */ /** @var \Closure(string):void */
private static $includeFile; private static $includeFile;
/** @var ?string */ /** @var string|null */
private $vendorDir; private $vendorDir;
// PSR-4 // PSR-4
/** /**
* @var array[] * @var array<string, array<string, int>>
* @psalm-var array<string, array<string, int>>
*/ */
private $prefixLengthsPsr4 = array(); private $prefixLengthsPsr4 = array();
/** /**
* @var array[] * @var array<string, list<string>>
* @psalm-var array<string, array<int, string>>
*/ */
private $prefixDirsPsr4 = array(); private $prefixDirsPsr4 = array();
/** /**
* @var array[] * @var list<string>
* @psalm-var array<string, string>
*/ */
private $fallbackDirsPsr4 = array(); private $fallbackDirsPsr4 = array();
// PSR-0 // PSR-0
/** /**
* @var array[] * List of PSR-0 prefixes
* @psalm-var array<string, array<string, string[]>> *
* Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
*
* @var array<string, array<string, list<string>>>
*/ */
private $prefixesPsr0 = array(); private $prefixesPsr0 = array();
/** /**
* @var array[] * @var list<string>
* @psalm-var array<string, string>
*/ */
private $fallbackDirsPsr0 = array(); private $fallbackDirsPsr0 = array();
@@ -81,8 +80,7 @@ class ClassLoader
private $useIncludePath = false; private $useIncludePath = false;
/** /**
* @var string[] * @var array<string, string>
* @psalm-var array<string, string>
*/ */
private $classMap = array(); private $classMap = array();
@@ -90,21 +88,20 @@ class ClassLoader
private $classMapAuthoritative = false; private $classMapAuthoritative = false;
/** /**
* @var bool[] * @var array<string, bool>
* @psalm-var array<string, bool>
*/ */
private $missingClasses = array(); private $missingClasses = array();
/** @var ?string */ /** @var string|null */
private $apcuPrefix; private $apcuPrefix;
/** /**
* @var self[] * @var array<string, self>
*/ */
private static $registeredLoaders = array(); private static $registeredLoaders = array();
/** /**
* @param ?string $vendorDir * @param string|null $vendorDir
*/ */
public function __construct($vendorDir = null) public function __construct($vendorDir = null)
{ {
@@ -113,7 +110,7 @@ class ClassLoader
} }
/** /**
* @return string[] * @return array<string, list<string>>
*/ */
public function getPrefixes() public function getPrefixes()
{ {
@@ -125,8 +122,7 @@ class ClassLoader
} }
/** /**
* @return array[] * @return array<string, list<string>>
* @psalm-return array<string, array<int, string>>
*/ */
public function getPrefixesPsr4() public function getPrefixesPsr4()
{ {
@@ -134,8 +130,7 @@ class ClassLoader
} }
/** /**
* @return array[] * @return list<string>
* @psalm-return array<string, string>
*/ */
public function getFallbackDirs() public function getFallbackDirs()
{ {
@@ -143,8 +138,7 @@ class ClassLoader
} }
/** /**
* @return array[] * @return list<string>
* @psalm-return array<string, string>
*/ */
public function getFallbackDirsPsr4() public function getFallbackDirsPsr4()
{ {
@@ -152,8 +146,7 @@ class ClassLoader
} }
/** /**
* @return string[] Array of classname => path * @return array<string, string> Array of classname => path
* @psalm-return array<string, string>
*/ */
public function getClassMap() public function getClassMap()
{ {
@@ -161,8 +154,7 @@ class ClassLoader
} }
/** /**
* @param string[] $classMap Class to filename map * @param array<string, string> $classMap Class to filename map
* @psalm-param array<string, string> $classMap
* *
* @return void * @return void
*/ */
@@ -180,23 +172,24 @@ class ClassLoader
* appending or prepending to the ones previously set for this prefix. * appending or prepending to the ones previously set for this prefix.
* *
* @param string $prefix The prefix * @param string $prefix The prefix
* @param string[]|string $paths The PSR-0 root directories * @param list<string>|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories * @param bool $prepend Whether to prepend the directories
* *
* @return void * @return void
*/ */
public function add($prefix, $paths, $prepend = false) public function add($prefix, $paths, $prepend = false)
{ {
$paths = (array) $paths;
if (!$prefix) { if (!$prefix) {
if ($prepend) { if ($prepend) {
$this->fallbackDirsPsr0 = array_merge( $this->fallbackDirsPsr0 = array_merge(
(array) $paths, $paths,
$this->fallbackDirsPsr0 $this->fallbackDirsPsr0
); );
} else { } else {
$this->fallbackDirsPsr0 = array_merge( $this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0, $this->fallbackDirsPsr0,
(array) $paths $paths
); );
} }
@@ -205,19 +198,19 @@ class ClassLoader
$first = $prefix[0]; $first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) { if (!isset($this->prefixesPsr0[$first][$prefix])) {
$this->prefixesPsr0[$first][$prefix] = (array) $paths; $this->prefixesPsr0[$first][$prefix] = $paths;
return; return;
} }
if ($prepend) { if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge( $this->prefixesPsr0[$first][$prefix] = array_merge(
(array) $paths, $paths,
$this->prefixesPsr0[$first][$prefix] $this->prefixesPsr0[$first][$prefix]
); );
} else { } else {
$this->prefixesPsr0[$first][$prefix] = array_merge( $this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix], $this->prefixesPsr0[$first][$prefix],
(array) $paths $paths
); );
} }
} }
@@ -227,7 +220,7 @@ class ClassLoader
* appending or prepending to the ones previously set for this namespace. * appending or prepending to the ones previously set for this namespace.
* *
* @param string $prefix The prefix/namespace, with trailing '\\' * @param string $prefix The prefix/namespace, with trailing '\\'
* @param string[]|string $paths The PSR-4 base directories * @param list<string>|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories * @param bool $prepend Whether to prepend the directories
* *
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
@@ -236,17 +229,18 @@ class ClassLoader
*/ */
public function addPsr4($prefix, $paths, $prepend = false) public function addPsr4($prefix, $paths, $prepend = false)
{ {
$paths = (array) $paths;
if (!$prefix) { if (!$prefix) {
// Register directories for the root namespace. // Register directories for the root namespace.
if ($prepend) { if ($prepend) {
$this->fallbackDirsPsr4 = array_merge( $this->fallbackDirsPsr4 = array_merge(
(array) $paths, $paths,
$this->fallbackDirsPsr4 $this->fallbackDirsPsr4
); );
} else { } else {
$this->fallbackDirsPsr4 = array_merge( $this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4, $this->fallbackDirsPsr4,
(array) $paths $paths
); );
} }
} elseif (!isset($this->prefixDirsPsr4[$prefix])) { } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
@@ -256,18 +250,18 @@ class ClassLoader
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
} }
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths; $this->prefixDirsPsr4[$prefix] = $paths;
} elseif ($prepend) { } elseif ($prepend) {
// Prepend directories for an already registered namespace. // Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge( $this->prefixDirsPsr4[$prefix] = array_merge(
(array) $paths, $paths,
$this->prefixDirsPsr4[$prefix] $this->prefixDirsPsr4[$prefix]
); );
} else { } else {
// Append directories for an already registered namespace. // Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge( $this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix], $this->prefixDirsPsr4[$prefix],
(array) $paths $paths
); );
} }
} }
@@ -277,7 +271,7 @@ class ClassLoader
* replacing any others previously set for this prefix. * replacing any others previously set for this prefix.
* *
* @param string $prefix The prefix * @param string $prefix The prefix
* @param string[]|string $paths The PSR-0 base directories * @param list<string>|string $paths The PSR-0 base directories
* *
* @return void * @return void
*/ */
@@ -295,7 +289,7 @@ class ClassLoader
* replacing any others previously set for this namespace. * replacing any others previously set for this namespace.
* *
* @param string $prefix The prefix/namespace, with trailing '\\' * @param string $prefix The prefix/namespace, with trailing '\\'
* @param string[]|string $paths The PSR-4 base directories * @param list<string>|string $paths The PSR-4 base directories
* *
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
* *
@@ -481,9 +475,9 @@ class ClassLoader
} }
/** /**
* Returns the currently registered loaders indexed by their corresponding vendor directories. * Returns the currently registered loaders keyed by their corresponding vendor directories.
* *
* @return self[] * @return array<string, self>
*/ */
public static function getRegisteredLoaders() public static function getRegisteredLoaders()
{ {

View File

@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer // autoload_real.php @generated by Composer
class ComposerAutoloaderInit05910b6e6fdd55087b6b8fac1607afc2 class ComposerAutoloaderInit355d724f37b9eb5e851f078727e57a07
{ {
private static $loader; private static $loader;
@@ -24,12 +24,12 @@ class ComposerAutoloaderInit05910b6e6fdd55087b6b8fac1607afc2
require __DIR__ . '/platform_check.php'; require __DIR__ . '/platform_check.php';
spl_autoload_register(array('ComposerAutoloaderInit05910b6e6fdd55087b6b8fac1607afc2', 'loadClassLoader'), true, true); spl_autoload_register(array('ComposerAutoloaderInit355d724f37b9eb5e851f078727e57a07', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInit05910b6e6fdd55087b6b8fac1607afc2', 'loadClassLoader')); spl_autoload_unregister(array('ComposerAutoloaderInit355d724f37b9eb5e851f078727e57a07', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php'; require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit05910b6e6fdd55087b6b8fac1607afc2::getInitializer($loader)); call_user_func(\Composer\Autoload\ComposerStaticInit355d724f37b9eb5e851f078727e57a07::getInitializer($loader));
$loader->register(true); $loader->register(true);

View File

@@ -4,7 +4,7 @@
namespace Composer\Autoload; namespace Composer\Autoload;
class ComposerStaticInit05910b6e6fdd55087b6b8fac1607afc2 class ComposerStaticInit355d724f37b9eb5e851f078727e57a07
{ {
public static $prefixLengthsPsr4 = array ( public static $prefixLengthsPsr4 = array (
'C' => 'C' =>
@@ -129,9 +129,9 @@ class ComposerStaticInit05910b6e6fdd55087b6b8fac1607afc2
public static function getInitializer(ClassLoader $loader) public static function getInitializer(ClassLoader $loader)
{ {
return \Closure::bind(function () use ($loader) { return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit05910b6e6fdd55087b6b8fac1607afc2::$prefixLengthsPsr4; $loader->prefixLengthsPsr4 = ComposerStaticInit355d724f37b9eb5e851f078727e57a07::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit05910b6e6fdd55087b6b8fac1607afc2::$prefixDirsPsr4; $loader->prefixDirsPsr4 = ComposerStaticInit355d724f37b9eb5e851f078727e57a07::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit05910b6e6fdd55087b6b8fac1607afc2::$classMap; $loader->classMap = ComposerStaticInit355d724f37b9eb5e851f078727e57a07::$classMap;
}, null, ClassLoader::class); }, null, ClassLoader::class);
} }

View File

@@ -156,17 +156,17 @@
}, },
{ {
"name": "woocommerce/subscriptions-core", "name": "woocommerce/subscriptions-core",
"version": "6.7.1", "version": "6.8.0",
"version_normalized": "6.7.1.0", "version_normalized": "6.8.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Automattic/woocommerce-subscriptions-core.git", "url": "https://github.com/Automattic/woocommerce-subscriptions-core.git",
"reference": "81d809a476e87c260492d4cc0413818d85e123cc" "reference": "19d4f2acf246c7f8275438c9356eb79a141bdf4d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Automattic/woocommerce-subscriptions-core/zipball/81d809a476e87c260492d4cc0413818d85e123cc", "url": "https://api.github.com/repos/Automattic/woocommerce-subscriptions-core/zipball/19d4f2acf246c7f8275438c9356eb79a141bdf4d",
"reference": "81d809a476e87c260492d4cc0413818d85e123cc", "reference": "19d4f2acf246c7f8275438c9356eb79a141bdf4d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -179,7 +179,7 @@
"woocommerce/woocommerce-sniffs": "0.1.0", "woocommerce/woocommerce-sniffs": "0.1.0",
"yoast/phpunit-polyfills": "1.1.0" "yoast/phpunit-polyfills": "1.1.0"
}, },
"time": "2024-01-17T01:56:28+00:00", "time": "2024-02-08T06:17:51+00:00",
"type": "wordpress-plugin", "type": "wordpress-plugin",
"extra": { "extra": {
"phpcodesniffer-search-depth": 2 "phpcodesniffer-search-depth": 2
@@ -209,7 +209,7 @@
"description": "Sell products and services with recurring payments in your WooCommerce Store.", "description": "Sell products and services with recurring payments in your WooCommerce Store.",
"homepage": "https://github.com/Automattic/woocommerce-subscriptions-core", "homepage": "https://github.com/Automattic/woocommerce-subscriptions-core",
"support": { "support": {
"source": "https://github.com/Automattic/woocommerce-subscriptions-core/tree/6.7.1", "source": "https://github.com/Automattic/woocommerce-subscriptions-core/tree/6.8.0",
"issues": "https://github.com/Automattic/woocommerce-subscriptions-core/issues" "issues": "https://github.com/Automattic/woocommerce-subscriptions-core/issues"
}, },
"install-path": "../woocommerce/subscriptions-core" "install-path": "../woocommerce/subscriptions-core"

View File

@@ -1,9 +1,9 @@
<?php return array( <?php return array(
'root' => array( 'root' => array(
'name' => 'woocommerce/woocommerce-subscriptions', 'name' => 'woocommerce/woocommerce-subscriptions',
'pretty_version' => 'dev-release/5.9.1', 'pretty_version' => 'dev-release/6.0.0',
'version' => 'dev-release/5.9.1', 'version' => 'dev-release/6.0.0',
'reference' => '2f40fcd6696f5e7ebfecbb96d06001167970d953', 'reference' => 'b739a4cf35dc85bdd84a335c27295258c480fc4e',
'type' => 'wordpress-plugin', 'type' => 'wordpress-plugin',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
@@ -32,18 +32,18 @@
), ),
), ),
'woocommerce/subscriptions-core' => array( 'woocommerce/subscriptions-core' => array(
'pretty_version' => '6.7.1', 'pretty_version' => '6.8.0',
'version' => '6.7.1.0', 'version' => '6.8.0.0',
'reference' => '81d809a476e87c260492d4cc0413818d85e123cc', 'reference' => '19d4f2acf246c7f8275438c9356eb79a141bdf4d',
'type' => 'wordpress-plugin', 'type' => 'wordpress-plugin',
'install_path' => __DIR__ . '/../woocommerce/subscriptions-core', 'install_path' => __DIR__ . '/../woocommerce/subscriptions-core',
'aliases' => array(), 'aliases' => array(),
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'woocommerce/woocommerce-subscriptions' => array( 'woocommerce/woocommerce-subscriptions' => array(
'pretty_version' => 'dev-release/5.9.1', 'pretty_version' => 'dev-release/6.0.0',
'version' => 'dev-release/5.9.1', 'version' => 'dev-release/6.0.0',
'reference' => '2f40fcd6696f5e7ebfecbb96d06001167970d953', 'reference' => 'b739a4cf35dc85bdd84a335c27295258c480fc4e',
'type' => 'wordpress-plugin', 'type' => 'wordpress-plugin',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),

View File

@@ -149,10 +149,21 @@ jQuery( function ( $ ) {
return $paymentMethod.data( 'is_manual' ) === 'no'; return $paymentMethod.data( 'is_manual' ) === 'no';
} }
function blockActionsOnTrigger() {
$( '.subscription_details' ).block( {
message: null,
overlayCSS: {
background: '#fff',
opacity: 0.6,
},
} );
}
$toggle.on( 'click', onToggle ); $toggle.on( 'click', onToggle );
maybeApplyColor(); maybeApplyColor();
displayToggle(); displayToggle();
$early_renewal_modal_submit.on( 'click', blockEarlyRenewalModal ); $early_renewal_modal_submit.on( 'click', blockEarlyRenewalModal );
$( document ).on( 'wcs_show_modal', shouldShowEarlyRenewalModal ); $( document ).on( 'wcs_show_modal', shouldShowEarlyRenewalModal );
$( document ).on( 'click', '.wcs_block_ui_on_click', blockActionsOnTrigger );
} ); } );

View File

@@ -1,5 +1,9 @@
*** WooCommerce Subscriptions Core Changelog *** *** WooCommerce Subscriptions Core Changelog ***
= 6.8.0 - 2024-02-08 =
* 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.
= 6.7.1 - 2024-01-17 = = 6.7.1 - 2024-01-17 =
* Fix - Resolved an error that would occur with WC 8.5.0 when editing a subscription customer from the admin dashboard. * Fix - Resolved an error that would occur with WC 8.5.0 when editing a subscription customer from the admin dashboard.

View File

@@ -16,7 +16,7 @@ class WC_Subscriptions_Core_Plugin {
* The version of subscriptions-core library. * The version of subscriptions-core library.
* @var string * @var string
*/ */
protected $library_version = '6.7.1'; // WRCS: DEFINED_VERSION. protected $library_version = '6.8.0'; // WRCS: DEFINED_VERSION.
/** /**
* The subscription scheduler instance. * The subscription scheduler instance.

View File

@@ -18,8 +18,6 @@ class WCS_Cached_Data_Manager extends WCS_Cache_Manager {
public function __construct() { public function __construct() {
add_action( 'woocommerce_loaded', array( $this, 'load_logger' ) ); add_action( 'woocommerce_loaded', array( $this, 'load_logger' ) );
add_action( 'admin_init', array( $this, 'initialize_cron_check_size' ) ); // setup cron task to truncate big logs.
add_filter( 'cron_schedules', array( $this, 'add_weekly_cron_schedule' ) ); // create a weekly cron schedule add_filter( 'cron_schedules', array( $this, 'add_weekly_cron_schedule' ) ); // create a weekly cron schedule
} }
@@ -168,6 +166,7 @@ class WCS_Cached_Data_Manager extends WCS_Cache_Manager {
* truncated to 0 bytes. * truncated to 0 bytes.
*/ */
public static function cleanup_logs() { public static function cleanup_logs() {
wcs_deprecated_function( __METHOD__, '6.0.0' );
$file = wc_get_log_file_path( 'wcs-cache' ); $file = wc_get_log_file_path( 'wcs-cache' );
$max_cache_size = apply_filters( 'wcs_max_log_size', 50 * 1024 * 1024 ); $max_cache_size = apply_filters( 'wcs_max_log_size', 50 * 1024 * 1024 );
@@ -199,6 +198,7 @@ class WCS_Cached_Data_Manager extends WCS_Cache_Manager {
* @since 1.0.0 - Migrated from WooCommerce Subscriptions v2.2.9 * @since 1.0.0 - Migrated from WooCommerce Subscriptions v2.2.9
*/ */
public function initialize_cron_check_size() { public function initialize_cron_check_size() {
wcs_deprecated_function( __METHOD__, '6.0.0' );
$hook = 'wcs_cleanup_big_logs'; $hook = 'wcs_cleanup_big_logs';

View File

@@ -66,7 +66,7 @@ class WCS_Initial_Cart_Stock_Manager extends WCS_Renewal_Cart_Stock_Manager {
if ( isset( $wp->query_vars['order-pay'] ) ) { if ( isset( $wp->query_vars['order-pay'] ) ) {
$order = wc_get_order( $wp->query_vars['order-pay'] ); $order = wc_get_order( $wp->query_vars['order-pay'] );
if ( static::has_handled_stock( $order ) && wcs_order_contains_subscription( $order, 'parent' ) ) { if ( $order && static::has_handled_stock( $order ) && wcs_order_contains_subscription( $order, 'parent' ) ) {
$parent_order = $order; $parent_order = $order;
} }
} }

View File

@@ -263,6 +263,11 @@ class WC_Subscriptions_Upgrader {
WCS_Upgrade_3_1_0::migrate_subscription_webhooks_using_api_version_3(); WCS_Upgrade_3_1_0::migrate_subscription_webhooks_using_api_version_3();
} }
if ( version_compare( self::$active_version, '6.8.0', '<' ) ) {
// Upon upgrading to 6.8.0 delete the 'wcs_cleanup_big_logs' WP Cron job that is no longer used.
wp_unschedule_hook( 'wcs_cleanup_big_logs' );
}
self::upgrade_complete(); self::upgrade_complete();
} }

View File

@@ -62,8 +62,16 @@ if ( ! defined( 'ABSPATH' ) ) {
<p><?php esc_html_e( 'Your database has been updated successfully!', 'woocommerce-subscriptions' ); ?></p> <p><?php esc_html_e( 'Your database has been updated successfully!', 'woocommerce-subscriptions' ); ?></p>
<p class="step"><a class="button" href="<?php echo esc_url( $about_page_url ); ?>"><?php esc_html_e( 'Continue', 'woocommerce-subscriptions' ); ?></a></p> <p class="step"><a class="button" href="<?php echo esc_url( $about_page_url ); ?>"><?php esc_html_e( 'Continue', 'woocommerce-subscriptions' ); ?></a></p>
<p class="log-notice"><?php <p class="log-notice"><?php
// Get the log file URL depending on the log handler (file or database).
$url = admin_url( sprintf( 'admin.php?page=wc-status&tab=logs&log_file=%s-%s-log', WCS_Upgrade_Logger::$handle, sanitize_file_name( wp_hash( WCS_Upgrade_Logger::$handle ) ) ) );
// In WC 8.6 the URL format changed to include the source parameter.
if ( ! wcs_is_woocommerce_pre( '8.6.0' ) ) {
$url = admin_url( sprintf( 'admin.php?page=wc-status&tab=logs&source=%s&paged=1', WCS_Upgrade_Logger::$handle ) );
}
// translators: $1: placeholder is number of weeks, 2$: path to the file // translators: $1: placeholder is number of weeks, 2$: path to the file
echo wp_kses( sprintf( __( 'To record the progress of the update a new log file was created. This file will be automatically deleted in %1$d weeks. If you would like to delete it sooner, you can find it here: %2$s', 'woocommerce-subscriptions' ), esc_html( WCS_Upgrade_Logger::$weeks_until_cleanup ), '<code class="log-notice">' . esc_html( wc_get_log_file_path( WCS_Upgrade_Logger::$handle ) ) . '</code>' ), array( 'code' => array( 'class' => true ) ) ); echo wp_kses_post( sprintf( __( 'To record the progress of the update a new log file was created. This file will be automatically deleted in %1$d weeks. If you would like to delete it sooner, you can find it in the %2$sWooCommerce logs screen%3$s.', 'woocommerce-subscriptions' ), esc_html( WCS_Upgrade_Logger::$weeks_until_cleanup ), '<a href="' . esc_url( $url ) . '">', '</a>' ) );
?> ?>
</p> </p>
</div> </div>

View File

@@ -309,6 +309,7 @@ function wcs_get_all_user_actions_for_subscription( $subscription, $user_id ) {
$actions['reactivate'] = array( $actions['reactivate'] = array(
'url' => wcs_get_users_change_status_link( $subscription->get_id(), 'active', $current_status ), 'url' => wcs_get_users_change_status_link( $subscription->get_id(), 'active', $current_status ),
'name' => __( 'Reactivate', 'woocommerce-subscriptions' ), 'name' => __( 'Reactivate', 'woocommerce-subscriptions' ),
'block_ui' => true,
); );
} }
@@ -316,6 +317,7 @@ function wcs_get_all_user_actions_for_subscription( $subscription, $user_id ) {
$actions['resubscribe'] = array( $actions['resubscribe'] = array(
'url' => wcs_get_users_resubscribe_link( $subscription ), 'url' => wcs_get_users_resubscribe_link( $subscription ),
'name' => __( 'Resubscribe', 'woocommerce-subscriptions' ), 'name' => __( 'Resubscribe', 'woocommerce-subscriptions' ),
'block_ui' => true,
); );
} }
@@ -325,6 +327,7 @@ function wcs_get_all_user_actions_for_subscription( $subscription, $user_id ) {
$actions['cancel'] = array( $actions['cancel'] = array(
'url' => wcs_get_users_change_status_link( $subscription->get_id(), 'cancelled', $current_status ), 'url' => wcs_get_users_change_status_link( $subscription->get_id(), 'cancelled', $current_status ),
'name' => _x( 'Cancel', 'an action on a subscription', 'woocommerce-subscriptions' ), 'name' => _x( 'Cancel', 'an action on a subscription', 'woocommerce-subscriptions' ),
'block_ui' => true,
); );
} }
} }

View File

@@ -12,6 +12,11 @@ if ( ! defined( 'ABSPATH' ) ) {
// Get the log file URL depending on the log handler (file or database). // Get the log file URL depending on the log handler (file or database).
$url = admin_url( sprintf( 'admin.php?page=wc-status&tab=logs&log_file=%s-%s-log', 'failed-scheduled-actions', sanitize_file_name( wp_hash( 'failed-scheduled-actions' ) ) ) ); $url = admin_url( sprintf( 'admin.php?page=wc-status&tab=logs&log_file=%s-%s-log', 'failed-scheduled-actions', sanitize_file_name( wp_hash( 'failed-scheduled-actions' ) ) ) );
// In WC 8.6 the URL format changed to include the source parameter.
if ( ! wcs_is_woocommerce_pre( '8.6.0' ) ) {
$url = admin_url( sprintf( 'admin.php?page=wc-status&tab=logs&source=%s&paged=1', 'failed-scheduled-actions' ) );
}
if ( defined( 'WC_LOG_HANDLER' ) && 'WC_Log_Handler_DB' === WC_LOG_HANDLER ) { if ( defined( 'WC_LOG_HANDLER' ) && 'WC_Log_Handler_DB' === WC_LOG_HANDLER ) {
$url = admin_url( sprintf( 'admin.php?page=wc-status&tab=logs&source=%s', 'failed-scheduled-actions' ) ); $url = admin_url( sprintf( 'admin.php?page=wc-status&tab=logs&source=%s', 'failed-scheduled-actions' ) );
} }

View File

@@ -81,7 +81,14 @@ if ( ! defined( 'ABSPATH' ) ) {
<td><?php esc_html_e( 'Actions', 'woocommerce-subscriptions' ); ?></td> <td><?php esc_html_e( 'Actions', 'woocommerce-subscriptions' ); ?></td>
<td> <td>
<?php foreach ( $actions as $key => $action ) : ?> <?php foreach ( $actions as $key => $action ) : ?>
<a href="<?php echo esc_url( $action['url'] ); ?>" class="button <?php echo sanitize_html_class( $key ) ?>"><?php echo esc_html( $action['name'] ); ?></a> <?php $classes = [ 'button', sanitize_html_class( $key ) ]; ?>
<?php $classes[] = isset( $action['block_ui'] ) && $action['block_ui'] ? 'wcs_block_ui_on_click' : '' ?>
<a
href="<?php echo esc_url( $action['url'] ); ?>"
class="<?php echo trim( implode( ' ', $classes ) ); ?>"
>
<?php echo esc_html( $action['name'] ); ?>
</a>
<?php endforeach; ?> <?php endforeach; ?>
</td> </td>
</tr> </tr>

View File

@@ -6,5 +6,5 @@
* Author: Automattic * Author: Automattic
* Author URI: https://woocommerce.com/ * Author URI: https://woocommerce.com/
* Requires WP: 5.6 * Requires WP: 5.6
* Version: 6.7.1 * Version: 6.8.0
*/ */

View File

@@ -5,7 +5,7 @@
* Description: Sell products and services with recurring payments in your WooCommerce Store. * Description: Sell products and services with recurring payments in your WooCommerce Store.
* Author: WooCommerce * Author: WooCommerce
* Author URI: https://woocommerce.com/ * Author URI: https://woocommerce.com/
* Version: 5.9.1 * Version: 6.0.0
* *
* WC requires at least: 7.7.0 * WC requires at least: 7.7.0
* WC tested up to: 8.2.0 * WC tested up to: 8.2.0
@@ -77,7 +77,7 @@ class WC_Subscriptions {
public static $plugin_file = __FILE__; public static $plugin_file = __FILE__;
/** @var string */ /** @var string */
public static $version = '5.9.1'; // WRCS: DEFINED_VERSION. public static $version = '6.0.0'; // WRCS: DEFINED_VERSION.
/** @var string */ /** @var string */
public static $wc_minimum_supported_version = '7.7'; public static $wc_minimum_supported_version = '7.7';