Version Description
Bug Fix PayPal IPNs being ignored since last release.
=
Download this release
Release Info
Developer | clavaque |
Plugin | s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) |
Version | 221031 |
Comparing to | |
See all releases |
Code changes from version 221028 to 221031
- readme.txt +24 -15
- s2member.php +3 -3
- src/includes/classes/paypal-notify-in-subscr-modify-w-level.inc.php +1 -1
- src/includes/classes/paypal-notify-in-subscr-or-rp-cancellation-w-level.inc.php +1 -1
- src/includes/classes/paypal-notify-in-subscr-or-rp-payment-w-level.inc.php +1 -1
- src/includes/classes/paypal-notify-in-subscr-or-wa-w-level.inc.php +1 -1
- src/includes/classes/paypal-notify-in-wa-ccaps-wo-level.inc.php +1 -1
- src/includes/classes/paypal-notify-in-web-accept-sp.inc.php +1 -1
- src/includes/classes/paypal-notify-in.inc.php +0 -3
- src/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php +1 -1
- src/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php +1 -1
- src/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php +1 -1
- src/includes/classes/paypal-return-in-web-accept-sp.inc.php +1 -1
- src/includes/classes/paypal-return-in.inc.php +0 -3
- src/includes/translations/s2member.pot +8 -8
- src/vendor/autoload.php +1 -1
- src/vendor/composer/autoload_real.php +7 -7
- src/vendor/composer/autoload_static.php +2 -2
readme.txt
CHANGED
@@ -3,8 +3,8 @@
|
|
3 |
Plugin Name: s2Member Framework
|
4 |
Plugin URI: https://s2member.com/
|
5 |
Tags: membership, member, members only, memberships, paywall, content restriction, paid access, sell downloads, paypal, paid subscriptions, paid registration, custom login
|
6 |
-
Version:
|
7 |
-
Stable tag:
|
8 |
Tested up to: 6.1-RC4-54709
|
9 |
Requires at least: 4.2
|
10 |
Requires PHP: 5.6.2
|
@@ -36,11 +36,11 @@ Domain Path: /src/includes/translations
|
|
36 |
|
37 |
💵 Enjoy the benefits of getting paid repeatedly for access to your site!
|
38 |
|
39 |
-
|
40 |
|
41 |
= The best way to make money from your WordPress site! =
|
42 |
|
43 |
-
🤩 Sell **unlimited memberships**, turn free subscribers into members (
|
44 |
|
45 |
**Easy and quick to use.** Protect your membership content in a moment, and a moment later be ready to get payments for member access!
|
46 |
|
@@ -50,9 +50,9 @@ Domain Path: /src/includes/translations
|
|
50 |
|
51 |
https://youtu.be/qlKn-I-0W6U
|
52 |
|
53 |
-
|
54 |
|
55 |
-
|
56 |
|
57 |
**Packed with features**, but not required to use them all, just those you want. Some of them:
|
58 |
|
@@ -78,13 +78,13 @@ https://youtu.be/qlKn-I-0W6U
|
|
78 |
|
79 |
👉 Install and start using s2Member now! 🤩
|
80 |
|
81 |
-
|
82 |
|
83 |
-
|
84 |
|
85 |
-
|
86 |
|
87 |
-
|
88 |
|
89 |
🤖 Not needed to know any PHP code or be a developer. Only code needed is copy-paste wp shortcodes, like for the paypal buttons... But is also developer-friendly to customize your installation if wanted.
|
90 |
|
@@ -106,13 +106,13 @@ https://youtu.be/qlKn-I-0W6U
|
|
106 |
✅ Login and registration forms to use in pages/posts
|
107 |
👉 [Click here for more](https://s2member.com/features/) 🙂
|
108 |
|
109 |
-
|
110 |
|
111 |
-
|
112 |
|
113 |
-
|
114 |
|
115 |
-
|
116 |
|
117 |
The free s2Member Framework integrates with PayPal Website Payments Standard (also free). Sell "Buy Now" or Membership access to your site. Restrict access to Roles, Capabilities, Posts, Pages, or anything else in WordPress.
|
118 |
|
@@ -174,11 +174,20 @@ Yes, s2Member Pro for Unlimited Sites is compatible with Multisite Networking. A
|
|
174 |
|
175 |
Please see: <http://s2member.com/r/translations/>
|
176 |
|
|
|
|
|
|
|
|
|
|
|
177 |
== Changelog ==
|
178 |
|
|
|
|
|
|
|
|
|
179 |
= v221028 =
|
180 |
|
181 |
-
- (Framework) **Fix**: Initialized some array keys to prevent PHP warnings in PayPal notify and return files. Thanks Greg
|
182 |
|
183 |
- (Framework) **UI**: Widened the Logs viewer. Thanks Sim. See [thread 10064](https://f.wpsharks.com/t/10064)
|
184 |
|
3 |
Plugin Name: s2Member Framework
|
4 |
Plugin URI: https://s2member.com/
|
5 |
Tags: membership, member, members only, memberships, paywall, content restriction, paid access, sell downloads, paypal, paid subscriptions, paid registration, custom login
|
6 |
+
Version: 221031
|
7 |
+
Stable tag: 221031
|
8 |
Tested up to: 6.1-RC4-54709
|
9 |
Requires at least: 4.2
|
10 |
Requires PHP: 5.6.2
|
36 |
|
37 |
💵 Enjoy the benefits of getting paid repeatedly for access to your site!
|
38 |
|
39 |
+
⭐⭐⭐⭐⭐ _**Brilliant** "So glad I found this. It works brilliantly for our needs... love the seamless integration with PayPal. Everything we need. Thank you so much for creating this!" -[zarverk2000](https://wordpress.org/support/topic/brilliant-1268/)_
|
40 |
|
41 |
= The best way to make money from your WordPress site! =
|
42 |
|
43 |
+
🤩 Sell **unlimited memberships**, turn free subscribers into members (_subscriber to member → s. 2 member → s2Member_), with a single payment or recurring payments subscriptions.
|
44 |
|
45 |
**Easy and quick to use.** Protect your membership content in a moment, and a moment later be ready to get payments for member access!
|
46 |
|
50 |
|
51 |
https://youtu.be/qlKn-I-0W6U
|
52 |
|
53 |
+
⭐⭐⭐⭐⭐ _**So much capacity & great support** "I’m a novice and was able to quickly figure it out. When I got stuck I go to the support forum and Cristian is there with a quick answer to get me going again." -[blueruck](https://wordpress.org/support/topic/so-much-capacity-great-support/)_
|
54 |
|
55 |
+
⭐⭐⭐⭐⭐ _**The very best plugin and support service** "Great plugin, neat, easy to configure, and with interesting security features. A special mention to Cristian whose support is awesome, fast, clear even to free members like myself" -[aflorarte](https://wordpress.org/support/topic/the-very-best-plugin-and-support-service/)_
|
56 |
|
57 |
**Packed with features**, but not required to use them all, just those you want. Some of them:
|
58 |
|
78 |
|
79 |
👉 Install and start using s2Member now! 🤩
|
80 |
|
81 |
+
⭐⭐⭐⭐⭐ _**Very Powerful Membership Plugin** "This membership plugin does a lot and has many, many configuration options to achieve whatever you want... I received extremely quick and reliable support." -[liltrucks](https://wordpress.org/support/topic/very-powerful-membership-plugin/)_
|
82 |
|
83 |
+
⭐⭐⭐⭐⭐ _**Simple, Compatible, Secure, and Versatile!** "We are seriously impressed with this plugin and we highly recommend it... We have not found ANY limitations to what we are trying to accomplish... a very smooth process... straight-forward and user-friendly!... exceeded our expectations!" -[tips4gamers](https://wordpress.org/support/topic/simple-compatible-secure-and-versatile/)_
|
84 |
|
85 |
+
⭐⭐⭐⭐⭐ _**Excellent plugin** "This plugin does everything it says on the box. It does it well... the functionality is absolutely spot on. The developers/maintainers are also active and helpful. Totally recommended!" -[richardfoley](https://wordpress.org/support/topic/excellent-plugin-5188/)_
|
86 |
|
87 |
+
⭐⭐⭐⭐⭐ _**Best Membership Plugin I’ve Used** "I switched to s2 Member around 3 years ago after trying a few plugins. I found these other plugins inflexible and difficult to configure... Well worth investigating if you want a robust membership solution." -[rnwhalley](https://wordpress.org/support/topic/best-membership-plugin-ive-used/)_
|
88 |
|
89 |
🤖 Not needed to know any PHP code or be a developer. Only code needed is copy-paste wp shortcodes, like for the paypal buttons... But is also developer-friendly to customize your installation if wanted.
|
90 |
|
106 |
✅ Login and registration forms to use in pages/posts
|
107 |
👉 [Click here for more](https://s2member.com/features/) 🙂
|
108 |
|
109 |
+
⭐⭐⭐⭐⭐ _**The Best Membership Plugin** "I have built with most Membership plugins and literally dozens using S2 Pro and I can tell you, bar none it is the best of all of them. Extremely powerful, anything you might want to do it can do... I highly recommend you try it out." -[antwoords](https://wordpress.org/support/topic/the-best-membership-plugin-5/)_
|
110 |
|
111 |
+
⭐⭐⭐⭐⭐ _**Excellent plugin & top support** "We’ve used s2member pro on a few projects now & find it has met all our membership needs. Most impressive has been the support. Excellent communication, knowledgeable, friendly and super patient 🙂" -[aaee6](https://wordpress.org/support/topic/excellent-plugin-top-support-3/)_
|
112 |
|
113 |
+
⭐⭐⭐⭐⭐ _**Awesome Support** "I’ve been using s2Member for 9 years... Amazing support of a high-end plugin and much appreciated. This is one of the reasons I stick with s2Member. Support has always been great!" -[graphichome](https://wordpress.org/support/topic/awesome-support-712/)_
|
114 |
|
115 |
+
⭐⭐⭐⭐⭐ _**Wonderful Support** "Above and beyond. I’ve used this plugin for over ten years with various clients and whenever I need help, they’ve helped find a solution." -[germars](https://wordpress.org/support/topic/wonderful-support-68/)_
|
116 |
|
117 |
The free s2Member Framework integrates with PayPal Website Payments Standard (also free). Sell "Buy Now" or Membership access to your site. Restrict access to Roles, Capabilities, Posts, Pages, or anything else in WordPress.
|
118 |
|
174 |
|
175 |
Please see: <http://s2member.com/r/translations/>
|
176 |
|
177 |
+
== Upgrade Notice ==
|
178 |
+
|
179 |
+
= 221031 =
|
180 |
+
Bug Fix PayPal IPNs being ignored since last release.
|
181 |
+
|
182 |
== Changelog ==
|
183 |
|
184 |
+
= v221031 =
|
185 |
+
|
186 |
+
- (Framework) **Bug Fix**: Fix PayPal IPNs being ignored because a bug in the last release. After updating to this release, you may want to [review your latest IPNs](https://www.paypal.com/merchantnotification/ipn/history) since updating to v221028, and re-send them from PayPal. See [thread 10208](https://f.wpsharks.com/t/10208)
|
187 |
+
|
188 |
= v221028 =
|
189 |
|
190 |
+
- (Framework) **Fix**: Initialized some array keys to prevent PHP warnings in PayPal notify and return files. Thanks Greg M. for your help.
|
191 |
|
192 |
- (Framework) **UI**: Widened the Logs viewer. Thanks Sim. See [thread 10064](https://f.wpsharks.com/t/10064)
|
193 |
|
s2member.php
CHANGED
@@ -20,8 +20,8 @@
|
|
20 |
*/
|
21 |
/* -- This section for WordPress parsing. ------------------------------------------------------------------------------
|
22 |
|
23 |
-
Version:
|
24 |
-
Stable tag:
|
25 |
|
26 |
SSL Compatible: yes
|
27 |
bbPress Compatible: yes
|
@@ -77,7 +77,7 @@ if(!defined('WPINC')) // MUST have WordPress.
|
|
77 |
*
|
78 |
* @var string
|
79 |
*/
|
80 |
-
${__FILE__}['tmp'] = '
|
81 |
if(!defined('WS_PLUGIN__S2MEMBER_VERSION'))
|
82 |
define('WS_PLUGIN__S2MEMBER_VERSION', ${__FILE__}['tmp']);
|
83 |
/**
|
20 |
*/
|
21 |
/* -- This section for WordPress parsing. ------------------------------------------------------------------------------
|
22 |
|
23 |
+
Version: 221031
|
24 |
+
Stable tag: 221031
|
25 |
|
26 |
SSL Compatible: yes
|
27 |
bbPress Compatible: yes
|
77 |
*
|
78 |
* @var string
|
79 |
*/
|
80 |
+
${__FILE__}['tmp'] = '221031'; //version//
|
81 |
if(!defined('WS_PLUGIN__S2MEMBER_VERSION'))
|
82 |
define('WS_PLUGIN__S2MEMBER_VERSION', ${__FILE__}['tmp']);
|
83 |
/**
|
src/includes/classes/paypal-notify-in-subscr-modify-w-level.inc.php
CHANGED
@@ -57,7 +57,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level')
|
|
57 |
{
|
58 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `subscr_modify` ).';
|
59 |
|
60 |
-
list ($paypal['level'], $paypal['ccaps']/*, $paypal['eotper'] */) = preg_split('/\:/', $paypal['item_number'], 2);
|
61 |
|
62 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
63 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
57 |
{
|
58 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `subscr_modify` ).';
|
59 |
|
60 |
+
list ($paypal['level'], $paypal['ccaps']/*, $paypal['eotper'] */) = preg_split('/\:/', $paypal['item_number'].':', 2);
|
61 |
|
62 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
63 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
src/includes/classes/paypal-notify-in-subscr-or-rp-cancellation-w-level.inc.php
CHANGED
@@ -60,7 +60,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_cancella
|
|
60 |
{
|
61 |
$paypal["s2member_log"][] = "s2Member `txn_type` identified as ( `subscr_cancel|recurring_payment_profile_cancel|mp_cancel` ).";
|
62 |
|
63 |
-
list ($paypal["level"], $paypal["ccaps"]) = preg_split ("/\:/", $paypal["item_number"], 3);
|
64 |
|
65 |
$paypal["ip"] = (preg_match ("/ip address/i", $paypal["option_name2"]) && $paypal["option_selection2"]) ? $paypal["option_selection2"] : "";
|
66 |
$paypal["ip"] = (!$paypal["ip"] && preg_match ("/^[a-z0-9]+~[0-9\.]+$/i", $paypal["invoice"])) ? preg_replace ("/^[a-z0-9]+~/i", "", $paypal["invoice"]) : $paypal["ip"];
|
60 |
{
|
61 |
$paypal["s2member_log"][] = "s2Member `txn_type` identified as ( `subscr_cancel|recurring_payment_profile_cancel|mp_cancel` ).";
|
62 |
|
63 |
+
list ($paypal["level"], $paypal["ccaps"]) = preg_split ("/\:/", $paypal["item_number"].':', 3);
|
64 |
|
65 |
$paypal["ip"] = (preg_match ("/ip address/i", $paypal["option_name2"]) && $paypal["option_selection2"]) ? $paypal["option_selection2"] : "";
|
66 |
$paypal["ip"] = (!$paypal["ip"] && preg_match ("/^[a-z0-9]+~[0-9\.]+$/i", $paypal["invoice"])) ? preg_replace ("/^[a-z0-9]+~/i", "", $paypal["invoice"]) : $paypal["ip"];
|
src/includes/classes/paypal-notify-in-subscr-or-rp-payment-w-level.inc.php
CHANGED
@@ -67,7 +67,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_payment_w_
|
|
67 |
sleep(15); // Sleep here for a moment. PayPal sometimes sends a subscr_payment before the subscr_signup, subscr_modify.
|
68 |
$paypal['s2member_log'][] = 'Awake. It\'s '.date('D M j, Y g:i:s a T').'. s2Member `txn_type` identified as '.$identified_as.'.';
|
69 |
}
|
70 |
-
list($paypal['level'], $paypal['ccaps']) = preg_split('/\:/', $paypal['item_number'], 3);
|
71 |
|
72 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
73 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
67 |
sleep(15); // Sleep here for a moment. PayPal sometimes sends a subscr_payment before the subscr_signup, subscr_modify.
|
68 |
$paypal['s2member_log'][] = 'Awake. It\'s '.date('D M j, Y g:i:s a T').'. s2Member `txn_type` identified as '.$identified_as.'.';
|
69 |
}
|
70 |
+
list($paypal['level'], $paypal['ccaps']) = preg_split('/\:/', $paypal['item_number'].':', 3);
|
71 |
|
72 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
73 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
src/includes/classes/paypal-notify-in-subscr-or-wa-w-level.inc.php
CHANGED
@@ -83,7 +83,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
83 |
|
84 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept|subscr_signup` ).';
|
85 |
|
86 |
-
@list ($paypal['level'], $paypal['ccaps'], $paypal['eotper']) = preg_split('/\:/', $paypal['item_number'], 3);
|
87 |
|
88 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
89 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
83 |
|
84 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept|subscr_signup` ).';
|
85 |
|
86 |
+
@list ($paypal['level'], $paypal['ccaps'], $paypal['eotper']) = preg_split('/\:/', $paypal['item_number'].':', 3);
|
87 |
|
88 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
89 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
src/includes/classes/paypal-notify-in-wa-ccaps-wo-level.inc.php
CHANGED
@@ -58,7 +58,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level'))
|
|
58 |
{
|
59 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept` ) w/ update vars for Capabilities w/o Level.';
|
60 |
|
61 |
-
list ($paypal['level'], $paypal['ccaps'], $paypal['eotper']) = preg_split('/\:/', $paypal['item_number'], 3);
|
62 |
|
63 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
64 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
58 |
{
|
59 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept` ) w/ update vars for Capabilities w/o Level.';
|
60 |
|
61 |
+
list ($paypal['level'], $paypal['ccaps'], $paypal['eotper']) = preg_split('/\:/', $paypal['item_number'].':', 3);
|
62 |
|
63 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
64 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
src/includes/classes/paypal-notify-in-web-accept-sp.inc.php
CHANGED
@@ -57,7 +57,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp'))
|
|
57 |
{
|
58 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept` ) for Specific Post/Page Access.';
|
59 |
|
60 |
-
list (, $paypal['sp_ids'], $paypal['hours']) = preg_split('/\:/', $paypal['item_number'], 3);
|
61 |
|
62 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
63 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
57 |
{
|
58 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept` ) for Specific Post/Page Access.';
|
59 |
|
60 |
+
list (, $paypal['sp_ids'], $paypal['hours']) = preg_split('/\:/', $paypal['item_number'].':', 3);
|
61 |
|
62 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
63 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
src/includes/classes/paypal-notify-in.inc.php
CHANGED
@@ -73,9 +73,6 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in'))
|
|
73 |
$_REQUEST['s2member_paypal_proxy'] = '';
|
74 |
foreach (array('level', 'ccaps', 'option_name1', 'option_selection1', 'option_name2', 'option_selection2', 'invoice', 'payment_status', 'mc_currency', 's2member_paypal_proxy') as $key)
|
75 |
$paypal[$key] = isset($paypal[$key]) ? $paypal[$key] : '';
|
76 |
-
// Prevent list() warning when missing a value, e.g. no ccaps
|
77 |
-
if (!empty($paypal['item_number']))
|
78 |
-
$paypal['item_number'] .= ':';
|
79 |
|
80 |
$paypal['s2member_log'][] = 'IPN received on: '.date('D M j, Y g:i:s a T');
|
81 |
$paypal['s2member_log'][] = 's2Member POST vars verified '.((!empty($paypal['proxy_verified'])) ? 'with a Proxy Key' : 'through a POST back to PayPal.');
|
73 |
$_REQUEST['s2member_paypal_proxy'] = '';
|
74 |
foreach (array('level', 'ccaps', 'option_name1', 'option_selection1', 'option_name2', 'option_selection2', 'invoice', 'payment_status', 'mc_currency', 's2member_paypal_proxy') as $key)
|
75 |
$paypal[$key] = isset($paypal[$key]) ? $paypal[$key] : '';
|
|
|
|
|
|
|
76 |
|
77 |
$paypal['s2member_log'][] = 'IPN received on: '.date('D M j, Y g:i:s a T');
|
78 |
$paypal['s2member_log'][] = 's2Member POST vars verified '.((!empty($paypal['proxy_verified'])) ? 'with a Proxy Key' : 'through a POST back to PayPal.');
|
src/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php
CHANGED
@@ -56,7 +56,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_subscr_modify_w_level')
|
|
56 |
{
|
57 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `subscr_modify` ), a Subscription Modification.';
|
58 |
|
59 |
-
list($paypal['level'], $paypal['ccaps']/*, $paypal['eotper'] */) = preg_split('/\:/', $paypal['item_number'], 2);
|
60 |
|
61 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
62 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
56 |
{
|
57 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `subscr_modify` ), a Subscription Modification.';
|
58 |
|
59 |
+
list($paypal['level'], $paypal['ccaps']/*, $paypal['eotper'] */) = preg_split('/\:/', $paypal['item_number'].':', 2);
|
60 |
|
61 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
62 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
src/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php
CHANGED
@@ -58,7 +58,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_subscr_or_wa_w_level'))
|
|
58 |
{
|
59 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept|subscr_signup|subscr_payment` ).';
|
60 |
|
61 |
-
@list($paypal['level'], $paypal['ccaps'], $paypal['eotper']) = preg_split('/\:/', $paypal['item_number'], 3);
|
62 |
|
63 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
64 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
58 |
{
|
59 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept|subscr_signup|subscr_payment` ).';
|
60 |
|
61 |
+
@list($paypal['level'], $paypal['ccaps'], $paypal['eotper']) = preg_split('/\:/', $paypal['item_number'].':', 3);
|
62 |
|
63 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
64 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
src/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php
CHANGED
@@ -58,7 +58,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_wa_ccaps_wo_level'))
|
|
58 |
{
|
59 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept` ) w/ update vars for Capabilities w/o Level.';
|
60 |
|
61 |
-
list ($paypal['level'], $paypal['ccaps'], $paypal['eotper']) = preg_split('/\:/', $paypal['item_number'], 3);
|
62 |
|
63 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
64 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
58 |
{
|
59 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept` ) w/ update vars for Capabilities w/o Level.';
|
60 |
|
61 |
+
list ($paypal['level'], $paypal['ccaps'], $paypal['eotper']) = preg_split('/\:/', $paypal['item_number'].':', 3);
|
62 |
|
63 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
64 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
src/includes/classes/paypal-return-in-web-accept-sp.inc.php
CHANGED
@@ -57,7 +57,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_web_accept_sp'))
|
|
57 |
{
|
58 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept` ) for Specific Post/Page Access.';
|
59 |
|
60 |
-
list (, $paypal['sp_ids'], $paypal['hours']) = preg_split('/\:/', $paypal['item_number'], 3);
|
61 |
|
62 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
63 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
57 |
{
|
58 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept` ) for Specific Post/Page Access.';
|
59 |
|
60 |
+
list (, $paypal['sp_ids'], $paypal['hours']) = preg_split('/\:/', $paypal['item_number'].':', 3);
|
61 |
|
62 |
$paypal['ip'] = (preg_match('/ip address/i', $paypal['option_name2']) && $paypal['option_selection2']) ? $paypal['option_selection2'] : '';
|
63 |
$paypal['ip'] = (!$paypal['ip'] && preg_match('/^[a-z0-9]+~[0-9\.]+$/i', $paypal['invoice'])) ? preg_replace('/^[a-z0-9]+~/i', '', $paypal['invoice']) : $paypal['ip'];
|
src/includes/classes/paypal-return-in.inc.php
CHANGED
@@ -58,9 +58,6 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in"))
|
|
58 |
// Initialize a few array keys to prevent PHP warnings.
|
59 |
foreach (array('level', 'ccaps', 'option_name1', 'option_selection1', 'option_name2', 'option_selection2', 'invoice', 'payment_status', 'mc_currency', 's2member_paypal_proxy') as $key)
|
60 |
$paypal[$key] = isset($paypal[$key]) ? $paypal[$key] : '';
|
61 |
-
// Prevent list() warning when missing a value, e.g. no ccaps
|
62 |
-
if (!empty($paypal['item_number']))
|
63 |
-
$paypal['item_number'] .= ':';
|
64 |
|
65 |
$paypal["s2member_log"][] = "Return-Data received on: " . date ("D M j, Y g:i:s a T");
|
66 |
$paypal["s2member_log"][] = "s2Member POST vars verified " . ((!empty($paypal["proxy_verified"])) ? "with a Proxy Key" : "through a POST back to PayPal.");
|
58 |
// Initialize a few array keys to prevent PHP warnings.
|
59 |
foreach (array('level', 'ccaps', 'option_name1', 'option_selection1', 'option_name2', 'option_selection2', 'invoice', 'payment_status', 'mc_currency', 's2member_paypal_proxy') as $key)
|
60 |
$paypal[$key] = isset($paypal[$key]) ? $paypal[$key] : '';
|
|
|
|
|
|
|
61 |
|
62 |
$paypal["s2member_log"][] = "Return-Data received on: " . date ("D M j, Y g:i:s a T");
|
63 |
$paypal["s2member_log"][] = "s2Member POST vars verified " . ((!empty($paypal["proxy_verified"])) ? "with a Proxy Key" : "through a POST back to PayPal.");
|
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:
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
|
7 |
-
"POT-Creation-Date: 2022-10-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -4335,9 +4335,9 @@ msgstr ""
|
|
4335 |
#: src/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:175
|
4336 |
#: src/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:186
|
4337 |
#: src/includes/classes/paypal-return-in-web-accept-sp.inc.php:127
|
4338 |
-
#: src/includes/classes/paypal-return-in.inc.php:
|
4339 |
-
#: src/includes/classes/paypal-return-in.inc.php:
|
4340 |
-
#: src/includes/classes/paypal-return-in.inc.php:
|
4341 |
msgctxt "s2member-front"
|
4342 |
msgid "Back To Home Page"
|
4343 |
msgstr ""
|
@@ -4436,17 +4436,17 @@ msgctxt "s2member-front"
|
|
4436 |
msgid "<strong>ERROR:</strong> Unable to generate Access Link.<br />Please contact Support for assistance."
|
4437 |
msgstr ""
|
4438 |
|
4439 |
-
#: src/includes/classes/paypal-return-in.inc.php:
|
4440 |
msgctxt "s2member-front"
|
4441 |
msgid "<strong>ERROR:</strong> Unexpected <code>txn_type/status</code>.<br />The <code>txn_type/status</code> did not meet requirements.<br />Please contact Support for assistance."
|
4442 |
msgstr ""
|
4443 |
|
4444 |
-
#: src/includes/classes/paypal-return-in.inc.php:
|
4445 |
msgctxt "s2member-front"
|
4446 |
msgid "<strong>ERROR:</strong> Unable to verify <code>$_SERVER[\"HTTP_HOST\"]</code>.<br />Please contact Support for assistance.<br /><br />If you are the site owner, please check the <code>custom</code> value in your Button Code. It MUST start with your domain name."
|
4447 |
msgstr ""
|
4448 |
|
4449 |
-
#: src/includes/classes/paypal-return-in.inc.php:
|
4450 |
msgctxt "s2member-front"
|
4451 |
msgid "<strong>ERROR:</strong> Unable to verify <code>$_POST</code> vars.<br />Please contact Support for assistance.<br /><br />This is most likely related to an invalid configuration of s2Member, or a problem with server compatibility. If you are the site owner, and you're absolutely SURE that your configuration is valid, you may want to run some tests on your server, just to be sure <code>$_POST</code> variables are populated, and that your server is able to connect/communicate with your Payment Gateway over an HTTPS connection.<br /><br />s2Member uses the <code>WP_Http</code> class for remote connections; which will try to use <code>cURL</code> first, and then fall back on the <code>FOPEN</code> method when <code>cURL</code> is not available. On a Windows server, you may have to disable your <code>cURL</code> extension; and instead, set <code>allow_url_fopen = yes</code> in your php.ini file. The <code>cURL</code> extension (usually) does NOT support SSL connections on a Windows server.<br /><br />Please see <a href=\"http://www.s2member.com/forums/topic/ideal-server-configuration-for-s2member/\" target=\"_blank\">this thread</a> for details regarding the ideal server configuration for s2Member."
|
4452 |
msgstr ""
|
2 |
# This file is distributed under the same license as the package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: 221031\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
|
7 |
+
"POT-Creation-Date: 2022-10-31 00:52:23+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
4335 |
#: src/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:175
|
4336 |
#: src/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:186
|
4337 |
#: src/includes/classes/paypal-return-in-web-accept-sp.inc.php:127
|
4338 |
+
#: src/includes/classes/paypal-return-in.inc.php:100
|
4339 |
+
#: src/includes/classes/paypal-return-in.inc.php:121
|
4340 |
+
#: src/includes/classes/paypal-return-in.inc.php:147
|
4341 |
msgctxt "s2member-front"
|
4342 |
msgid "Back To Home Page"
|
4343 |
msgstr ""
|
4436 |
msgid "<strong>ERROR:</strong> Unable to generate Access Link.<br />Please contact Support for assistance."
|
4437 |
msgstr ""
|
4438 |
|
4439 |
+
#: src/includes/classes/paypal-return-in.inc.php:99
|
4440 |
msgctxt "s2member-front"
|
4441 |
msgid "<strong>ERROR:</strong> Unexpected <code>txn_type/status</code>.<br />The <code>txn_type/status</code> did not meet requirements.<br />Please contact Support for assistance."
|
4442 |
msgstr ""
|
4443 |
|
4444 |
+
#: src/includes/classes/paypal-return-in.inc.php:120
|
4445 |
msgctxt "s2member-front"
|
4446 |
msgid "<strong>ERROR:</strong> Unable to verify <code>$_SERVER[\"HTTP_HOST\"]</code>.<br />Please contact Support for assistance.<br /><br />If you are the site owner, please check the <code>custom</code> value in your Button Code. It MUST start with your domain name."
|
4447 |
msgstr ""
|
4448 |
|
4449 |
+
#: src/includes/classes/paypal-return-in.inc.php:146
|
4450 |
msgctxt "s2member-front"
|
4451 |
msgid "<strong>ERROR:</strong> Unable to verify <code>$_POST</code> vars.<br />Please contact Support for assistance.<br /><br />This is most likely related to an invalid configuration of s2Member, or a problem with server compatibility. If you are the site owner, and you're absolutely SURE that your configuration is valid, you may want to run some tests on your server, just to be sure <code>$_POST</code> variables are populated, and that your server is able to connect/communicate with your Payment Gateway over an HTTPS connection.<br /><br />s2Member uses the <code>WP_Http</code> class for remote connections; which will try to use <code>cURL</code> first, and then fall back on the <code>FOPEN</code> method when <code>cURL</code> is not available. On a Windows server, you may have to disable your <code>cURL</code> extension; and instead, set <code>allow_url_fopen = yes</code> in your php.ini file. The <code>cURL</code> extension (usually) does NOT support SSL connections on a Windows server.<br /><br />Please see <a href=\"http://www.s2member.com/forums/topic/ideal-server-configuration-for-s2member/\" target=\"_blank\">this thread</a> for details regarding the ideal server configuration for s2Member."
|
4452 |
msgstr ""
|
src/vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInitb449e787f57d052460d43513ef9b1a92::getLoader();
|
src/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 |
|
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit6d82bbede45e400be5d087d6543b416a
|
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
-
spl_autoload_register(array('
|
26 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
27 |
-
spl_autoload_unregister(array('
|
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\
|
34 |
} else {
|
35 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
36 |
foreach ($map as $namespace => $path) {
|
@@ -51,19 +51,19 @@ class ComposerAutoloaderInit6d82bbede45e400be5d087d6543b416a
|
|
51 |
$loader->register(true);
|
52 |
|
53 |
if ($useStaticLoader) {
|
54 |
-
$includeFiles = Composer\Autoload\
|
55 |
} else {
|
56 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
57 |
}
|
58 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
59 |
-
|
60 |
}
|
61 |
|
62 |
return $loader;
|
63 |
}
|
64 |
}
|
65 |
|
66 |
-
function
|
67 |
{
|
68 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
69 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInitb449e787f57d052460d43513ef9b1a92
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
+
spl_autoload_register(array('ComposerAutoloaderInitb449e787f57d052460d43513ef9b1a92', 'loadClassLoader'), true, true);
|
26 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
27 |
+
spl_autoload_unregister(array('ComposerAutoloaderInitb449e787f57d052460d43513ef9b1a92', '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\ComposerStaticInitb449e787f57d052460d43513ef9b1a92::getInitializer($loader));
|
34 |
} else {
|
35 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
36 |
foreach ($map as $namespace => $path) {
|
51 |
$loader->register(true);
|
52 |
|
53 |
if ($useStaticLoader) {
|
54 |
+
$includeFiles = Composer\Autoload\ComposerStaticInitb449e787f57d052460d43513ef9b1a92::$files;
|
55 |
} else {
|
56 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
57 |
}
|
58 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
59 |
+
composerRequireb449e787f57d052460d43513ef9b1a92($fileIdentifier, $file);
|
60 |
}
|
61 |
|
62 |
return $loader;
|
63 |
}
|
64 |
}
|
65 |
|
66 |
+
function composerRequireb449e787f57d052460d43513ef9b1a92($fileIdentifier, $file)
|
67 |
{
|
68 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
69 |
require $file;
|
src/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 |
'5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
|
@@ -30,7 +30,7 @@ class ComposerStaticInit6d82bbede45e400be5d087d6543b416a
|
|
30 |
public static function getInitializer(ClassLoader $loader)
|
31 |
{
|
32 |
return \Closure::bind(function () use ($loader) {
|
33 |
-
$loader->classMap =
|
34 |
|
35 |
}, null, ClassLoader::class);
|
36 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInitb449e787f57d052460d43513ef9b1a92
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
|
30 |
public static function getInitializer(ClassLoader $loader)
|
31 |
{
|
32 |
return \Closure::bind(function () use ($loader) {
|
33 |
+
$loader->classMap = ComposerStaticInitb449e787f57d052460d43513ef9b1a92::$classMap;
|
34 |
|
35 |
}, null, ClassLoader::class);
|
36 |
}
|