Changeset 3474509
- Timestamp:
- 03/04/2026 12:06:57 PM (3 weeks ago)
- Location:
- wp-user-avatar/trunk
- Files:
-
- 10 edited
-
changelog.txt (modified) (1 diff)
-
languages/wp-user-avatar.pot (modified) (4 diffs)
-
readme.txt (modified) (2 diffs)
-
src/Membership/Controllers/CheckoutController.php (modified) (3 diffs)
-
src/Membership/PaymentMethods/Stripe/WebhookHandlers/CheckoutSessionAsyncPaymentFailed.php (modified) (1 diff)
-
src/Membership/PaymentMethods/Stripe/WebhookHandlers/CheckoutSessionAsyncPaymentSucceeded.php (modified) (1 diff)
-
src/Membership/PaymentMethods/Stripe/WebhookHandlers/CheckoutSessionCompleted.php (modified) (1 diff)
-
src/Membership/Services/OrderService.php (modified) (1 diff)
-
third-party/vendor/composer/installed.php (modified) (1 diff)
-
wp-user-avatar.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wp-user-avatar/trunk/changelog.txt
r3473639 r3474509 1 1 == Changelog == 2 3 = 4.16.12 = 4 * Fixed issue with plan upgrade by wrong user. 5 * Fixed bug where empty subscription records could be created. 2 6 3 7 = 4.16.11 = -
wp-user-avatar/trunk/languages/wp-user-avatar.pot
r3473639 r3474509 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: ProfilePress 4.16.1 1\n"5 "Project-Id-Version: ProfilePress 4.16.12\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-user-avatar\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2026-03-0 3T12:39:22+00:00\n"12 "POT-Creation-Date: 2026-03-04T12:04:16+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.12.0\n" … … 16159 16159 #: src/Membership/Controllers/CheckoutController.php:150 16160 16160 #: src/Membership/Controllers/CheckoutController.php:201 16161 #: src/Membership/Controllers/CheckoutController.php:4 6616161 #: src/Membership/Controllers/CheckoutController.php:475 16162 16162 msgid "Please enter a plan ID." 16163 16163 msgstr "" … … 16187 16187 #: src/Membership/Controllers/CheckoutController.php:282 16188 16188 msgid "No payment method selected. Please try again." 16189 msgstr "" 16190 16191 #: src/Membership/Controllers/CheckoutController.php:310 16192 msgid "You are not allowed to switch from this plan." 16189 16193 msgstr "" 16190 16194 -
wp-user-avatar/trunk/readme.txt
r3473639 r3474509 6 6 Requires PHP: 7.4 7 7 Tested up to: 6.9 8 Stable tag: 4.16.1 18 Stable tag: 4.16.12 9 9 License: GPLv2 or later 10 10 … … 192 192 == Changelog == 193 193 194 = Paid Membership, Ecommerce & User Registration 4.16.12 = 195 * Fixed issue with plan upgrade by wrong user. 196 * Fixed bug where empty subscription records could be created. 197 194 198 = Paid Membership, Ecommerce & User Registration 4.16.11 = 195 199 * Added filter ppressmd_member_directory_filters_expanded. -
wp-user-avatar/trunk/src/Membership/Controllers/CheckoutController.php
r3473639 r3474509 301 301 } 302 302 303 $changePlanSub = SubscriptionFactory::fromId($change_plan_sub_id); 304 305 if ( 306 $changePlanSub->exists() && 307 ! empty($customer_id) && 308 $customer_id !== $changePlanSub->get_customer_id()) { 309 throw new \Exception( 310 esc_html__('You are not allowed to switch from this plan.', 'wp-user-avatar') 311 ); 312 } 313 303 314 $order_id = $this->create_order($customer_id, $cart_vars); 304 315 … … 332 343 } else { 333 344 334 $sub = SubscriptionFactory::fromId($change_plan_sub_id); 335 336 if ($sub->exists() && $sub->get_customer_id() == $customer_id) { 345 if ($changePlanSub->exists() && $changePlanSub->get_customer_id() == $customer_id) { 337 346 338 347 // do not send subscription cancelled email … … 340 349 remove_action('ppress_subscription_expired', [SubscriptionExpiredNotification::init(), 'dispatch_email'], 10); 341 350 342 $ sub->cancel(true);343 $ sub->expire();344 345 SubscriptionFactory::fromId($subscription_id)->update_meta('_upgraded_from_sub_id', $ sub->get_id());346 $ sub->update_meta('_upgraded_to_sub_id', $subscription_id);351 $changePlanSub->cancel(true); 352 $changePlanSub->expire(); 353 354 SubscriptionFactory::fromId($subscription_id)->update_meta('_upgraded_from_sub_id', $changePlanSub->get_id()); 355 $changePlanSub->update_meta('_upgraded_to_sub_id', $subscription_id); 347 356 } 348 357 -
wp-user-avatar/trunk/src/Membership/PaymentMethods/Stripe/WebhookHandlers/CheckoutSessionAsyncPaymentFailed.php
r2899403 r3474509 14 14 $order = OrderFactory::fromOrderKey($event_data['client_reference_id']); 15 15 16 $order->fail_order(); 16 if ($order->exists()) { 17 $order->fail_order(); 18 } 17 19 } 18 20 } -
wp-user-avatar/trunk/src/Membership/PaymentMethods/Stripe/WebhookHandlers/CheckoutSessionAsyncPaymentSucceeded.php
r3132787 r3474509 52 52 } 53 53 54 if ( ! $subscription->is_active()) {54 if ( $subscription->exists() && ! $subscription->is_active()) { 55 55 56 56 if ($event_data['mode'] == 'subscription') { -
wp-user-avatar/trunk/src/Membership/PaymentMethods/Stripe/WebhookHandlers/CheckoutSessionCompleted.php
r3197296 r3474509 57 57 } 58 58 59 if ( ! $subscription->is_active()) {59 if ( $subscription->exists() && ! $subscription->is_active()) { 60 60 61 61 if ($event_data['mode'] == 'subscription') { -
wp-user-avatar/trunk/src/Membership/Services/OrderService.php
r3319431 r3474509 14 14 use ProfilePress\Core\Membership\Models\Order\OrderType; 15 15 use ProfilePress\Core\Membership\Models\Plan\PlanFactory; 16 use ProfilePress\Core\Membership\Models\Subscription\SubscriptionBillingFrequency;17 16 use ProfilePress\Core\Membership\Models\Subscription\SubscriptionEntity; 18 17 use ProfilePress\Core\Membership\Models\Subscription\SubscriptionFactory; -
wp-user-avatar/trunk/third-party/vendor/composer/installed.php
r3473639 r3474509 3 3 namespace ProfilePressVendor; 4 4 5 return array('root' => array('name' => '__root__', 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => ' 6ba07349dfe1b45b60ed3a3b2c1e085e002fd71c', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('__root__' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '6ba07349dfe1b45b60ed3a3b2c1e085e002fd71c', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'barryvdh/composer-cleanup-plugin' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '80cceff45bfb85a0f49236537b1f1c928a1ee820', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../barryvdh/composer-cleanup-plugin', 'aliases' => array(0 => '0.1.x-dev'), 'dev_requirement' => \false), 'brick/math' => array('pretty_version' => '0.9.3', 'version' => '0.9.3.0', 'reference' => 'ca57d18f028f84f777b2168cd1911b0dee2343ae', 'type' => 'library', 'install_path' => __DIR__ . '/../brick/math', 'aliases' => array(), 'dev_requirement' => \false), 'carbonphp/carbon-doctrine-types' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '99f76ffa36cce3b70a4a6abce41dba15ca2e84cb', 'type' => 'library', 'install_path' => __DIR__ . '/../carbonphp/carbon-doctrine-types', 'aliases' => array(), 'dev_requirement' => \false), 'collizo4sky/persist-admin-notices-dismissal' => array('pretty_version' => '1.4.5', 'version' => '1.4.5.0', 'reference' => '163b868c98cf97ea15b4d7e1305e2d52c9242e7e', 'type' => 'library', 'install_path' => __DIR__ . '/../collizo4sky/persist-admin-notices-dismissal', 'aliases' => array(), 'dev_requirement' => \false), 'league/csv' => array('pretty_version' => '9.8.0', 'version' => '9.8.0.0', 'reference' => '9d2e0265c5d90f5dd601bc65ff717e05cec19b47', 'type' => 'library', 'install_path' => __DIR__ . '/../league/csv', 'aliases' => array(), 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => '2.73.0', 'version' => '2.73.0.0', 'reference' => '9228ce90e1035ff2f0db84b40ec2e023ed802075', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(), 'dev_requirement' => \false), 'pelago/emogrifier' => array('pretty_version' => 'v6.0.0', 'version' => '6.0.0.0', 'reference' => 'aa72d5407efac118f3896bcb995a2cba793df0ae', 'type' => 'library', 'install_path' => __DIR__ . '/../pelago/emogrifier', 'aliases' => array(), 'dev_requirement' => \false), 'psr/clock' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'e41a24703d4560fd0acb709162f73b8adfc3aa0d', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/clock', 'aliases' => array(), 'dev_requirement' => \false), 'psr/clock-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'sabberworm/php-css-parser' => array('pretty_version' => 'v8.9.0', 'version' => '8.9.0.0', 'reference' => 'd8e916507b88e389e26d4ab03c904a082aa66bb9', 'type' => 'library', 'install_path' => __DIR__ . '/../sabberworm/php-css-parser', 'aliases' => array(), 'dev_requirement' => \false), 'sniccowp/php-scoper-wordpress-excludes' => array('pretty_version' => '6.9.1', 'version' => '6.9.1.0', 'reference' => '94867711087d0efc3d361dbe068044e0124f4c0b', 'type' => 'library', 'install_path' => __DIR__ . '/../sniccowp/php-scoper-wordpress-excludes', 'aliases' => array(), 'dev_requirement' => \true), 'stripe/stripe-php' => array('pretty_version' => 'v16.6.0', 'version' => '16.6.0.0', 'reference' => 'd6de0a536f00b5c5c74f36b8f4d0d93b035499ff', 'type' => 'library', 'install_path' => __DIR__ . '/../stripe/stripe-php', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/css-selector' => array('pretty_version' => 'v5.4.45', 'version' => '5.4.45.0', 'reference' => '4f7f3c35fba88146b56d0025d20ace3f3901f097', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/css-selector', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v2.5.4', 'version' => '2.5.4.0', 'reference' => '605389f2a7e5625f273b53960dc46aeaf9c62918', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.33.0', 'version' => '1.33.0.0', 'reference' => '6d857f4d76bd4b343eac26d6b539585d2bc56493', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.33.0', 'version' => '1.33.0.0', 'reference' => '0cc9dd0f17f61d8131e7df6b84bd344899fe2608', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => 'v5.4.45', 'version' => '5.4.45.0', 'reference' => '98f26acc99341ca4bab345fb14d7b1d7cb825bed', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('pretty_version' => 'v2.5.4', 'version' => '2.5.4.0', 'reference' => '450d4172653f38818657022252f9d81be89ee9a8', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '2.3'))));5 return array('root' => array('name' => '__root__', 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => 'b7828d2e7a83f0aa7b45ec8cae9ae68799626ee7', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('__root__' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => 'b7828d2e7a83f0aa7b45ec8cae9ae68799626ee7', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'barryvdh/composer-cleanup-plugin' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '80cceff45bfb85a0f49236537b1f1c928a1ee820', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../barryvdh/composer-cleanup-plugin', 'aliases' => array(0 => '0.1.x-dev'), 'dev_requirement' => \false), 'brick/math' => array('pretty_version' => '0.9.3', 'version' => '0.9.3.0', 'reference' => 'ca57d18f028f84f777b2168cd1911b0dee2343ae', 'type' => 'library', 'install_path' => __DIR__ . '/../brick/math', 'aliases' => array(), 'dev_requirement' => \false), 'carbonphp/carbon-doctrine-types' => array('pretty_version' => '2.1.0', 'version' => '2.1.0.0', 'reference' => '99f76ffa36cce3b70a4a6abce41dba15ca2e84cb', 'type' => 'library', 'install_path' => __DIR__ . '/../carbonphp/carbon-doctrine-types', 'aliases' => array(), 'dev_requirement' => \false), 'collizo4sky/persist-admin-notices-dismissal' => array('pretty_version' => '1.4.5', 'version' => '1.4.5.0', 'reference' => '163b868c98cf97ea15b4d7e1305e2d52c9242e7e', 'type' => 'library', 'install_path' => __DIR__ . '/../collizo4sky/persist-admin-notices-dismissal', 'aliases' => array(), 'dev_requirement' => \false), 'league/csv' => array('pretty_version' => '9.8.0', 'version' => '9.8.0.0', 'reference' => '9d2e0265c5d90f5dd601bc65ff717e05cec19b47', 'type' => 'library', 'install_path' => __DIR__ . '/../league/csv', 'aliases' => array(), 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => '2.73.0', 'version' => '2.73.0.0', 'reference' => '9228ce90e1035ff2f0db84b40ec2e023ed802075', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(), 'dev_requirement' => \false), 'pelago/emogrifier' => array('pretty_version' => 'v6.0.0', 'version' => '6.0.0.0', 'reference' => 'aa72d5407efac118f3896bcb995a2cba793df0ae', 'type' => 'library', 'install_path' => __DIR__ . '/../pelago/emogrifier', 'aliases' => array(), 'dev_requirement' => \false), 'psr/clock' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'e41a24703d4560fd0acb709162f73b8adfc3aa0d', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/clock', 'aliases' => array(), 'dev_requirement' => \false), 'psr/clock-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'sabberworm/php-css-parser' => array('pretty_version' => 'v8.9.0', 'version' => '8.9.0.0', 'reference' => 'd8e916507b88e389e26d4ab03c904a082aa66bb9', 'type' => 'library', 'install_path' => __DIR__ . '/../sabberworm/php-css-parser', 'aliases' => array(), 'dev_requirement' => \false), 'sniccowp/php-scoper-wordpress-excludes' => array('pretty_version' => '6.9.1', 'version' => '6.9.1.0', 'reference' => '94867711087d0efc3d361dbe068044e0124f4c0b', 'type' => 'library', 'install_path' => __DIR__ . '/../sniccowp/php-scoper-wordpress-excludes', 'aliases' => array(), 'dev_requirement' => \true), 'stripe/stripe-php' => array('pretty_version' => 'v16.6.0', 'version' => '16.6.0.0', 'reference' => 'd6de0a536f00b5c5c74f36b8f4d0d93b035499ff', 'type' => 'library', 'install_path' => __DIR__ . '/../stripe/stripe-php', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/css-selector' => array('pretty_version' => 'v5.4.45', 'version' => '5.4.45.0', 'reference' => '4f7f3c35fba88146b56d0025d20ace3f3901f097', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/css-selector', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v2.5.4', 'version' => '2.5.4.0', 'reference' => '605389f2a7e5625f273b53960dc46aeaf9c62918', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.33.0', 'version' => '1.33.0.0', 'reference' => '6d857f4d76bd4b343eac26d6b539585d2bc56493', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.33.0', 'version' => '1.33.0.0', 'reference' => '0cc9dd0f17f61d8131e7df6b84bd344899fe2608', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => 'v5.4.45', 'version' => '5.4.45.0', 'reference' => '98f26acc99341ca4bab345fb14d7b1d7cb825bed', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('pretty_version' => 'v2.5.4', 'version' => '2.5.4.0', 'reference' => '450d4172653f38818657022252f9d81be89ee9a8', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '2.3')))); -
wp-user-avatar/trunk/wp-user-avatar.php
r3473639 r3474509 4 4 * Plugin URI: https://profilepress.com 5 5 * Description: The modern WordPress membership and user profile plugin. 6 * Version: 4.16.1 16 * Version: 4.16.12 7 7 * Author: ProfilePress Membership Team 8 8 * Author URI: https://profilepress.com … … 14 14 15 15 define('PROFILEPRESS_SYSTEM_FILE_PATH', __FILE__); 16 define('PPRESS_VERSION_NUMBER', '4.16.1 1');16 define('PPRESS_VERSION_NUMBER', '4.16.12'); 17 17 18 18 if ( ! defined('PPRESS_STRIPE_API_VERSION')) {
Note: See TracChangeset
for help on using the changeset viewer.