s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) - Version 201225

Version Description

= v160801 =

(Maintenance Release) Upgrade immediately.

Download this release

Release Info

Developer clavaque
Plugin Icon 128x128 s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members)
Version 201225
Comparing to
See all releases

Code changes from version 200301 to 201225

readme.txt CHANGED
@@ -1,11 +1,11 @@
1
  === s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
2
 
3
- Version: 200301
4
- Stable tag: 200301
5
- Tested up to: 5.4-beta2
6
  Requires at least: 4.2
7
  Requires PHP: 5.6.2
8
- Tested up to PHP: 7.2.19-0ubuntu0.18.10.1
9
  License: GNU General Public License v2 or later.
10
  Contributors: WebSharks, JasWSInc, raamdev, clavaque
11
  Author: WP Sharks
@@ -137,6 +137,26 @@ Released under the terms of the [GNU General Public License](http://www.gnu.org/
137
 
138
  == Changelog ==
139
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  = v200301 =
141
 
142
  - (s2Member Pro) **Enhancement:** Added "Powered by Stripe" to Stripe pro-form's payment card field. Kudos to Josh, see [post 6716](https://f.wpsharks.com/t/6716).
1
  === s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
2
 
3
+ Version: 201225
4
+ Stable tag: 201225
5
+ Tested up to: 5.7
6
  Requires at least: 4.2
7
  Requires PHP: 5.6.2
8
+ Tested up to PHP: 7.4.6
9
  License: GNU General Public License v2 or later.
10
  Contributors: WebSharks, JasWSInc, raamdev, clavaque
11
  Author: WP Sharks
137
 
138
  == Changelog ==
139
 
140
+ = v201225 =
141
+
142
+ - (s2Member Framework) **Bug Fix**: View Password icon WP's login page was not displaying correctly. Kudos to Beee4life for reporting it. See [issue #1187](https://github.com/wpsharks/s2member/issues/1187)
143
+
144
+ - (s2Member Framework and Pro) **Enhancement**: Refactored PHP's deprecated _create_function_ with anonymous functions. Kudos to Berry for reporting it, see [post 6069](https://f.wpsharks.com/t/6069)
145
+
146
+ - (s2Member Framework) **Bug Fix**: Added a check for empty return variable before trying to use it in paypal-utilities.inc.php.
147
+
148
+ - (s2Member Framework) **Bug Fix**: Added checks for undefined indexes before trying to use them in paypal-return-in-subscr-or-wa-w-level.inc.php.
149
+
150
+ - (s2Member Framework) **Bug Fix:** Added a check for undefined index before using it to define a couple of s2 constants. Kudos to Berry for reporting it, see [post 8181](https://f.wpsharks.com/t/8181/)
151
+
152
+ - (s2Member Pro) **Bug Fix**: s2's payment notification when creating a Stripe subscription, was being sent twice. Added a check to ignore the webhook for the subscription's on-session first payment; s2's webhook endpoint is for off-session events.
153
+
154
+ - (s2Member Framework) **Enhancement**: Added a new hook for the payment notification on subscription creation or buy now payments.
155
+
156
+ - (s2Member Pro) **Bug Fix**: Stripe paid trials were accumulating on failed payment attempts, causing a larger charge when it finally succeeded. Kudos to Alan for his help through the many attempts to fix this one, see [post 7002](https://f.wpsharks.com/t/7002).
157
+
158
+ - (s2Member Pro) **Enhancement**: Stripe duplicate payments were happening randomly to a few site owners, apparently from bad communication between their server and Stripe's. Added idempotency to prevent duplicates. Kudos to Alan and everyone in the forum that reported and gave details on this behavior, see [post 7002](https://f.wpsharks.com/t/7002)
159
+
160
  = v200301 =
161
 
162
  - (s2Member Pro) **Enhancement:** Added "Powered by Stripe" to Stripe pro-form's payment card field. Kudos to Josh, see [post 6716](https://f.wpsharks.com/t/6716).
s2member.php CHANGED
@@ -20,8 +20,8 @@
20
  */
21
  /* -- This section for WordPress parsing. ------------------------------------------------------------------------------
22
 
23
- Version: 200301
24
- Stable tag: 200301
25
 
26
  SSL Compatible: yes
27
  bbPress Compatible: yes
@@ -36,11 +36,11 @@ PayPal Pro Compatible: yes w/s2Member Pro
36
  Authorize.Net Compatible: yes w/s2Member Pro
37
  ClickBank Compatible: yes w/s2Member Pro
38
 
39
- Tested up to: 5.4-beta2
40
  Requires at least: 4.2
41
 
42
  Requires PHP: 5.6.2
43
- Tested up to PHP: 7.2.19-0ubuntu0.18.10.1
44
 
45
  Copyright: © 2009 WP Sharks
46
  License: GNU General Public License
@@ -77,7 +77,7 @@ if(!defined('WPINC')) // MUST have WordPress.
77
  *
78
  * @var string
79
  */
80
- ${__FILE__}['tmp'] = '200301'; //version//
81
  if(!defined('WS_PLUGIN__S2MEMBER_VERSION'))
82
  define('WS_PLUGIN__S2MEMBER_VERSION', ${__FILE__}['tmp']);
83
  /**
@@ -110,7 +110,7 @@ if(!defined('WS_PLUGIN__S2MEMBER_MIN_WP_VERSION'))
110
  *
111
  * @var string
112
  */
113
- ${__FILE__}['tmp'] = '200301'; //version//
114
  if(!defined('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION'))
115
  define('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION', ${__FILE__}['tmp']);
116
  /*
@@ -174,11 +174,15 @@ else if(is_admin()) // Admin compatibility errors.
174
  {
175
  if(!version_compare(PHP_VERSION, WS_PLUGIN__S2MEMBER_MIN_PHP_VERSION, '>='))
176
  {
177
- add_action('all_admin_notices', create_function('', 'echo \'<div class="error fade"><p>You need PHP v\' . WS_PLUGIN__S2MEMBER_MIN_PHP_VERSION . \'+ to use the s2Member plugin.</p></div>\';'));
 
 
178
  }
179
  else if(!version_compare(get_bloginfo('version'), WS_PLUGIN__S2MEMBER_MIN_WP_VERSION, '>='))
180
  {
181
- add_action('all_admin_notices', create_function('', 'echo \'<div class="error fade"><p>You need WordPress v\' . WS_PLUGIN__S2MEMBER_MIN_WP_VERSION . \'+ to use the s2Member plugin.</p></div>\';'));
 
 
182
  }
183
  }
184
  unset(${__FILE__}); // Housekeeping.
20
  */
21
  /* -- This section for WordPress parsing. ------------------------------------------------------------------------------
22
 
23
+ Version: 201225
24
+ Stable tag: 201225
25
 
26
  SSL Compatible: yes
27
  bbPress Compatible: yes
36
  Authorize.Net Compatible: yes w/s2Member Pro
37
  ClickBank Compatible: yes w/s2Member Pro
38
 
39
+ Tested up to: 5.7
40
  Requires at least: 4.2
41
 
42
  Requires PHP: 5.6.2
43
+ Tested up to PHP: 7.4.6
44
 
45
  Copyright: © 2009 WP Sharks
46
  License: GNU General Public License
77
  *
78
  * @var string
79
  */
80
+ ${__FILE__}['tmp'] = '201225'; //version//
81
  if(!defined('WS_PLUGIN__S2MEMBER_VERSION'))
82
  define('WS_PLUGIN__S2MEMBER_VERSION', ${__FILE__}['tmp']);
83
  /**
110
  *
111
  * @var string
112
  */
113
+ ${__FILE__}['tmp'] = '201225'; //version//
114
  if(!defined('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION'))
115
  define('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION', ${__FILE__}['tmp']);
116
  /*
174
  {
175
  if(!version_compare(PHP_VERSION, WS_PLUGIN__S2MEMBER_MIN_PHP_VERSION, '>='))
176
  {
177
+ add_action('all_admin_notices', function(){
178
+ echo '<div class="error fade"><p>You need PHP v' . WS_PLUGIN__S2MEMBER_MIN_PHP_VERSION . '+ to use the s2Member plugin.</p></div>';
179
+ });
180
  }
181
  else if(!version_compare(get_bloginfo('version'), WS_PLUGIN__S2MEMBER_MIN_WP_VERSION, '>='))
182
  {
183
+ add_action('all_admin_notices', function(){
184
+ echo '<div class="error fade"><p>You need WordPress v' . WS_PLUGIN__S2MEMBER_MIN_WP_VERSION . '+ to use the s2Member plugin.</p></div>';
185
+ });
186
  }
187
  }
188
  unset(${__FILE__}); // Housekeeping.
src/includes/classes/constants.inc.php CHANGED
@@ -545,7 +545,7 @@ if(!class_exists('c_ws_plugin__s2member_constants'))
545
  * @see http://codex.wordpress.org/Function_Reference/get_user_option get_user_option()
546
  */
547
  if(!defined('S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME'))
548
- define ('S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME', ($c[] = (($user && (int)@$paid_registration_times['level']) ? (int)$paid_registration_times['level'] : 0)));
549
 
550
  /**
551
  * The number of days the current User has been a paid Member.
@@ -597,7 +597,7 @@ if(!class_exists('c_ws_plugin__s2member_constants'))
597
  * @see http://codex.wordpress.org/Function_Reference/get_user_option get_user_option()
598
  */
599
  if(!defined('S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS'))
600
- define ('S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS', ($c[] = (($user && (int)@$paid_registration_times['level']) ? (int)floor((strtotime('now') - (int)$paid_registration_times['level']) / 86400) : 0)));
601
 
602
  /**
603
  * The number of days the current User has had an account, period.
545
  * @see http://codex.wordpress.org/Function_Reference/get_user_option get_user_option()
546
  */
547
  if(!defined('S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME'))
548
+ define ('S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME', ($c[] = (($user && isset($paid_registration_times['level']) && !empty((int)$paid_registration_times['level'])) ? (int)$paid_registration_times['level'] : 0)));
549
 
550
  /**
551
  * The number of days the current User has been a paid Member.
597
  * @see http://codex.wordpress.org/Function_Reference/get_user_option get_user_option()
598
  */
599
  if(!defined('S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS'))
600
+ define ('S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS', ($c[] = (($user && isset($paid_registration_times['level']) && !empty((int)$paid_registration_times['level'])) ? (int)floor((strtotime('now') - (int)$paid_registration_times['level']) / 86400) : 0)));
601
 
602
  /**
603
  * The number of days the current User has had an account, period.
src/includes/classes/login-customizations.inc.php CHANGED
@@ -108,7 +108,8 @@ if(!class_exists('c_ws_plugin__s2member_login_customizations'))
108
 
109
  $a[] = 'body, body * { font-size:'.$GLOBALS['WS_PLUGIN__']['s2member']['o']['login_reg_font_size'].$i.'; }';
110
  $a[] = 'body, body * { font-family:'.$GLOBALS['WS_PLUGIN__']['s2member']['o']['login_reg_font_family'].$i.'; }';
111
-
 
112
  $a[] = 'div#login { width: 100% '.$i.'; max-width:'.$GLOBALS['WS_PLUGIN__']['s2member']['o']['login_reg_logo_src_width'].'px'.$i.'; }';
113
  $a[] = 'div#login h1 a { background:url('.$GLOBALS['WS_PLUGIN__']['s2member']['o']['login_reg_logo_src'].') no-repeat top center'.$i.'; background-size:contain'.$i.'; }';
114
  $a[] = 'div#login h1 a { display:block'.$i.'; width:100%'.$i.'; height:'.$GLOBALS['WS_PLUGIN__']['s2member']['o']['login_reg_logo_src_height'].'px'.$i.'; }';
108
 
109
  $a[] = 'body, body * { font-size:'.$GLOBALS['WS_PLUGIN__']['s2member']['o']['login_reg_font_size'].$i.'; }';
110
  $a[] = 'body, body * { font-family:'.$GLOBALS['WS_PLUGIN__']['s2member']['o']['login_reg_font_family'].$i.'; }';
111
+ $a[] = '.dashicons { font-family:dashicons'.$i.'; }';
112
+
113
  $a[] = 'div#login { width: 100% '.$i.'; max-width:'.$GLOBALS['WS_PLUGIN__']['s2member']['o']['login_reg_logo_src_width'].'px'.$i.'; }';
114
  $a[] = 'div#login h1 a { background:url('.$GLOBALS['WS_PLUGIN__']['s2member']['o']['login_reg_logo_src'].') no-repeat top center'.$i.'; background-size:contain'.$i.'; }';
115
  $a[] = 'div#login h1 a { display:block'.$i.'; width:100%'.$i.'; height:'.$GLOBALS['WS_PLUGIN__']['s2member']['o']['login_reg_logo_src_height'].'px'.$i.'; }';
src/includes/classes/paypal-notify-in-subscr-or-wa-w-level.inc.php CHANGED
@@ -797,6 +797,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
797
  }
798
  $paypal['s2member_log'][] = 'Payment Notification Emails have been processed.';
799
  }
 
 
 
800
  }
801
  else if($processing // Process a payment now? Special cases for web_accept and/or Proxy requests with `subscr-signup-as-subscr-payment`.
802
  && (preg_match('/^web_accept$/i', $paypal['txn_type']) || ($_REQUEST['s2member_paypal_proxy'] && preg_match('/subscr-signup-as-subscr-payment/', $_REQUEST['s2member_paypal_proxy_use']) && $paypal['txn_id'] && $paypal['mc_gross'] > 0))
797
  }
798
  $paypal['s2member_log'][] = 'Payment Notification Emails have been processed.';
799
  }
800
+ foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
801
+ do_action('ws_plugin__s2member_during_paypal_notify_during_subscr_or_wa_payment', get_defined_vars());
802
+ unset($__refs, $__v);
803
  }
804
  else if($processing // Process a payment now? Special cases for web_accept and/or Proxy requests with `subscr-signup-as-subscr-payment`.
805
  && (preg_match('/^web_accept$/i', $paypal['txn_type']) || ($_REQUEST['s2member_paypal_proxy'] && preg_match('/subscr-signup-as-subscr-payment/', $_REQUEST['s2member_paypal_proxy_use']) && $paypal['txn_id'] && $paypal['mc_gross'] > 0))
src/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php CHANGED
@@ -95,8 +95,8 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_subscr_or_wa_w_level'))
95
  {
96
  $tracking_properties = TRUE; // Yes, these tracking properties ARE being set here.
97
 
98
- $paypal['period1'] = (preg_match('/^[1-9]/', $paypal['period1'])) ? $paypal['period1'] : '0 D'; // Defaults to '0 D' (zero days).
99
- $paypal['mc_amount1'] = (strlen($paypal['mc_amount1']) && $paypal['mc_amount1'] > 0) ? $paypal['mc_amount1'] : '0.00';
100
 
101
  if(preg_match('/^web_accept$/i', $paypal['txn_type']) /* Conversions for Lifetime & Fixed-Term sales. */)
102
  {
@@ -107,7 +107,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_subscr_or_wa_w_level'))
107
  $paypal['initial'] = (strlen($paypal['mc_amount1']) && preg_match('/^[1-9]/', $paypal['period1'])) ? $paypal['mc_amount1'] : $paypal['mc_amount3'];
108
  $paypal['regular'] = $paypal['mc_amount3']; // This is the Regular Payment Amount that is charged to the Customer. Always required by PayPal.
109
  $paypal['regular_term'] = $paypal['period3']; // This is just set to keep a standard; this way both initial_term & regular_term are available.
110
- $paypal['recurring'] = ($paypal['recurring']) ? $paypal['mc_amount3'] : '0'; // If non-recurring, this should be zero, otherwise Regular.
111
  $paypal['currency'] = strtoupper($paypal['mc_currency']); // Normalize input currency.
112
  $paypal['currency_symbol'] = c_ws_plugin__s2member_utils_cur::symbol($paypal['currency']);
113
 
95
  {
96
  $tracking_properties = TRUE; // Yes, these tracking properties ARE being set here.
97
 
98
+ $paypal['period1'] = (isset($paypal['period1']) && preg_match('/^[1-9]/', $paypal['period1'])) ? $paypal['period1'] : '0 D'; // Defaults to '0 D' (zero days).
99
+ $paypal['mc_amount1'] = (isset($paypal['mc_amount1']) && $paypal['mc_amount1'] > 0) ? $paypal['mc_amount1'] : '0.00';
100
 
101
  if(preg_match('/^web_accept$/i', $paypal['txn_type']) /* Conversions for Lifetime & Fixed-Term sales. */)
102
  {
107
  $paypal['initial'] = (strlen($paypal['mc_amount1']) && preg_match('/^[1-9]/', $paypal['period1'])) ? $paypal['mc_amount1'] : $paypal['mc_amount3'];
108
  $paypal['regular'] = $paypal['mc_amount3']; // This is the Regular Payment Amount that is charged to the Customer. Always required by PayPal.
109
  $paypal['regular_term'] = $paypal['period3']; // This is just set to keep a standard; this way both initial_term & regular_term are available.
110
+ $paypal['recurring'] = isset($paypal['recurring']) ? $paypal['mc_amount3'] : '0'; // If non-recurring, this should be zero, otherwise Regular.
111
  $paypal['currency'] = strtoupper($paypal['mc_currency']); // Normalize input currency.
112
  $paypal['currency_symbol'] = c_ws_plugin__s2member_utils_cur::symbol($paypal['currency']);
113
 
src/includes/classes/paypal-utilities.inc.php CHANGED
@@ -61,9 +61,11 @@ if(!class_exists("c_ws_plugin__s2member_paypal_utilities"))
61
  {
62
  foreach(preg_split("/[\r\n]+/", preg_replace("/^SUCCESS/i", "", $response)) as $varline)
63
  {
64
- list($key, $value) = preg_split("/\=/", $varline, 2);
65
- if(strlen($key = trim($key)) && strlen($value = trim($value)))
66
- $postvars[$key] = trim(stripslashes(urldecode($value)));
 
 
67
  }
68
  $postvars = self::paypal_postvars_back_compat($postvars); // From verified data.
69
 
61
  {
62
  foreach(preg_split("/[\r\n]+/", preg_replace("/^SUCCESS/i", "", $response)) as $varline)
63
  {
64
+ if (!empty($varline)) {
65
+ list($key, $value) = preg_split("/\=/", $varline, 2);
66
+ if (strlen($key = trim($key)) && strlen($value = trim($value)))
67
+ $postvars[$key] = trim(stripslashes(urldecode($value)));
68
+ }
69
  }
70
  $postvars = self::paypal_postvars_back_compat($postvars); // From verified data.
71
 
src/includes/menu-pages/paypal-buttons.inc.php CHANGED
@@ -505,7 +505,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_paypal_buttons"))
505
  echo '<li><code>lang=""</code> Optional 5 character Button Language Code <em>(ake: Locale Code—ex: <code>en_US</code>)</em>. This controls the interface language of the PayPal Button itself. If unspecified, the language defaults to English (i.e., <code>en_US</code>; or to the value set by an optional MO translation file; which translates s2Member overall). See <a href="http://s2member.com/r/paypal-locale-codes/" target="_blank" rel="external">this list of possible Locale Codes</a>.</li>' . "\n";
506
  echo '<li><code>lc=""</code> Optional 2 character Country/Locale Code <em>(i.e., Country Code—ex: <code>US</code>)</em>. This controls the interface language used at PayPal during checkout. If unspecified, the language is determined by PayPal when possible, defaulting to <code>US</code> <em>english</em> when not possible. See <a href="http://s2member.com/r/paypal-locale-codes/" target="_blank" rel="external">this list of possible Country Codes</a>. Not valid when <code>cancel="1"</code>.</li>' . "\n";
507
  echo '<li><code>level="1"</code> Membership Level [1-4] <em>(or, up to the number of configured Levels)</em>. Only valid for Buttons providing paid Membership Level Access.' . ((is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && !is_main_site ()) ? '' : ' Or, with Independent Custom Capabilities this MUST be set to <code>level="*"</code>, and <code>ccaps=""</code> must NOT be empty <em>(i.e., <code>level="*" ccaps="music,videos"</code>)</em>.') . '</li>' . "\n";
508
- echo '<li><code>modify="0"</code> Modification directive. Only valid w/ Membership Level Access. Possible values: <code>0</code> = allows Customers to only create a new Subscription. Values <code>1</code> and <code>2</code> are <a href="https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/Appx-websitestandard-htmlvariables/#deprecated-variables" target="_blank" rel="external">no longer valid</a>.</li>' . "\n";
509
  echo '<li><code>ns="0"</code> The <em>no_shipping</em> directive. Possible values: <code>0</code> = prompt for an address, but do not require one, <code>1</code> = do not prompt for a shipping address, <code>2</code> = prompt for an address, and require one. Not valid when <code>cancel="1"</code>.</li>' . "\n";
510
  echo '<li><code>output="button"</code> Output Type. Possible values: <code>button</code> = PayPal Button w/hidden inputs, <code>anchor</code> = PayPal Button ( &lt;a&gt; anchor tag ) URL w/ ?query string, <code>url</code> = raw URL w/ ?query string.</li>' . "\n";
511
  echo '<li><code>ps="paypal"</code> PayPal checkout Page Style. Not valid when <code>cancel="1"</code>.</li>' . "\n";
505
  echo '<li><code>lang=""</code> Optional 5 character Button Language Code <em>(ake: Locale Code—ex: <code>en_US</code>)</em>. This controls the interface language of the PayPal Button itself. If unspecified, the language defaults to English (i.e., <code>en_US</code>; or to the value set by an optional MO translation file; which translates s2Member overall). See <a href="http://s2member.com/r/paypal-locale-codes/" target="_blank" rel="external">this list of possible Locale Codes</a>.</li>' . "\n";
506
  echo '<li><code>lc=""</code> Optional 2 character Country/Locale Code <em>(i.e., Country Code—ex: <code>US</code>)</em>. This controls the interface language used at PayPal during checkout. If unspecified, the language is determined by PayPal when possible, defaulting to <code>US</code> <em>english</em> when not possible. See <a href="http://s2member.com/r/paypal-locale-codes/" target="_blank" rel="external">this list of possible Country Codes</a>. Not valid when <code>cancel="1"</code>.</li>' . "\n";
507
  echo '<li><code>level="1"</code> Membership Level [1-4] <em>(or, up to the number of configured Levels)</em>. Only valid for Buttons providing paid Membership Level Access.' . ((is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && !is_main_site ()) ? '' : ' Or, with Independent Custom Capabilities this MUST be set to <code>level="*"</code>, and <code>ccaps=""</code> must NOT be empty <em>(i.e., <code>level="*" ccaps="music,videos"</code>)</em>.') . '</li>' . "\n";
508
+ echo '<li><code>modify="0"</code> Modification directive. Only valid w/ Membership Level Access. Possible values: <code>0</code> = allows Customers to only create a new Subscription. Values <code>1</code> and <code>2</code> are <a href="https://developer.paypal.com/docs/paypal-payments-standard/integration-guide/Appx-websitestandard-htmlvariables/#deprecated-variables" target="_blank" rel="external">no longer valid</a>.</li>' . "\n";
509
  echo '<li><code>ns="0"</code> The <em>no_shipping</em> directive. Possible values: <code>0</code> = prompt for an address, but do not require one, <code>1</code> = do not prompt for a shipping address, <code>2</code> = prompt for an address, and require one. Not valid when <code>cancel="1"</code>.</li>' . "\n";
510
  echo '<li><code>output="button"</code> Output Type. Possible values: <code>button</code> = PayPal Button w/hidden inputs, <code>anchor</code> = PayPal Button ( &lt;a&gt; anchor tag ) URL w/ ?query string, <code>url</code> = raw URL w/ ?query string.</li>' . "\n";
511
  echo '<li><code>ps="paypal"</code> PayPal checkout Page Style. Not valid when <code>cancel="1"</code>.</li>' . "\n";
src/includes/translations/s2member.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: 200301\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
7
- "POT-Creation-Date: 2020-03-01 21:47:22+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -20,7 +20,7 @@ msgstr ""
20
  #: pro/src/includes/classes/coupons.inc.php:241
21
  #: pro/src/includes/classes/gateways/authnet/authnet-utilities.inc.php:692
22
  #: pro/src/includes/classes/gateways/paypal/paypal-utilities.inc.php:312
23
- #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:974
24
  msgctxt "s2member-front percentage-symbol"
25
  msgid "%"
26
  msgstr ""
@@ -1310,17 +1310,17 @@ msgstr ""
1310
  #. with `ws_plugin__s2member_paypal_payflow_api_response`.
1311
  #: pro/src/includes/classes/gateways/authnet/authnet-utilities.inc.php:96
1312
  #: pro/src/includes/classes/gateways/authnet/authnet-utilities.inc.php:325
1313
- #: src/includes/classes/paypal-utilities.inc.php:340
1314
- #: src/includes/classes/paypal-utilities.inc.php:348
1315
  msgctxt "s2member-front"
1316
  msgid "Error #%1$s. %2$s."
1317
  msgstr ""
1318
 
1319
  #: pro/src/includes/classes/gateways/authnet/authnet-utilities.inc.php:99
1320
  #: pro/src/includes/classes/gateways/authnet/authnet-utilities.inc.php:328
1321
- #: src/includes/classes/paypal-utilities.inc.php:214
1322
- #: src/includes/classes/paypal-utilities.inc.php:342
1323
- #: src/includes/classes/paypal-utilities.inc.php:350
1324
  msgctxt "s2member-front"
1325
  msgid "Error. Please contact Support for assistance."
1326
  msgstr ""
@@ -1571,48 +1571,48 @@ msgctxt "s2member-front"
1571
  msgid "Error: <strong>prepaid</strong> cards not accepted at this time. Please use a different card and try again."
1572
  msgstr ""
1573
 
1574
- #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:747
1575
  msgctxt "s2member-front"
1576
  msgid "Error code: <code>%1$s</code>. %2$s."
1577
  msgstr ""
1578
 
1579
- #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:750
1580
  msgctxt "s2member-front"
1581
  msgid "Invalid parameters to Stripe; please contact the site owner."
1582
  msgstr ""
1583
 
1584
- #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:753
1585
  msgctxt "s2member-front"
1586
  msgid "Invalid Stripe API keys; please contact the site owner."
1587
  msgstr ""
1588
 
1589
- #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:756
1590
  msgctxt "s2member-front"
1591
  msgid "Network communication failure with Stripe; please try again."
1592
  msgstr ""
1593
 
1594
- #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:759
1595
  msgctxt "s2member-front"
1596
  msgid "Stripe API error; please try again."
1597
  msgstr ""
1598
 
1599
- #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:761
1600
  msgctxt "s2member-front"
1601
  msgid "Stripe error; please try again."
1602
  msgstr ""
1603
 
1604
- #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:1350
1605
- #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:1399
1606
  msgctxt "s2member-front"
1607
  msgid "Action required: 3D Secure authorization."
1608
  msgstr ""
1609
 
1610
- #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:1355
1611
  msgctxt "s2member-front"
1612
  msgid "Please try again with a different card."
1613
  msgstr ""
1614
 
1615
- #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:1404
1616
  msgctxt "s2member-front"
1617
  msgid "The payment failed, please try again with a different card."
1618
  msgstr ""
@@ -4460,23 +4460,23 @@ msgstr ""
4460
  #. by PayPal. Replace `%2$s` and `%3$s` with: `Unable to process, please try
4461
  #. again`, or something to that affect. Or, if you prefer, you could Filter
4462
  #. ``$response["__error"]`` with `ws_plugin__s2member_paypal_api_response`.
4463
- #: src/includes/classes/paypal-utilities.inc.php:211
4464
  msgctxt "s2member-front"
4465
  msgid "Error #%1$s. %2$s. %3$s."
4466
  msgstr ""
4467
 
4468
- #: src/includes/classes/paypal-utilities.inc.php:258
4469
- #: src/includes/classes/paypal-utilities.inc.php:264
4470
  msgctxt "s2member-front"
4471
  msgid "Error #%s. Transaction declined. Please use an alternate funding source."
4472
  msgstr ""
4473
 
4474
- #: src/includes/classes/paypal-utilities.inc.php:261
4475
  msgctxt "s2member-front"
4476
  msgid "Error #%s. Transaction declined. Express Checkout was NOT confirmed."
4477
  msgstr ""
4478
 
4479
- #: src/includes/classes/paypal-utilities.inc.php:395
4480
  msgctxt "s2member-front"
4481
  msgid " Please contact PayPal Merchant Technical Support (www.paypal.com/mts) and request `Recurring Billing` service, and also ask to have `Reference Transactions` enabled for Recurring Billing via Express Checkout."
4482
  msgstr ""
2
  # This file is distributed under the same license as the package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: 201225\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
7
+ "POT-Creation-Date: 2020-12-25 21:31:45+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
20
  #: pro/src/includes/classes/coupons.inc.php:241
21
  #: pro/src/includes/classes/gateways/authnet/authnet-utilities.inc.php:692
22
  #: pro/src/includes/classes/gateways/paypal/paypal-utilities.inc.php:312
23
+ #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:983
24
  msgctxt "s2member-front percentage-symbol"
25
  msgid "%"
26
  msgstr ""
1310
  #. with `ws_plugin__s2member_paypal_payflow_api_response`.
1311
  #: pro/src/includes/classes/gateways/authnet/authnet-utilities.inc.php:96
1312
  #: pro/src/includes/classes/gateways/authnet/authnet-utilities.inc.php:325
1313
+ #: src/includes/classes/paypal-utilities.inc.php:342
1314
+ #: src/includes/classes/paypal-utilities.inc.php:350
1315
  msgctxt "s2member-front"
1316
  msgid "Error #%1$s. %2$s."
1317
  msgstr ""
1318
 
1319
  #: pro/src/includes/classes/gateways/authnet/authnet-utilities.inc.php:99
1320
  #: pro/src/includes/classes/gateways/authnet/authnet-utilities.inc.php:328
1321
+ #: src/includes/classes/paypal-utilities.inc.php:216
1322
+ #: src/includes/classes/paypal-utilities.inc.php:344
1323
+ #: src/includes/classes/paypal-utilities.inc.php:352
1324
  msgctxt "s2member-front"
1325
  msgid "Error. Please contact Support for assistance."
1326
  msgstr ""
1571
  msgid "Error: <strong>prepaid</strong> cards not accepted at this time. Please use a different card and try again."
1572
  msgstr ""
1573
 
1574
+ #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:756
1575
  msgctxt "s2member-front"
1576
  msgid "Error code: <code>%1$s</code>. %2$s."
1577
  msgstr ""
1578
 
1579
+ #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:759
1580
  msgctxt "s2member-front"
1581
  msgid "Invalid parameters to Stripe; please contact the site owner."
1582
  msgstr ""
1583
 
1584
+ #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:762
1585
  msgctxt "s2member-front"
1586
  msgid "Invalid Stripe API keys; please contact the site owner."
1587
  msgstr ""
1588
 
1589
+ #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:765
1590
  msgctxt "s2member-front"
1591
  msgid "Network communication failure with Stripe; please try again."
1592
  msgstr ""
1593
 
1594
+ #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:768
1595
  msgctxt "s2member-front"
1596
  msgid "Stripe API error; please try again."
1597
  msgstr ""
1598
 
1599
+ #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:770
1600
  msgctxt "s2member-front"
1601
  msgid "Stripe error; please try again."
1602
  msgstr ""
1603
 
1604
+ #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:1361
1605
+ #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:1410
1606
  msgctxt "s2member-front"
1607
  msgid "Action required: 3D Secure authorization."
1608
  msgstr ""
1609
 
1610
+ #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:1366
1611
  msgctxt "s2member-front"
1612
  msgid "Please try again with a different card."
1613
  msgstr ""
1614
 
1615
+ #: pro/src/includes/classes/gateways/stripe/stripe-utilities.inc.php:1415
1616
  msgctxt "s2member-front"
1617
  msgid "The payment failed, please try again with a different card."
1618
  msgstr ""
4460
  #. by PayPal. Replace `%2$s` and `%3$s` with: `Unable to process, please try
4461
  #. again`, or something to that affect. Or, if you prefer, you could Filter
4462
  #. ``$response["__error"]`` with `ws_plugin__s2member_paypal_api_response`.
4463
+ #: src/includes/classes/paypal-utilities.inc.php:213
4464
  msgctxt "s2member-front"
4465
  msgid "Error #%1$s. %2$s. %3$s."
4466
  msgstr ""
4467
 
4468
+ #: src/includes/classes/paypal-utilities.inc.php:260
4469
+ #: src/includes/classes/paypal-utilities.inc.php:266
4470
  msgctxt "s2member-front"
4471
  msgid "Error #%s. Transaction declined. Please use an alternate funding source."
4472
  msgstr ""
4473
 
4474
+ #: src/includes/classes/paypal-utilities.inc.php:263
4475
  msgctxt "s2member-front"
4476
  msgid "Error #%s. Transaction declined. Express Checkout was NOT confirmed."
4477
  msgstr ""
4478
 
4479
+ #: src/includes/classes/paypal-utilities.inc.php:397
4480
  msgctxt "s2member-front"
4481
  msgid " Please contact PayPal Merchant Technical Support (www.paypal.com/mts) and request `Recurring Billing` service, and also ask to have `Reference Transactions` enabled for Recurring Billing via Express Checkout."
4482
  msgstr ""
src/vendor/autoload.php CHANGED
@@ -2,6 +2,6 @@
2
 
3
  // autoload.php @generated by Composer
4
 
5
- require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit711b2c2a772835e7aa55513ccb6228f5::getLoader();
2
 
3
  // autoload.php @generated by Composer
4
 
5
+ require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit1860e4a353d6520807d498a864305f09::getLoader();
src/vendor/composer/ClassLoader.php CHANGED
@@ -53,8 +53,9 @@ class ClassLoader
53
 
54
  private $useIncludePath = false;
55
  private $classMap = array();
56
-
57
  private $classMapAuthoritative = false;
 
 
58
 
59
  public function getPrefixes()
60
  {
@@ -271,6 +272,26 @@ class ClassLoader
271
  return $this->classMapAuthoritative;
272
  }
273
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274
  /**
275
  * Registers this instance as an autoloader.
276
  *
@@ -313,29 +334,34 @@ class ClassLoader
313
  */
314
  public function findFile($class)
315
  {
316
- // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
317
- if ('\\' == $class[0]) {
318
- $class = substr($class, 1);
319
- }
320
-
321
  // class map lookup
322
  if (isset($this->classMap[$class])) {
323
  return $this->classMap[$class];
324
  }
325
- if ($this->classMapAuthoritative) {
326
  return false;
327
  }
 
 
 
 
 
 
328
 
329
  $file = $this->findFileWithExtension($class, '.php');
330
 
331
  // Search for Hack files if we are running on HHVM
332
- if ($file === null && defined('HHVM_VERSION')) {
333
  $file = $this->findFileWithExtension($class, '.hh');
334
  }
335
 
336
- if ($file === null) {
 
 
 
 
337
  // Remember that this class does not exist.
338
- return $this->classMap[$class] = false;
339
  }
340
 
341
  return $file;
@@ -348,10 +374,14 @@ class ClassLoader
348
 
349
  $first = $class[0];
350
  if (isset($this->prefixLengthsPsr4[$first])) {
351
- foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
352
- if (0 === strpos($class, $prefix)) {
353
- foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
354
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
 
 
 
 
355
  return $file;
356
  }
357
  }
@@ -399,6 +429,8 @@ class ClassLoader
399
  if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
400
  return $file;
401
  }
 
 
402
  }
403
  }
404
 
53
 
54
  private $useIncludePath = false;
55
  private $classMap = array();
 
56
  private $classMapAuthoritative = false;
57
+ private $missingClasses = array();
58
+ private $apcuPrefix;
59
 
60
  public function getPrefixes()
61
  {
272
  return $this->classMapAuthoritative;
273
  }
274
 
275
+ /**
276
+ * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
277
+ *
278
+ * @param string|null $apcuPrefix
279
+ */
280
+ public function setApcuPrefix($apcuPrefix)
281
+ {
282
+ $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
283
+ }
284
+
285
+ /**
286
+ * The APCu prefix in use, or null if APCu caching is not enabled.
287
+ *
288
+ * @return string|null
289
+ */
290
+ public function getApcuPrefix()
291
+ {
292
+ return $this->apcuPrefix;
293
+ }
294
+
295
  /**
296
  * Registers this instance as an autoloader.
297
  *
334
  */
335
  public function findFile($class)
336
  {
 
 
 
 
 
337
  // class map lookup
338
  if (isset($this->classMap[$class])) {
339
  return $this->classMap[$class];
340
  }
341
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
342
  return false;
343
  }
344
+ if (null !== $this->apcuPrefix) {
345
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
346
+ if ($hit) {
347
+ return $file;
348
+ }
349
+ }
350
 
351
  $file = $this->findFileWithExtension($class, '.php');
352
 
353
  // Search for Hack files if we are running on HHVM
354
+ if (false === $file && defined('HHVM_VERSION')) {
355
  $file = $this->findFileWithExtension($class, '.hh');
356
  }
357
 
358
+ if (null !== $this->apcuPrefix) {
359
+ apcu_add($this->apcuPrefix.$class, $file);
360
+ }
361
+
362
+ if (false === $file) {
363
  // Remember that this class does not exist.
364
+ $this->missingClasses[$class] = true;
365
  }
366
 
367
  return $file;
374
 
375
  $first = $class[0];
376
  if (isset($this->prefixLengthsPsr4[$first])) {
377
+ $subPath = $class;
378
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
379
+ $subPath = substr($subPath, 0, $lastPos);
380
+ $search = $subPath . '\\';
381
+ if (isset($this->prefixDirsPsr4[$search])) {
382
+ $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
383
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
384
+ if (file_exists($file = $dir . $pathEnd)) {
385
  return $file;
386
  }
387
  }
429
  if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
430
  return $file;
431
  }
432
+
433
+ return false;
434
  }
435
  }
436
 
src/vendor/composer/LICENSE CHANGED
@@ -1,5 +1,5 @@
1
 
2
- Copyright (c) 2016 Nils Adermann, Jordi Boggiano
3
 
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
  of this software and associated documentation files (the "Software"), to deal
1
 
2
+ Copyright (c) Nils Adermann, Jordi Boggiano
3
 
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
  of this software and associated documentation files (the "Software"), to deal
src/vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit711b2c2a772835e7aa55513ccb6228f5
6
  {
7
  private static $loader;
8
 
@@ -13,43 +13,57 @@ class ComposerAutoloaderInit711b2c2a772835e7aa55513ccb6228f5
13
  }
14
  }
15
 
 
 
 
16
  public static function getLoader()
17
  {
18
  if (null !== self::$loader) {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit711b2c2a772835e7aa55513ccb6228f5', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit711b2c2a772835e7aa55513ccb6228f5', 'loadClassLoader'));
25
 
26
- $map = require __DIR__ . '/autoload_namespaces.php';
27
- foreach ($map as $namespace => $path) {
28
- $loader->set($namespace, $path);
29
- }
30
 
31
- $map = require __DIR__ . '/autoload_psr4.php';
32
- foreach ($map as $namespace => $path) {
33
- $loader->setPsr4($namespace, $path);
34
- }
 
 
35
 
36
- $classMap = require __DIR__ . '/autoload_classmap.php';
37
- if ($classMap) {
38
- $loader->addClassMap($classMap);
 
 
 
 
 
 
39
  }
40
 
41
  $loader->register(true);
42
 
43
- $includeFiles = require __DIR__ . '/autoload_files.php';
 
 
 
 
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
- composerRequire711b2c2a772835e7aa55513ccb6228f5($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
- function composerRequire711b2c2a772835e7aa55513ccb6228f5($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit1860e4a353d6520807d498a864305f09
6
  {
7
  private static $loader;
8
 
13
  }
14
  }
15
 
16
+ /**
17
+ * @return \Composer\Autoload\ClassLoader
18
+ */
19
  public static function getLoader()
20
  {
21
  if (null !== self::$loader) {
22
  return self::$loader;
23
  }
24
 
25
+ spl_autoload_register(array('ComposerAutoloaderInit1860e4a353d6520807d498a864305f09', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
+ spl_autoload_unregister(array('ComposerAutoloaderInit1860e4a353d6520807d498a864305f09', 'loadClassLoader'));
28
 
29
+ $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
+ if ($useStaticLoader) {
31
+ require_once __DIR__ . '/autoload_static.php';
 
32
 
33
+ call_user_func(\Composer\Autoload\ComposerStaticInit1860e4a353d6520807d498a864305f09::getInitializer($loader));
34
+ } else {
35
+ $map = require __DIR__ . '/autoload_namespaces.php';
36
+ foreach ($map as $namespace => $path) {
37
+ $loader->set($namespace, $path);
38
+ }
39
 
40
+ $map = require __DIR__ . '/autoload_psr4.php';
41
+ foreach ($map as $namespace => $path) {
42
+ $loader->setPsr4($namespace, $path);
43
+ }
44
+
45
+ $classMap = require __DIR__ . '/autoload_classmap.php';
46
+ if ($classMap) {
47
+ $loader->addClassMap($classMap);
48
+ }
49
  }
50
 
51
  $loader->register(true);
52
 
53
+ if ($useStaticLoader) {
54
+ $includeFiles = Composer\Autoload\ComposerStaticInit1860e4a353d6520807d498a864305f09::$files;
55
+ } else {
56
+ $includeFiles = require __DIR__ . '/autoload_files.php';
57
+ }
58
  foreach ($includeFiles as $fileIdentifier => $file) {
59
+ composerRequire1860e4a353d6520807d498a864305f09($fileIdentifier, $file);
60
  }
61
 
62
  return $loader;
63
  }
64
  }
65
 
66
+ function composerRequire1860e4a353d6520807d498a864305f09($fileIdentifier, $file)
67
  {
68
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
69
  require $file;
src/vendor/composer/autoload_static.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_static.php @generated by Composer
4
+
5
+ namespace Composer\Autoload;
6
+
7
+ class ComposerStaticInit1860e4a353d6520807d498a864305f09
8
+ {
9
+ public static $files = array (
10
+ '5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
11
+ );
12
+
13
+ public static $classMap = array (
14
+ 'Defuse\\Crypto\\Core' => __DIR__ . '/..' . '/defuse/php-encryption/src/Core.php',
15
+ 'Defuse\\Crypto\\Crypto' => __DIR__ . '/..' . '/defuse/php-encryption/src/Crypto.php',
16
+ 'Defuse\\Crypto\\DerivedKeys' => __DIR__ . '/..' . '/defuse/php-encryption/src/DerivedKeys.php',
17
+ 'Defuse\\Crypto\\Encoding' => __DIR__ . '/..' . '/defuse/php-encryption/src/Encoding.php',
18
+ 'Defuse\\Crypto\\Exception\\BadFormatException' => __DIR__ . '/..' . '/defuse/php-encryption/src/Exception/BadFormatException.php',
19
+ 'Defuse\\Crypto\\Exception\\CryptoException' => __DIR__ . '/..' . '/defuse/php-encryption/src/Exception/CryptoException.php',
20
+ 'Defuse\\Crypto\\Exception\\EnvironmentIsBrokenException' => __DIR__ . '/..' . '/defuse/php-encryption/src/Exception/EnvironmentIsBrokenException.php',
21
+ 'Defuse\\Crypto\\Exception\\IOException' => __DIR__ . '/..' . '/defuse/php-encryption/src/Exception/IOException.php',
22
+ 'Defuse\\Crypto\\Exception\\WrongKeyOrModifiedCiphertextException' => __DIR__ . '/..' . '/defuse/php-encryption/src/Exception/WrongKeyOrModifiedCiphertextException.php',
23
+ 'Defuse\\Crypto\\File' => __DIR__ . '/..' . '/defuse/php-encryption/src/File.php',
24
+ 'Defuse\\Crypto\\Key' => __DIR__ . '/..' . '/defuse/php-encryption/src/Key.php',
25
+ 'Defuse\\Crypto\\KeyOrPassword' => __DIR__ . '/..' . '/defuse/php-encryption/src/KeyOrPassword.php',
26
+ 'Defuse\\Crypto\\KeyProtectedByPassword' => __DIR__ . '/..' . '/defuse/php-encryption/src/KeyProtectedByPassword.php',
27
+ 'Defuse\\Crypto\\RuntimeTests' => __DIR__ . '/..' . '/defuse/php-encryption/src/RuntimeTests.php',
28
+ );
29
+
30
+ public static function getInitializer(ClassLoader $loader)
31
+ {
32
+ return \Closure::bind(function () use ($loader) {
33
+ $loader->classMap = ComposerStaticInit1860e4a353d6520807d498a864305f09::$classMap;
34
+
35
+ }, null, ClassLoader::class);
36
+ }
37
+ }
src/vendor/composer/installed.json CHANGED
@@ -1,54 +1,4 @@
1
  [
2
- {
3
- "name": "paragonie/random_compat",
4
- "version": "v2.0.10",
5
- "version_normalized": "2.0.10.0",
6
- "source": {
7
- "type": "git",
8
- "url": "https://github.com/paragonie/random_compat.git",
9
- "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d"
10
- },
11
- "dist": {
12
- "type": "zip",
13
- "url": "https://api.github.com/repos/paragonie/random_compat/zipball/634bae8e911eefa89c1abfbf1b66da679ac8f54d",
14
- "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d",
15
- "shasum": ""
16
- },
17
- "require": {
18
- "php": ">=5.2.0"
19
- },
20
- "require-dev": {
21
- "phpunit/phpunit": "4.*|5.*"
22
- },
23
- "suggest": {
24
- "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
25
- },
26
- "time": "2017-03-13 16:27:32",
27
- "type": "library",
28
- "installation-source": "dist",
29
- "autoload": {
30
- "files": [
31
- "lib/random.php"
32
- ]
33
- },
34
- "notification-url": "https://packagist.org/downloads/",
35
- "license": [
36
- "MIT"
37
- ],
38
- "authors": [
39
- {
40
- "name": "Paragon Initiative Enterprises",
41
- "email": "security@paragonie.com",
42
- "homepage": "https://paragonie.com"
43
- }
44
- ],
45
- "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
46
- "keywords": [
47
- "csprng",
48
- "pseudorandom",
49
- "random"
50
- ]
51
- },
52
  {
53
  "name": "defuse/php-encryption",
54
  "version": "2.0.3",
@@ -72,7 +22,7 @@
72
  "require-dev": {
73
  "nikic/php-parser": "^2.0"
74
  },
75
- "time": "2016-10-10 15:20:26",
76
  "type": "library",
77
  "installation-source": "dist",
78
  "autoload": {
@@ -109,5 +59,55 @@
109
  "security",
110
  "symmetric key cryptography"
111
  ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  }
113
  ]
1
  [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  {
3
  "name": "defuse/php-encryption",
4
  "version": "2.0.3",
22
  "require-dev": {
23
  "nikic/php-parser": "^2.0"
24
  },
25
+ "time": "2016-10-10T15:20:26+00:00",
26
  "type": "library",
27
  "installation-source": "dist",
28
  "autoload": {
59
  "security",
60
  "symmetric key cryptography"
61
  ]
62
+ },
63
+ {
64
+ "name": "paragonie/random_compat",
65
+ "version": "v2.0.10",
66
+ "version_normalized": "2.0.10.0",
67
+ "source": {
68
+ "type": "git",
69
+ "url": "https://github.com/paragonie/random_compat.git",
70
+ "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d"
71
+ },
72
+ "dist": {
73
+ "type": "zip",
74
+ "url": "https://api.github.com/repos/paragonie/random_compat/zipball/634bae8e911eefa89c1abfbf1b66da679ac8f54d",
75
+ "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d",
76
+ "shasum": ""
77
+ },
78
+ "require": {
79
+ "php": ">=5.2.0"
80
+ },
81
+ "require-dev": {
82
+ "phpunit/phpunit": "4.*|5.*"
83
+ },
84
+ "suggest": {
85
+ "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
86
+ },
87
+ "time": "2017-03-13T16:27:32+00:00",
88
+ "type": "library",
89
+ "installation-source": "dist",
90
+ "autoload": {
91
+ "files": [
92
+ "lib/random.php"
93
+ ]
94
+ },
95
+ "notification-url": "https://packagist.org/downloads/",
96
+ "license": [
97
+ "MIT"
98
+ ],
99
+ "authors": [
100
+ {
101
+ "name": "Paragon Initiative Enterprises",
102
+ "email": "security@paragonie.com",
103
+ "homepage": "https://paragonie.com"
104
+ }
105
+ ],
106
+ "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
107
+ "keywords": [
108
+ "csprng",
109
+ "pseudorandom",
110
+ "random"
111
+ ]
112
  }
113
  ]