Version Description
- Fixed critical bug causing checkout not to work.
- Fixed bug where plan with empty description caused checkout not to work.
- Enhancement: Added endpoint as class to My Account tabs.
Download this release
Release Info
Developer | Collizo4sky |
Plugin | WP User Avatar |
Version | 4.0.3 |
Comparing to | |
See all releases |
Code changes from version 4.0.2 to 4.0.3
- changelog.txt +5 -0
- languages/wp-user-avatar.pot +3 -3
- readme.txt +6 -1
- src/Membership/Controllers/CheckoutController.php +5 -1
- src/Membership/PaymentMethods/Stripe/PaymentHelpers.php +3 -1
- src/ShortcodeParser/MyAccount/MyAccountTag.php +1 -1
- third-party/vendor/autoload.php +1 -1
- third-party/vendor/composer/autoload_real.php +7 -7
- third-party/vendor/composer/autoload_static.php +4 -4
- third-party/vendor/composer/installed.php +1 -1
- third-party/vendor/scoper-autoload.php +2 -2
- wp-user-avatar.php +2 -2
changelog.txt
CHANGED
@@ -1,5 +1,10 @@
|
|
1 |
== Changelog ==
|
2 |
|
|
|
|
|
|
|
|
|
|
|
3 |
= 4.0.2 =
|
4 |
* Enhancement: Store admin bar menu now only display for active store.
|
5 |
* Fixed bug where Stripe scripts were loaded when not enabled.
|
1 |
== Changelog ==
|
2 |
|
3 |
+
= 4.0.3 =
|
4 |
+
* Fixed critical bug causing checkout not to work.
|
5 |
+
* Fixed bug where plan with empty description caused checkout not to work.
|
6 |
+
* Enhancement: Added endpoint as class to My Account tabs.
|
7 |
+
|
8 |
= 4.0.2 =
|
9 |
* Enhancement: Store admin bar menu now only display for active store.
|
10 |
* Fixed bug where Stripe scripts were loaded when not enabled.
|
languages/wp-user-avatar.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the same license as the ProfilePress package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: ProfilePress 4.0.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-user-avatar\n"
|
7 |
-
"POT-Creation-Date: 2022-08-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -14281,7 +14281,7 @@ msgstr ""
|
|
14281 |
|
14282 |
#: src/Membership/Controllers/CheckoutController.php:126
|
14283 |
#: src/Membership/Controllers/CheckoutController.php:173
|
14284 |
-
#: src/Membership/Controllers/CheckoutController.php:
|
14285 |
msgid "Please enter a plan ID."
|
14286 |
msgstr ""
|
14287 |
|
2 |
# This file is distributed under the same license as the ProfilePress package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: ProfilePress 4.0.3\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-user-avatar\n"
|
7 |
+
"POT-Creation-Date: 2022-08-02 22:18:02+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
14281 |
|
14282 |
#: src/Membership/Controllers/CheckoutController.php:126
|
14283 |
#: src/Membership/Controllers/CheckoutController.php:173
|
14284 |
+
#: src/Membership/Controllers/CheckoutController.php:384
|
14285 |
msgid "Please enter a plan ID."
|
14286 |
msgstr ""
|
14287 |
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: membership, ecommerce, user registration, user profile, stripe, login form
|
|
5 |
Requires at least: 5.3
|
6 |
Requires PHP: 7.1.8
|
7 |
Tested up to: 6.0
|
8 |
-
Stable tag: 4.0.
|
9 |
License: GPLv2 or later
|
10 |
|
11 |
WordPress paid membership plugin: accept payments, sell subscriptions, restrict content, user registration, frontend login form, user profile & member directory.
|
@@ -143,6 +143,11 @@ No. You can create and manage your forms, user profiles, and member directories
|
|
143 |
|
144 |
== Changelog ==
|
145 |
|
|
|
|
|
|
|
|
|
|
|
146 |
= 4.0.2 =
|
147 |
* Enhancement: Store admin bar menu now only display for active store.
|
148 |
* Fixed bug where Stripe scripts were loaded when not enabled.
|
5 |
Requires at least: 5.3
|
6 |
Requires PHP: 7.1.8
|
7 |
Tested up to: 6.0
|
8 |
+
Stable tag: 4.0.3
|
9 |
License: GPLv2 or later
|
10 |
|
11 |
WordPress paid membership plugin: accept payments, sell subscriptions, restrict content, user registration, frontend login form, user profile & member directory.
|
143 |
|
144 |
== Changelog ==
|
145 |
|
146 |
+
= 4.0.3 =
|
147 |
+
* Fixed critical bug causing checkout not to work.
|
148 |
+
* Fixed bug where plan with empty description caused checkout not to work.
|
149 |
+
* Enhancement: Added endpoint as class to My Account tabs.
|
150 |
+
|
151 |
= 4.0.2 =
|
152 |
* Enhancement: Store admin bar menu now only display for active store.
|
153 |
* Fixed bug where Stripe scripts were loaded when not enabled.
|
src/Membership/Controllers/CheckoutController.php
CHANGED
@@ -261,7 +261,9 @@ class CheckoutController extends BaseController
|
|
261 |
SubscriptionRepository::init()->updateColumn($subscription_id, 'parent_order_id', $order_id);
|
262 |
OrderRepository::init()->updateColumn($order_id, 'subscription_id', $subscription_id);
|
263 |
|
264 |
-
if ( ! $payment_method || !
|
|
|
|
|
265 |
|
266 |
$this->save_eu_vat_details($payment_method->id, $order_id);
|
267 |
|
@@ -295,6 +297,8 @@ class CheckoutController extends BaseController
|
|
295 |
|
296 |
$error_message = ppress_is_json($e->getMessage()) ? json_decode($e->getMessage(), true) : $e->getMessage();
|
297 |
|
|
|
|
|
298 |
wp_send_json_error(
|
299 |
$this->alert_message($error_message)
|
300 |
);
|
261 |
SubscriptionRepository::init()->updateColumn($subscription_id, 'parent_order_id', $order_id);
|
262 |
OrderRepository::init()->updateColumn($order_id, 'subscription_id', $subscription_id);
|
263 |
|
264 |
+
if ( ! $payment_method || ! $payment_method->get_id()) {
|
265 |
+
$payment_method = StoreGateway::get_instance();
|
266 |
+
}
|
267 |
|
268 |
$this->save_eu_vat_details($payment_method->id, $order_id);
|
269 |
|
297 |
|
298 |
$error_message = ppress_is_json($e->getMessage()) ? json_decode($e->getMessage(), true) : $e->getMessage();
|
299 |
|
300 |
+
ppress_log_error($error_message);
|
301 |
+
|
302 |
wp_send_json_error(
|
303 |
$this->alert_message($error_message)
|
304 |
);
|
src/Membership/PaymentMethods/Stripe/PaymentHelpers.php
CHANGED
@@ -125,11 +125,13 @@ class PaymentHelpers
|
|
125 |
$create_product_args['statement_descriptor'] = $statement_descriptor;
|
126 |
}
|
127 |
|
128 |
-
$create_product_args = apply_filters('ppress_stripe_create_product_args', $create_product_args, $subscription);
|
129 |
|
130 |
try {
|
131 |
APIClass::stripeClient()->products->create($create_product_args)->toArray();
|
132 |
} catch (\Exception $e) {
|
|
|
|
|
133 |
}
|
134 |
}
|
135 |
|
125 |
$create_product_args['statement_descriptor'] = $statement_descriptor;
|
126 |
}
|
127 |
|
128 |
+
$create_product_args = array_filter(apply_filters('ppress_stripe_create_product_args', $create_product_args, $subscription));
|
129 |
|
130 |
try {
|
131 |
APIClass::stripeClient()->products->create($create_product_args)->toArray();
|
132 |
} catch (\Exception $e) {
|
133 |
+
|
134 |
+
|
135 |
}
|
136 |
}
|
137 |
|
src/ShortcodeParser/MyAccount/MyAccountTag.php
CHANGED
@@ -566,7 +566,7 @@ class MyAccountTag extends FormProcessor
|
|
566 |
<div class="profilepress-myaccount-nav">
|
567 |
<?php foreach ($tabs as $key => $tab) :
|
568 |
?>
|
569 |
-
<a class="ppmyac-dashboard-item<?= self::is_endpoint($key) ? ' isactive' : ''; ?>" href="<?= $this->get_endpoint_url($key); ?>">
|
570 |
<i class="ppmyac-icons">
|
571 |
<?= isset($tab['icon']) ? $tab['icon'] : 'settings'; ?>
|
572 |
</i>
|
566 |
<div class="profilepress-myaccount-nav">
|
567 |
<?php foreach ($tabs as $key => $tab) :
|
568 |
?>
|
569 |
+
<a class="ppmyac-dashboard-item <?= $key ?><?= self::is_endpoint($key) ? ' isactive' : ''; ?>" href="<?= $this->get_endpoint_url($key); ?>">
|
570 |
<i class="ppmyac-icons">
|
571 |
<?= isset($tab['icon']) ? $tab['icon'] : 'settings'; ?>
|
572 |
</i>
|
third-party/vendor/autoload.php
CHANGED
@@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) {
|
|
9 |
|
10 |
require_once __DIR__ . '/composer/autoload_real.php';
|
11 |
|
12 |
-
return
|
9 |
|
10 |
require_once __DIR__ . '/composer/autoload_real.php';
|
11 |
|
12 |
+
return ComposerAutoloaderInita59c4be59362a92feeaacb80d1cc55d0::getLoader();
|
third-party/vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -24,19 +24,19 @@ class ComposerAutoloaderInit21f3b7fcfcad52e498861bdff49c8cbf
|
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
-
spl_autoload_register(array('
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
29 |
-
spl_autoload_unregister(array('
|
30 |
|
31 |
require __DIR__ . '/autoload_static.php';
|
32 |
-
call_user_func(\Composer\Autoload\
|
33 |
|
34 |
$loader->setClassMapAuthoritative(true);
|
35 |
$loader->register(true);
|
36 |
|
37 |
-
$includeFiles = \Composer\Autoload\
|
38 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
39 |
-
|
40 |
}
|
41 |
|
42 |
return $loader;
|
@@ -48,7 +48,7 @@ class ComposerAutoloaderInit21f3b7fcfcad52e498861bdff49c8cbf
|
|
48 |
* @param string $file
|
49 |
* @return void
|
50 |
*/
|
51 |
-
function
|
52 |
{
|
53 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
54 |
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInita59c4be59362a92feeaacb80d1cc55d0
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
+
spl_autoload_register(array('ComposerAutoloaderInita59c4be59362a92feeaacb80d1cc55d0', 'loadClassLoader'), true, true);
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
29 |
+
spl_autoload_unregister(array('ComposerAutoloaderInita59c4be59362a92feeaacb80d1cc55d0', 'loadClassLoader'));
|
30 |
|
31 |
require __DIR__ . '/autoload_static.php';
|
32 |
+
call_user_func(\Composer\Autoload\ComposerStaticInita59c4be59362a92feeaacb80d1cc55d0::getInitializer($loader));
|
33 |
|
34 |
$loader->setClassMapAuthoritative(true);
|
35 |
$loader->register(true);
|
36 |
|
37 |
+
$includeFiles = \Composer\Autoload\ComposerStaticInita59c4be59362a92feeaacb80d1cc55d0::$files;
|
38 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
39 |
+
composerRequirea59c4be59362a92feeaacb80d1cc55d0($fileIdentifier, $file);
|
40 |
}
|
41 |
|
42 |
return $loader;
|
48 |
* @param string $file
|
49 |
* @return void
|
50 |
*/
|
51 |
+
function composerRequirea59c4be59362a92feeaacb80d1cc55d0($fileIdentifier, $file)
|
52 |
{
|
53 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
54 |
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
third-party/vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
|
@@ -563,9 +563,9 @@ class ComposerStaticInit21f3b7fcfcad52e498861bdff49c8cbf
|
|
563 |
public static function getInitializer(ClassLoader $loader)
|
564 |
{
|
565 |
return \Closure::bind(function () use ($loader) {
|
566 |
-
$loader->prefixLengthsPsr4 =
|
567 |
-
$loader->prefixDirsPsr4 =
|
568 |
-
$loader->classMap =
|
569 |
|
570 |
}, null, ClassLoader::class);
|
571 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInita59c4be59362a92feeaacb80d1cc55d0
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
|
563 |
public static function getInitializer(ClassLoader $loader)
|
564 |
{
|
565 |
return \Closure::bind(function () use ($loader) {
|
566 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInita59c4be59362a92feeaacb80d1cc55d0::$prefixLengthsPsr4;
|
567 |
+
$loader->prefixDirsPsr4 = ComposerStaticInita59c4be59362a92feeaacb80d1cc55d0::$prefixDirsPsr4;
|
568 |
+
$loader->classMap = ComposerStaticInita59c4be59362a92feeaacb80d1cc55d0::$classMap;
|
569 |
|
570 |
}, null, ClassLoader::class);
|
571 |
}
|
third-party/vendor/composer/installed.php
CHANGED
@@ -2,4 +2,4 @@
|
|
2 |
|
3 |
namespace ProfilePressVendor;
|
4 |
|
5 |
-
return array('root' => array('name' => '__root__', 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '
|
2 |
|
3 |
namespace ProfilePressVendor;
|
4 |
|
5 |
+
return array('root' => array('name' => '__root__', 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '09323ffe6c0408dc5d978b904da6bfb54758db02', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('__root__' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '09323ffe6c0408dc5d978b904da6bfb54758db02', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'barryvdh/composer-cleanup-plugin' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '74d878666436c99f5b671b90312e85479afeedb0', '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), 'collizo4sky/persist-admin-notices-dismissal' => array('pretty_version' => '1.4.4', 'version' => '1.4.4.0', 'reference' => '900739eb6b0ec0210465f5983a6d4e0e420289e4', 'type' => 'library', 'install_path' => __DIR__ . '/../collizo4sky/persist-admin-notices-dismissal', 'aliases' => array(), 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => '2.60.0', 'version' => '2.60.0.0', 'reference' => '00a259ae02b003c563158b54fb6743252b638ea6', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(), 'dev_requirement' => \false), 'pelago/emogrifier' => array('pretty_version' => 'v3.1.0', 'version' => '3.1.0.0', 'reference' => 'f6a5c7d44612d86c3901c93f1592f5440e6b2cd8', 'type' => 'library', 'install_path' => __DIR__ . '/../pelago/emogrifier', 'aliases' => array(), 'dev_requirement' => \false), 'sniccowp/php-scoper-wordpress-excludes' => array('pretty_version' => '6.0.0', 'version' => '6.0.0.0', 'reference' => '9fe5eeb044f7837b32df274857a91a635052fa49', 'type' => 'library', 'install_path' => __DIR__ . '/../sniccowp/php-scoper-wordpress-excludes', 'aliases' => array(), 'dev_requirement' => \true), 'stripe/stripe-php' => array('pretty_version' => 'v7.128.0', 'version' => '7.128.0.0', 'reference' => 'c704949c49b72985c76cc61063aa26fefbd2724e', 'type' => 'library', 'install_path' => __DIR__ . '/../stripe/stripe-php', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/css-selector' => array('pretty_version' => 'v4.4.44', 'version' => '4.4.44.0', 'reference' => 'bd0a6737e48de45b4b0b7b6fc98c78404ddceaed', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/css-selector', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => 'cfa0ae98841b9e461207c13ab093d76b0fa7bace', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => 'v4.4.44', 'version' => '4.4.44.0', 'reference' => 'af947fefc306cec6ea5a1f6160c7e305a71f2493', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('pretty_version' => 'v1.1.13', 'version' => '1.1.13.0', 'reference' => '7462e5c4cb8b9cd152f992e8f10963b5641921f6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0'))));
|
third-party/vendor/scoper-autoload.php
CHANGED
@@ -6,8 +6,8 @@ $loader = require_once __DIR__.'/autoload.php';
|
|
6 |
|
7 |
// Exposed classes. For more information see:
|
8 |
// https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#exposing-classes
|
9 |
-
if (!class_exists('
|
10 |
-
spl_autoload_call('ProfilePressVendor\
|
11 |
}
|
12 |
if (!class_exists('PAnD', false) && !interface_exists('PAnD', false) && !trait_exists('PAnD', false)) {
|
13 |
spl_autoload_call('ProfilePressVendor\PAnD');
|
6 |
|
7 |
// Exposed classes. For more information see:
|
8 |
// https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#exposing-classes
|
9 |
+
if (!class_exists('ComposerAutoloaderInita59c4be59362a92feeaacb80d1cc55d0', false) && !interface_exists('ComposerAutoloaderInita59c4be59362a92feeaacb80d1cc55d0', false) && !trait_exists('ComposerAutoloaderInita59c4be59362a92feeaacb80d1cc55d0', false)) {
|
10 |
+
spl_autoload_call('ProfilePressVendor\ComposerAutoloaderInita59c4be59362a92feeaacb80d1cc55d0');
|
11 |
}
|
12 |
if (!class_exists('PAnD', false) && !interface_exists('PAnD', false) && !trait_exists('PAnD', false)) {
|
13 |
spl_autoload_call('ProfilePressVendor\PAnD');
|
wp-user-avatar.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: ProfilePress
|
4 |
* Plugin URI: https://profilepress.com
|
5 |
* Description: The modern WordPress membership and user profile plugin.
|
6 |
-
* Version: 4.0.
|
7 |
* Author: ProfilePress Membership Team
|
8 |
* Author URI: https://profilepress.com
|
9 |
* Text Domain: wp-user-avatar
|
@@ -13,7 +13,7 @@
|
|
13 |
defined('ABSPATH') or die("No script kiddies please!");
|
14 |
|
15 |
define('PROFILEPRESS_SYSTEM_FILE_PATH', __FILE__);
|
16 |
-
define('PPRESS_VERSION_NUMBER', '4.0.
|
17 |
|
18 |
if ( ! defined('PPRESS_STRIPE_API_VERSION')) {
|
19 |
define('PPRESS_STRIPE_API_VERSION', '2020-08-27');
|
3 |
* Plugin Name: ProfilePress
|
4 |
* Plugin URI: https://profilepress.com
|
5 |
* Description: The modern WordPress membership and user profile plugin.
|
6 |
+
* Version: 4.0.3
|
7 |
* Author: ProfilePress Membership Team
|
8 |
* Author URI: https://profilepress.com
|
9 |
* Text Domain: wp-user-avatar
|
13 |
defined('ABSPATH') or die("No script kiddies please!");
|
14 |
|
15 |
define('PROFILEPRESS_SYSTEM_FILE_PATH', __FILE__);
|
16 |
+
define('PPRESS_VERSION_NUMBER', '4.0.3');
|
17 |
|
18 |
if ( ! defined('PPRESS_STRIPE_API_VERSION')) {
|
19 |
define('PPRESS_STRIPE_API_VERSION', '2020-08-27');
|