Version Description
= v151210 =
(Maintenance Release) Upgrade immediately.
Download this release
Release Info
Developer | JasWSInc |
Plugin | s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) |
Version | 151210 |
Comparing to | |
See all releases |
Code changes from version 150925 to 151210
- changelog.md +72 -0
- checksum.txt +1 -1
- includes/classes/access-cap-times.inc.php +1 -1
- includes/classes/admin-css-js-in.inc.php +1 -1
- includes/classes/admin-css-js.inc.php +1 -1
- includes/classes/admin-lockouts.inc.php +1 -1
- includes/classes/admin-notices.inc.php +1 -1
- includes/classes/auto-eots.inc.php +12 -5
- includes/classes/aweber-e.inc.php +1 -1
- includes/classes/aweber.inc.php +1 -1
- includes/classes/brute-force.inc.php +1 -1
- includes/classes/cache.inc.php +1 -1
- includes/classes/catgs-sp.inc.php +1 -1
- includes/classes/catgs.inc.php +1 -1
- includes/classes/check-activation.inc.php +1 -1
- includes/classes/constants.inc.php +1 -1
- includes/classes/cron-jobs-in.inc.php +14 -14
- includes/classes/cron-jobs.inc.php +1 -1
- includes/classes/css-js-in.inc.php +1 -1
- includes/classes/css-js-themes.inc.php +1 -1
- includes/classes/css-js.inc.php +1 -1
- includes/classes/custom-reg-fields-4bp.inc.php +1 -1
- includes/classes/custom-reg-fields.inc.php +1 -1
- includes/classes/database.inc.php +1 -1
- includes/classes/email-configs.inc.php +9 -10
- includes/classes/files-in.inc.php +2 -2
- includes/classes/files.inc.php +1 -1
- includes/classes/getresponse.inc.php +1 -1
- includes/classes/installation.inc.php +4 -5
- includes/classes/ip-restrictions.inc.php +1 -1
- includes/classes/labels.inc.php +1 -1
- includes/classes/list-server-base.inc.php +1 -1
- includes/classes/list-servers.inc.php +1 -1
- includes/classes/login-checks.inc.php +1 -1
- includes/classes/login-customizations.inc.php +1 -1
- includes/classes/login-redirects-r.inc.php +1 -1
- includes/classes/login-redirects.inc.php +1 -1
- includes/classes/mailchimp-o.inc.php +1 -1
- includes/classes/mailchimp.inc.php +1 -1
- includes/classes/menu-pages-rs.inc.php +2 -2
- includes/classes/menu-pages-tb.inc.php +1 -1
- includes/classes/menu-pages.inc.php +3 -3
- includes/classes/meta-box-saves.inc.php +1 -1
- includes/classes/meta-box-security.inc.php +1 -1
- includes/classes/meta-boxes.inc.php +1 -1
- includes/classes/mms-patches.inc.php +1 -1
- includes/classes/mo-page-in.inc.php +1 -1
- includes/classes/mo-page.inc.php +1 -1
- includes/classes/no-cache.inc.php +1 -1
- includes/classes/op-notices.inc.php +1 -1
- includes/classes/option-forces.inc.php +1 -1
- includes/classes/pages-sp.inc.php +1 -1
- includes/classes/pages.inc.php +1 -1
- includes/classes/paypal-notify-in-billing-agreement-signup.inc.php +1 -1
- includes/classes/paypal-notify-in-cart.inc.php +1 -1
- includes/classes/paypal-notify-in-express-checkout.inc.php +1 -1
- includes/classes/paypal-notify-in-rec-profile-creation-w-level.inc.php +1 -1
- includes/classes/paypal-notify-in-send-money.inc.php +1 -1
- includes/classes/paypal-notify-in-sp-refund-reversal.inc.php +6 -6
- includes/classes/paypal-notify-in-subscr-modify-w-level.inc.php +11 -11
- includes/classes/paypal-notify-in-subscr-or-rp-cancellation-w-level.inc.php +6 -6
- includes/classes/paypal-notify-in-subscr-or-rp-eots-w-level.inc.php +9 -9
- includes/classes/paypal-notify-in-subscr-or-rp-payment-failed-w-level.inc.php +1 -1
- includes/classes/paypal-notify-in-subscr-or-rp-payment-w-level.inc.php +6 -6
- includes/classes/paypal-notify-in-subscr-or-wa-w-level.inc.php +27 -27
- includes/classes/paypal-notify-in-virtual-terminal.inc.php +1 -1
- includes/classes/paypal-notify-in-wa-ccaps-wo-level.inc.php +13 -13
- includes/classes/paypal-notify-in-web-accept-sp.inc.php +14 -14
- includes/classes/paypal-notify-in.inc.php +13 -25
- includes/classes/paypal-notify.inc.php +1 -1
- includes/classes/paypal-return-in-no-tx-data.inc.php +1 -1
- includes/classes/paypal-return-in-proxy-ty-email.inc.php +1 -1
- includes/classes/paypal-return-in-proxy-x-preview.inc.php +1 -1
- includes/classes/paypal-return-in-subscr-modify-w-level.inc.php +4 -4
- includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php +5 -5
- includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php +4 -4
- includes/classes/paypal-return-in-web-accept-sp.inc.php +4 -4
- includes/classes/paypal-return-in.inc.php +8 -20
- includes/classes/paypal-return.inc.php +1 -1
- includes/classes/paypal-utilities.inc.php +1 -1
- includes/classes/posts-sp.inc.php +1 -1
- includes/classes/posts.inc.php +1 -1
- includes/classes/profile-in.inc.php +1 -1
- includes/classes/profile-mods-4bp-in.inc.php +1 -1
- includes/classes/profile-mods-4bp.inc.php +1 -1
- includes/classes/profile-mods-in.inc.php +1 -1
- includes/classes/profile-mods.inc.php +1 -1
- includes/classes/profile.inc.php +1 -1
- includes/classes/ptags-sp.inc.php +1 -1
- includes/classes/ptags.inc.php +1 -1
- includes/classes/querys.inc.php +1 -1
- includes/classes/readmes.inc.php +1 -1
- includes/classes/register-access.inc.php +1 -1
- includes/classes/register-in.inc.php +1 -1
- includes/classes/register.inc.php +1 -1
- includes/classes/registration-times.inc.php +1 -1
- includes/classes/registrations.inc.php +4 -7
- includes/classes/return-templates.inc.php +1 -1
- includes/classes/roles-caps.inc.php +1 -1
- includes/classes/ruris-sp.inc.php +1 -1
- includes/classes/ruris.inc.php +1 -1
- includes/classes/s-badge-status-in.inc.php +1 -1
- includes/classes/s-badge-status.inc.php +1 -1
- includes/classes/sc-eots-in.inc.php +1 -1
- includes/classes/sc-eots.inc.php +1 -1
- includes/classes/sc-files-in.inc.php +1 -1
- includes/classes/sc-files.inc.php +1 -1
- includes/classes/sc-gets-in.inc.php +1 -1
- includes/classes/sc-gets.inc.php +1 -1
- includes/classes/sc-if-conds-in.inc.php +1 -1
- includes/classes/sc-if-conds.inc.php +1 -1
- includes/classes/sc-keys-in.inc.php +1 -1
- includes/classes/sc-keys.inc.php +1 -1
- includes/classes/sc-paypal-button-e.inc.php +1 -1
- includes/classes/sc-paypal-button-in.inc.php +2 -2
- includes/classes/sc-paypal-button.inc.php +1 -1
- includes/classes/sc-profile-in.inc.php +1 -1
- includes/classes/sc-profile.inc.php +1 -1
- includes/classes/sc-s-badge-in.inc.php +1 -1
- includes/classes/sc-s-badge.inc.php +1 -1
- includes/classes/security.inc.php +1 -1
- includes/classes/sp-access.inc.php +1 -1
- includes/classes/ssl-in.inc.php +1 -1
- includes/classes/ssl.inc.php +1 -1
- includes/classes/systematics-sp.inc.php +1 -1
- includes/classes/systematics.inc.php +1 -1
- includes/classes/tracking-codes.inc.php +1 -1
- includes/classes/tracking-cookies-in.inc.php +1 -1
- includes/classes/tracking-cookies.inc.php +1 -1
- includes/classes/translations.inc.php +1 -1
- includes/classes/user-access.inc.php +1 -1
- includes/classes/user-deletions.inc.php +6 -5
- includes/classes/user-new-in.inc.php +1 -1
- includes/classes/user-new.inc.php +1 -1
- includes/classes/user-notes.inc.php +1 -1
- includes/classes/user-securities.inc.php +1 -1
- includes/classes/users-list-in.inc.php +1 -1
- includes/classes/users-list.inc.php +1 -1
- includes/classes/utilities.inc.php +1 -1
- includes/classes/utils-arrays.inc.php +1 -1
- includes/classes/utils-captchas.inc.php +1 -1
- includes/classes/utils-conds.inc.php +1 -1
- includes/classes/utils-css.inc.php +1 -1
- includes/classes/utils-cur.inc.php +1 -1
- includes/classes/utils-dirs.inc.php +1 -1
- includes/classes/utils-encryption.inc.php +1 -1
- includes/classes/utils-forms.inc.php +1 -1
- includes/classes/utils-gets.inc.php +1 -1
- includes/classes/utils-html.inc.php +1 -1
- includes/classes/utils-logs.inc.php +14 -10
- includes/classes/utils-s2o.inc.php +4 -3
- includes/classes/utils-strings.inc.php +14 -2
- includes/classes/utils-time.inc.php +60 -29
- includes/classes/utils-urls.inc.php +1 -1
- includes/classes/utils-users.inc.php +1 -1
- includes/classes/wp-footer.inc.php +1 -1
- includes/codes.inc.php +1 -1
- includes/externals/mailchimp/Mailchimp-o.php +1 -1
- includes/externals/markdown/nc-markdown.inc.php +2 -2
- includes/funcs.inc.php +1 -1
- includes/functions/api-functions.inc.php +1 -1
- includes/functions/class-autoloader.inc.php +1 -1
- includes/functions/deprecated.inc.php +1 -1
- includes/functions/pluggables.inc.php +1 -1
- includes/hooks.inc.php +2 -1
- includes/jquery/jquery.json-ps/jquery.json-ps.js +1 -1
- includes/jquery/jquery.sprintf/jquery.sprintf.js +1 -1
- includes/jquery/jquery.ui-effects/jquery.ui-effects.js +1 -1
- includes/menu-pages/api-ops.inc.php +1 -1
- includes/menu-pages/down-ops.inc.php +1 -1
- includes/menu-pages/els-ops.inc.php +1 -1
- includes/menu-pages/gen-ops.inc.php +3 -1
- includes/menu-pages/integrations.inc.php +1 -1
- includes/menu-pages/logs.inc.php +6 -6
- includes/menu-pages/menu-pages-s-min.js +1 -1
- includes/menu-pages/menu-pages-s.css +1 -1
- includes/menu-pages/menu-pages-s.js +11 -1
- includes/menu-pages/menu-pages.css +34 -1
- includes/menu-pages/menu-pages.js +1 -1
- includes/menu-pages/mms-ops.inc.php +1 -1
- includes/menu-pages/paypal-buttons.inc.php +2 -2
- includes/menu-pages/paypal-ops.inc.php +1 -1
- includes/menu-pages/res-ops.inc.php +1 -1
- includes/menu-pages/scripting.inc.php +1 -1
- includes/menu-pages/start.inc.php +48 -80
- includes/menu-pages/trk-ops.inc.php +1 -1
- includes/menu-pages/updates.inc.php +1 -1
- includes/s2member.css +1 -1
- includes/s2member.js +1 -1
- includes/syscon.inc.php +1 -1
- includes/translations/s2member.pot +125 -120
- readme.txt +97 -25
- s2member-o.php +1 -1
- s2member.php +23 -18
changelog.md
CHANGED
@@ -1,3 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
= v150925 =
|
2 |
|
3 |
- (s2Member/s2Member Pro) **WP v4.3 Compat.** This release corrects a minor backward compatibility issue with versions of WordPress before v4.3, and for installations of s2Member that still use the `%%user_pass%%` Replacement Code in their New User Email notification. See [this GitHub issue](https://github.com/websharks/s2member/issues/710) if you'd like additional details.
|
1 |
+
= v151210 =
|
2 |
+
|
3 |
+
- (s2Member/s2Member Pro) **WP/PHP Compat:** Updated for compatibility with WordPress 4.4 and PHP v7.0. Note that s2Member and s2Member Pro also remain compatible with WordPress 4.3 and PHP 5.2. However, PHP 5.5+ is strongly recommended.
|
4 |
+
|
5 |
+
- (s2Member Pro) **New Feature! EOT Renewal/Reminder Email Notifications:** This release adds a long-awaited feature which allows you to configure & send EOT Renewal/Reminder Email notifications to your customers; to let them know their account with you will expire soon.
|
6 |
+
|
7 |
+
It's possible to configure one or more notifications, each with a different set of recipients, and a different subject and message body. Notifications can be sent out X days before the EOT occurs, _the day_ of the EOT, or X days after the EOT has already occurred; e.g., to encourage renewals.
|
8 |
+
|
9 |
+
See: **Dashboard → s2Member → Stripe Options → EOT Renewal/Reminder Email(s)**
|
10 |
+
_Also works with PayPal Pro, Authorize.Net, and ClickBank._
|
11 |
+
|
12 |
+
Props @clavaque @KTS915 @raamdev @patdumond @kristineds @pagelab @chronicelite @csexplorer17 @radven, and all of our great supporters. See [this GitHub issue](https://github.com/websharks/s2member/issues/122#issuecomment-161531763).
|
13 |
+
|
14 |
+
- (s2Member/s2Member Pro) **Cleanup:** This release improves the list of Other Gateways; moving deprecated payment gateways to the bottom of the list and improving the display of the list overall. Props @kristineds @clavaque. For further details, see [this GitHub issue](https://github.com/websharks/s2member/issues/715).
|
15 |
+
|
16 |
+
- (s2Member/s2Member Pro) **Bug Fix:** This release corrects an "Insecure Content Warning" that may have appeared in certain portions of the s2Member Dashboard panels whenever you accessed your Dashboard over the `https` protocol. The issue was seen in Google Chrome and it was simply a `<form>` tag that referenced the s2Member mailing list. This is now hidden by default if you access the Dashboard over SSL, in order to avoid this warning. Props @patdumond for reporting. Props @renzms for fixing. See also [this GitHub issue](https://github.com/websharks/s2member/issues/678) if you'd like additional details.
|
17 |
+
|
18 |
+
- (s2Member Pro) **Stripe Locale:** This release adjusts the Stripe overlay so that it will automatically display in the language associated with a visitor's country. This was accomplished by setting the Stripe Checkout variable `locale: 'auto'` as suggested in [this GitHub issue](https://github.com/websharks/s2member/issues/728). Props @renzms
|
19 |
+
|
20 |
+
- (s2Member Pro) **Stripe Bug Fix:** This release improves the way Stripe Image Branding and Stripe Statement Descriptions are applied whenever you intentionally leave them empty. It also changes the default value of Stripe Image Branding to an empty string; which will tell Stripe to use the account-level default value that you configured in your Stripe Dashboard in favor of that which you configure with s2Member. The choice is still yours, but this release sets what others have told us are better default values. See also [this GitHub issue](https://github.com/websharks/s2member/issues/666) if you'd like additional details.
|
21 |
+
|
22 |
+
- (s2Member Pro) **Stripe Enhancement:** This release makes it possible to configure the Stripe "Remember Me" functionality with s2Member; i.e., it is now possible to turn this on/off if you so desire. See also [this GitHub issue](https://github.com/websharks/s2member/issues/357) for details.
|
23 |
+
|
24 |
+
- (s2Member Pro) **Stripe Enhancement:** This release makes it possible for you to tell Stripe to collect a customer's full Billing Address and/or full Shipping Address. See [this GitHub issue](https://github.com/websharks/s2member/issues/667) for additional details.
|
25 |
+
|
26 |
+
- (s2Member/s2Member Pro) **UI Clarity:** This release improves the way the New User Email Notification panel behaves whenever you also have Custom Passwords enabled with s2Member. The New User Email Notification is only sent when Custom Passwords are off, so this panel should disable itself whenever that is the case. Fixed in this release. Props @raamdev See also: [this GitHub issue](https://github.com/websharks/s2member/issues/739) if you'd like additional details.
|
27 |
+
|
28 |
+
- (s2Member/s2Member Pro) **Bug Fix:** This release resolves a minor issue for developers running Vagrant and VVV with symlink plugins. Props @magbicaleman ~ See [this GitHub issue](https://github.com/websharks/s2member/issues/717) for further details.
|
29 |
+
|
30 |
+
- (s2Member Pro) **Conflict Resolution:** This release resolves a conflict with the WP Full Stripe plugin and any other plugins that already load an existing copy of the Stripe SDK at runtime; in concert with s2Member Pro. See [this GitHub issue](https://github.com/websharks/s2member/issues/750) if you'd like additional details.
|
31 |
+
|
32 |
+
- (s2Member/s2Member Pro) **New Log File:** This release of s2Member adds a new log file that keeps track of all automatic EOTs that occur through the underlying CRON job. The new log file is named: `auto-eot-system.log` and you can learn more about this file and view it from: **Dashboard → s2Member → Log Files (Debug) → Log Viewer**. Props @raamdev ~ See [this GitHub issue](https://github.com/websharks/s2member/issues/759) if you'd like additional details.
|
33 |
+
|
34 |
+
- (s2Member Pro) **`[s2Member-List /]` Bug Fix:** This release resolves a problem in the `[s2Member-List /]` shortcode whenever it is configured to search Custom Fields generated with s2Member. Props @patdumond @renzms. See [this GitHub issue](https://github.com/websharks/s2member/issues/765) if you'd like additional details.
|
35 |
+
|
36 |
+
- (s2Member Pro) **Stripe Enhancement:** This release updates s2Member's Stripe integration so that any Buy Now transaction spawns a Stripe popup with the amount and full description filled within the popup itself as well. Props @raamdev. See [this GitHub issue](https://github.com/websharks/s2member/issues/749) for further details.
|
37 |
+
|
38 |
+
- (s2Member/s2Member Pro) **WP v4.3 Compat.** This release addresses a minor conflict between functionality provided by s2Member and that of the WordPress core itself. Whenever you change a user's password by editing their account, you can choose to send them an email about this change (or not). Since WordPress v4.3, the WordPress core will _also_ send a more vague email to notify the user of a password change, which is not customizable. This release disables that default email notification in favor of the more helpful and customizable email message that can be sent by s2Member. Simply tick the "Reset Password & Resend New User Email Notification" checkbox whenever you are editing a user. Props @patdumond for reporting. See also [this GitHub issue](https://github.com/websharks/s2member/issues/777) if you'd like additional details.
|
39 |
+
|
40 |
+
- (s2Member/s2Member Pro) **PayPal Compat.** This release resolves a conflict between s2Member and a nasty bug at PayPal.com that came to light recently. In some cases, customers reported that clicking the "Continue" button at PayPal.com simply reloaded the page and gave no response. We found that this was attributed to a bug on the PayPal side (see [792](https://github.com/websharks/s2member/issues/792)). To work around this bug, we are using a new default value for the `ns="1"` shortcode attribute in PayPal Pro-Forms and PayPal Buttons. The new default value is `ns="0"`, which seems to work around this bug for the time being. Props @patdumond @raamdev for reporting and testing this fix. See also [full report here](https://github.com/websharks/s2member/issues/792).
|
41 |
+
|
42 |
+
- `ns="0"` (**new default**) = prompt for a shipping address, but do not require one
|
43 |
+
- `ns="1"` (old default) = do not prompt for a shipping address whatsoever
|
44 |
+
|
45 |
+
See also: **Dashboard → s2Member → PayPal Pro-Forms → PayPal Shortcode Attributes (Explained)**
|
46 |
+
|
47 |
+
- (s2Member/s2Member Pro) **Getting Started:** The old Quick Start Guide was renamed to "Getting Started" in this release. It was also cleaned up and improved a bit; i.e., brought up-to-date. In addition, there is a new welcome message for first-time users of the software that invites them to read over the Getting Started page before they begin. Props @raamdev. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/655).
|
48 |
+
|
49 |
+
- (s2Member Pro) **Stripe Bug Fix:** This release corrects a problem with Stripe refund and chargeback notification handling. s2Member Pro will now receive and handle Stripe refund and/or chargeback events (through your existing Webhook) as expected.
|
50 |
+
|
51 |
+
See: **Dashboard → s2Member → Stripe Options → Automatic EOT Behavior** for options that allow you to control the way in which s2Member should respond whenever a refund is processed, or when a dispute (chargeback) occurs at Stripe.
|
52 |
+
|
53 |
+
Props @ElizWS and @tubiz w/ AffiliateWP. See also [this GitHub issue](https://github.com/websharks/s2member/issues/706).
|
54 |
+
|
55 |
+
- (s2Member Pro) **`[s2Member-List /]`** Added the ability to search usermeta data too. For instance, you can now search `first_name`, `last_name`, `nickname`, `description`, `s2member_subscr_id`, `s2member_custom`, etc, etc. See [this GitHub issue](https://github.com/websharks/s2member/issues/596).
|
56 |
+
|
57 |
+
_**Note:** The `first_name`, `last_name`, and `nickname` columns are now a part of the default value for the `search_columns=""` attribute in the `[s2Member-List /]` shortcode. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/596). Props @patdumond for her ideas._
|
58 |
+
|
59 |
+
- (s2Member Pro) **`[s2Member-List /]`** There are some new `orderby=""` options. You may now choose to order the list by: `first_name`, `last_name`, or `nickname`.
|
60 |
+
|
61 |
+
- (s2Member Pro) **`[s2Member-List /]`** It is now possible to search through s2Member Custom Registration/Profile Fields that may contain an array of values; i.e., you can now search _any_ Custom Registration/Profile Field in s2Member. For instance, if a field is designed to accept multiple selections, or you provide a set of multiple checkbox options. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/555).
|
62 |
+
|
63 |
+
- (s2Member Pro) **`[s2Member-List /]` Bug Fix:** Meta fields that contained a timestamp were being displayed by the `date_i18n()` function in WP core. However, the time offset calculation was wrong; i.e., not a match to the local time configured by your installation of WordPress. Fixed in this release.
|
64 |
+
|
65 |
+
- (s2Member Pro) **`[s2Member-List /]` Bug Fix:** Minor formatting corrections for replacement codes made available for the `link_*=""` attributes in the `[s2Member-List /]` shortcode.
|
66 |
+
|
67 |
+
- (s2Member Pro) **`[s2Member-List /]`:** It is now possible to search for an exact match by surrounding your search query with double quotes; e.g., `"john doe"` (in quotes, for an exact match), instead of the default behavior, which is `*john doe*` behind-the-scenes; i.e., a fuzzy match.
|
68 |
+
|
69 |
+
- (s2Member Pro) **`[s2Member-List /]`:** Several behind-the-scenes performance enhancements.
|
70 |
+
|
71 |
+
- (s2Member/s2Member Pro) **PHP 7 Compat.** This release of s2Member removes its use of the `/e` modifier in calls to `preg_replace()`, which was deprecated in PHP 5.5 and has been removed in PHP 7. Props @bridgeport. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/415).
|
72 |
+
|
73 |
= v150925 =
|
74 |
|
75 |
- (s2Member/s2Member Pro) **WP v4.3 Compat.** This release corrects a minor backward compatibility issue with versions of WordPress before v4.3, and for installations of s2Member that still use the `%%user_pass%%` Replacement Code in their New User Email notification. See [this GitHub issue](https://github.com/websharks/s2member/issues/710) if you'd like additional details.
|
checksum.txt
CHANGED
@@ -1 +1 @@
|
|
1 |
-
|
1 |
+
95ca15ddfbbd89600e1ac81f5ac3e577
|
includes/classes/access-cap-times.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Access CAP Times.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Access CAP Times.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/admin-css-js-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Administrative CSS/JS for menu pages (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Administrative CSS/JS for menu pages (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/admin-css-js.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Administrative CSS/JS for menu pages.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Administrative CSS/JS for menu pages.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/admin-lockouts.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Locks Users/Members out of admin panels.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Locks Users/Members out of admin panels.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/admin-notices.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Enqueues/displays administrative notices.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Enqueues/displays administrative notices.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/auto-eots.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's Auto-EOT System *(EOT = End Of Term)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -127,11 +127,15 @@ if(!class_exists('c_ws_plugin__s2member_auto_eots'))
|
|
127 |
delete_user_option($user_id, 's2member_last_auto_eot_time');
|
128 |
delete_user_option($user_id, 's2member_auto_eot_time');
|
129 |
|
|
|
|
|
|
|
130 |
if(!$user->has_cap('administrator') /* Do NOT process Administrator accounts. */)
|
131 |
{
|
132 |
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['membership_eot_behavior'] === 'demote')
|
133 |
{
|
134 |
$eot_del_type = 'auto-eot-cancellation-expiration-demotion'; // Set EOT/Del type.
|
|
|
135 |
|
136 |
$custom = get_user_option('s2member_custom', $user_id);
|
137 |
$subscr_gateway = get_user_option('s2member_subscr_gateway', $user_id);
|
@@ -183,11 +187,11 @@ if(!class_exists('c_ws_plugin__s2member_auto_eots'))
|
|
183 |
if($subscr_gateway && $subscr_id) // Also note the Paid Subscr. Gateway/ID so there is a reference left behind here.
|
184 |
c_ws_plugin__s2member_user_notes::append_user_notes($user_id, 'Paid Subscr. ID @ time of demotion: '.$subscr_gateway.' → '.$subscr_id);
|
185 |
|
186 |
-
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_urls']
|
187 |
{
|
188 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_urls']) as $url) // Handle EOT Notifications.
|
189 |
|
190 |
-
if(($url =
|
191 |
if(($url = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->first_name)), $url)) && ($url = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->last_name)), $url)))
|
192 |
if(($url = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(trim($user->first_name.' '.$user->last_name))), $url)))
|
193 |
if(($url = preg_replace('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->user_email)), $url)))
|
@@ -204,7 +208,7 @@ if(!class_exists('c_ws_plugin__s2member_auto_eots'))
|
|
204 |
c_ws_plugin__s2member_utils_urls::remote($url);
|
205 |
}
|
206 |
}
|
207 |
-
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_recipients']
|
208 |
{
|
209 |
$email_configs_were_on = c_ws_plugin__s2member_email_configs::email_config_status();
|
210 |
c_ws_plugin__s2member_email_configs::email_config_release();
|
@@ -239,7 +243,7 @@ if(!class_exists('c_ws_plugin__s2member_auto_eots'))
|
|
239 |
$msg .= 'cv8: %%cv8%%'."\n";
|
240 |
$msg .= 'cv9: %%cv9%%';
|
241 |
|
242 |
-
if(($msg =
|
243 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($subscr_baid), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($subscr_cid), $msg)))
|
244 |
if(($msg = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->first_name), $msg)) && ($msg = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->last_name), $msg)))
|
245 |
if(($msg = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($user->first_name.' '.$user->last_name)), $msg)))
|
@@ -267,6 +271,7 @@ if(!class_exists('c_ws_plugin__s2member_auto_eots'))
|
|
267 |
else if($GLOBALS['WS_PLUGIN__']['s2member']['o']['membership_eot_behavior'] === 'delete')
|
268 |
{
|
269 |
$eot_del_type = $GLOBALS['ws_plugin__s2member_eot_del_type'] = 'auto-eot-cancellation-expiration-deletion';
|
|
|
270 |
|
271 |
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
272 |
do_action('ws_plugin__s2member_during_auto_eot_system_during_before_delete', get_defined_vars());
|
@@ -290,6 +295,8 @@ if(!class_exists('c_ws_plugin__s2member_auto_eots'))
|
|
290 |
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
291 |
do_action('ws_plugin__s2member_during_auto_eot_system', get_defined_vars());
|
292 |
unset($__refs, $__v); // Housekeeping.
|
|
|
|
|
293 |
}
|
294 |
}
|
295 |
}
|
3 |
* s2Member's Auto-EOT System *(EOT = End Of Term)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
127 |
delete_user_option($user_id, 's2member_last_auto_eot_time');
|
128 |
delete_user_option($user_id, 's2member_auto_eot_time');
|
129 |
|
130 |
+
$log_entry = array('user' => (array)$user); // Intialize.
|
131 |
+
$log_entry['auto_eot_time'] = $auto_eot_time; // Record EOT time.
|
132 |
+
|
133 |
if(!$user->has_cap('administrator') /* Do NOT process Administrator accounts. */)
|
134 |
{
|
135 |
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['membership_eot_behavior'] === 'demote')
|
136 |
{
|
137 |
$eot_del_type = 'auto-eot-cancellation-expiration-demotion'; // Set EOT/Del type.
|
138 |
+
$log_entry['eot_del_type'] = $eot_del_type; // Deleting user in this case.
|
139 |
|
140 |
$custom = get_user_option('s2member_custom', $user_id);
|
141 |
$subscr_gateway = get_user_option('s2member_subscr_gateway', $user_id);
|
187 |
if($subscr_gateway && $subscr_id) // Also note the Paid Subscr. Gateway/ID so there is a reference left behind here.
|
188 |
c_ws_plugin__s2member_user_notes::append_user_notes($user_id, 'Paid Subscr. ID @ time of demotion: '.$subscr_gateway.' → '.$subscr_id);
|
189 |
|
190 |
+
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_urls'])
|
191 |
{
|
192 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_urls']) as $url) // Handle EOT Notifications.
|
193 |
|
194 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $custom, true)) && ($url = preg_replace('/%%eot_del_type%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode('auto-eot-cancellation-expiration-demotion')), $url)) && ($url = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($subscr_id)), $url)))
|
195 |
if(($url = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->first_name)), $url)) && ($url = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->last_name)), $url)))
|
196 |
if(($url = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(trim($user->first_name.' '.$user->last_name))), $url)))
|
197 |
if(($url = preg_replace('/%%user_email%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->user_email)), $url)))
|
208 |
c_ws_plugin__s2member_utils_urls::remote($url);
|
209 |
}
|
210 |
}
|
211 |
+
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_recipients'])
|
212 |
{
|
213 |
$email_configs_were_on = c_ws_plugin__s2member_email_configs::email_config_status();
|
214 |
c_ws_plugin__s2member_email_configs::email_config_release();
|
243 |
$msg .= 'cv8: %%cv8%%'."\n";
|
244 |
$msg .= 'cv9: %%cv9%%';
|
245 |
|
246 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $custom)) && ($msg = preg_replace('/%%eot_del_type%%/i', c_ws_plugin__s2member_utils_strings::esc_refs('auto-eot-cancellation-expiration-demotion'), $msg)) && ($msg = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($subscr_id), $msg)))
|
247 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($subscr_baid), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($subscr_cid), $msg)))
|
248 |
if(($msg = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->first_name), $msg)) && ($msg = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->last_name), $msg)))
|
249 |
if(($msg = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($user->first_name.' '.$user->last_name)), $msg)))
|
271 |
else if($GLOBALS['WS_PLUGIN__']['s2member']['o']['membership_eot_behavior'] === 'delete')
|
272 |
{
|
273 |
$eot_del_type = $GLOBALS['ws_plugin__s2member_eot_del_type'] = 'auto-eot-cancellation-expiration-deletion';
|
274 |
+
$log_entry['eot_del_type'] = $eot_del_type; // Deleting user in this case.
|
275 |
|
276 |
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
277 |
do_action('ws_plugin__s2member_during_auto_eot_system_during_before_delete', get_defined_vars());
|
295 |
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
296 |
do_action('ws_plugin__s2member_during_auto_eot_system', get_defined_vars());
|
297 |
unset($__refs, $__v); // Housekeeping.
|
298 |
+
|
299 |
+
c_ws_plugin__s2member_utils_logs::log_entry('auto-eot-system', $log_entry);
|
300 |
}
|
301 |
}
|
302 |
}
|
includes/classes/aweber-e.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* AWeber (Old via Email)
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* AWeber (Old via Email)
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/aweber.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* AWeber
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* AWeber
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/brute-force.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's Brute Force protection routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's Brute Force protection routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/cache.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's caching routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's caching routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/catgs-sp.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's Category protection routines *(for specific Categories)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's Category protection routines *(for specific Categories)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/catgs.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's Category protection routines *(for current page)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's Category protection routines *(for current page)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/check-activation.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's self re-activation routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's self re-activation routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/constants.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's API Constants *(for site owners)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's API Constants *(for site owners)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/cron-jobs-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Cron routines handled by s2Member (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -15,9 +15,9 @@
|
|
15 |
* @since 3.5
|
16 |
*/
|
17 |
if(!defined('WPINC')) // MUST have WordPress.
|
18 |
-
exit (
|
19 |
|
20 |
-
if(!class_exists(
|
21 |
{
|
22 |
/**
|
23 |
* Cron routines handled by s2Member (inner processing routines).
|
@@ -33,7 +33,7 @@ if(!class_exists("c_ws_plugin__s2member_cron_jobs_in"))
|
|
33 |
* @package s2Member\Cron_Jobs
|
34 |
* @since 3.5
|
35 |
*
|
36 |
-
* @attaches-to ``add_filter(
|
37 |
*
|
38 |
* @param array $schedules Expects an array of WP_Cron schedules passed in by the Filter.
|
39 |
*
|
@@ -42,12 +42,12 @@ if(!class_exists("c_ws_plugin__s2member_cron_jobs_in"))
|
|
42 |
public static function extend_cron_schedules($schedules = array())
|
43 |
{
|
44 |
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
45 |
-
do_action(
|
46 |
unset($__refs, $__v);
|
47 |
|
48 |
-
$array = array(
|
49 |
|
50 |
-
return apply_filters(
|
51 |
}
|
52 |
|
53 |
/**
|
@@ -56,22 +56,22 @@ if(!class_exists("c_ws_plugin__s2member_cron_jobs_in"))
|
|
56 |
* @package s2Member\Cron_Jobs
|
57 |
* @since 3.5
|
58 |
*
|
59 |
-
* @attaches-to ``add_action(
|
60 |
*/
|
61 |
public static function auto_eot_system_via_cron()
|
62 |
{
|
63 |
-
do_action(
|
64 |
|
65 |
-
if(!empty($_GET[
|
66 |
{
|
67 |
-
if($GLOBALS[
|
68 |
{
|
69 |
c_ws_plugin__s2member_auto_eots::auto_eot_system(); // Process.
|
70 |
-
do_action(
|
71 |
}
|
72 |
exit(); // Clean exit.
|
73 |
}
|
74 |
-
do_action(
|
75 |
}
|
76 |
}
|
77 |
-
}
|
3 |
* Cron routines handled by s2Member (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
15 |
* @since 3.5
|
16 |
*/
|
17 |
if(!defined('WPINC')) // MUST have WordPress.
|
18 |
+
exit ('Do not access this file directly.');
|
19 |
|
20 |
+
if(!class_exists('c_ws_plugin__s2member_cron_jobs_in'))
|
21 |
{
|
22 |
/**
|
23 |
* Cron routines handled by s2Member (inner processing routines).
|
33 |
* @package s2Member\Cron_Jobs
|
34 |
* @since 3.5
|
35 |
*
|
36 |
+
* @attaches-to ``add_filter('cron_schedules');``
|
37 |
*
|
38 |
* @param array $schedules Expects an array of WP_Cron schedules passed in by the Filter.
|
39 |
*
|
42 |
public static function extend_cron_schedules($schedules = array())
|
43 |
{
|
44 |
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
45 |
+
do_action('ws_plugin__s2member_before_extend_cron_schedules', get_defined_vars());
|
46 |
unset($__refs, $__v);
|
47 |
|
48 |
+
$array = array('every10m' => array('interval' => 600, 'display' => 'Every 10 Minutes'));
|
49 |
|
50 |
+
return apply_filters('ws_plugin__s2member_extend_cron_schedules', array_merge($array, $schedules), get_defined_vars());
|
51 |
}
|
52 |
|
53 |
/**
|
56 |
* @package s2Member\Cron_Jobs
|
57 |
* @since 3.5
|
58 |
*
|
59 |
+
* @attaches-to ``add_action('init');``
|
60 |
*/
|
61 |
public static function auto_eot_system_via_cron()
|
62 |
{
|
63 |
+
do_action('ws_plugin__s2member_before_auto_eot_system_via_cron', get_defined_vars());
|
64 |
|
65 |
+
if(!empty($_GET['s2member_auto_eot_system_via_cron']))
|
66 |
{
|
67 |
+
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['auto_eot_system_enabled'])
|
68 |
{
|
69 |
c_ws_plugin__s2member_auto_eots::auto_eot_system(); // Process.
|
70 |
+
do_action('ws_plugin__s2member_during_auto_eot_system_via_cron', get_defined_vars());
|
71 |
}
|
72 |
exit(); // Clean exit.
|
73 |
}
|
74 |
+
do_action('ws_plugin__s2member_after_auto_eot_system_via_cron', get_defined_vars());
|
75 |
}
|
76 |
}
|
77 |
+
}
|
includes/classes/cron-jobs.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Cron routines handled by s2Member.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Cron routines handled by s2Member.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/css-js-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* CSS/JS loading handlers for s2Member (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* CSS/JS loading handlers for s2Member (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/css-js-themes.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* CSS/JS integrations with theme.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* CSS/JS integrations with theme.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/css-js.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* CSS/JS loading handlers for s2Member.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* CSS/JS loading handlers for s2Member.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/custom-reg-fields-4bp.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Custom Registration/Profile Fields for BuddyPress integration.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Custom Registration/Profile Fields for BuddyPress integration.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/custom-reg-fields.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Custom Registration/Profile Fields for s2Member.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Custom Registration/Profile Fields for s2Member.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/database.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Database routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Database routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/email-configs.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Email configurations for s2Member.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -216,8 +216,7 @@ if (!class_exists ('c_ws_plugin__s2member_email_configs'))
|
|
216 |
* @since 110707
|
217 |
*
|
218 |
* @param string|int $user_id A numeric WordPress User ID.
|
219 |
-
* @param string $user_pass Optional
|
220 |
-
* If omitted, only the administrative notification will be sent.
|
221 |
* @param array $notify An array of directives. Must be non-empty, with at least one of these values `user,admin`.
|
222 |
* @param string $user_email Optional. This defaults to the user's currently configured email address.
|
223 |
* @return bool True if all required parameters are supplied, else false.
|
@@ -277,7 +276,7 @@ if (!class_exists ('c_ws_plugin__s2member_email_configs'))
|
|
277 |
else $wp_set_pass_url = wp_lostpassword_url(); // Default behavior; and older versions of WordPress.
|
278 |
|
279 |
$fields = get_user_option ('s2member_custom_fields', $user_id);
|
280 |
-
$
|
281 |
|
282 |
$role = c_ws_plugin__s2member_user_access::user_access_role($user);
|
283 |
$label = c_ws_plugin__s2member_user_access::user_access_label($user);
|
@@ -289,7 +288,7 @@ if (!class_exists ('c_ws_plugin__s2member_email_configs'))
|
|
289 |
$user_ip = $_SERVER['REMOTE_ADDR'];
|
290 |
|
291 |
if (($sbj = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_email_subject']))
|
292 |
-
if (($sbj =
|
293 |
if (($sbj = preg_replace ('/%%wp_set_pass_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($wp_set_pass_url), $sbj)))
|
294 |
if (($sbj = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $sbj)))
|
295 |
if (($sbj = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $sbj)))
|
@@ -311,7 +310,7 @@ if (!class_exists ('c_ws_plugin__s2member_email_configs'))
|
|
311 |
break; // Empty; we can stop here.
|
312 |
|
313 |
if (($msg = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_email_message']))
|
314 |
-
if (($msg =
|
315 |
if (($msg = preg_replace ('/%%wp_set_pass_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($wp_set_pass_url), $msg)))
|
316 |
if (($msg = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $msg)))
|
317 |
if (($msg = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $msg)))
|
@@ -347,7 +346,7 @@ if (!class_exists ('c_ws_plugin__s2member_email_configs'))
|
|
347 |
if (in_array('admin', $notify, true) && $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_admin_email_recipients'])
|
348 |
{
|
349 |
$fields = get_user_option ('s2member_custom_fields', $user_id);
|
350 |
-
$
|
351 |
|
352 |
$role = c_ws_plugin__s2member_user_access::user_access_role($user);
|
353 |
$label = c_ws_plugin__s2member_user_access::user_access_label($user);
|
@@ -359,7 +358,7 @@ if (!class_exists ('c_ws_plugin__s2member_email_configs'))
|
|
359 |
$user_ip = $_SERVER['REMOTE_ADDR'];
|
360 |
|
361 |
if (($rec = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_admin_email_recipients']))
|
362 |
-
if (($rec =
|
363 |
if (($rec = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $rec)))
|
364 |
if (($rec = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $rec)))
|
365 |
if (($rec = preg_replace ('/%%label%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($label), $rec)))
|
@@ -380,7 +379,7 @@ if (!class_exists ('c_ws_plugin__s2member_email_configs'))
|
|
380 |
break; // Empty; we can stop here.
|
381 |
|
382 |
if (($sbj = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_admin_email_subject']))
|
383 |
-
if (($sbj =
|
384 |
if (($sbj = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $sbj)))
|
385 |
if (($sbj = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $sbj)))
|
386 |
if (($sbj = preg_replace ('/%%label%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($label), $sbj)))
|
@@ -401,7 +400,7 @@ if (!class_exists ('c_ws_plugin__s2member_email_configs'))
|
|
401 |
break; // Empty; we can stop here.
|
402 |
|
403 |
if (($msg = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_admin_email_message']))
|
404 |
-
if (($msg =
|
405 |
if (($msg = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $msg)))
|
406 |
if (($msg = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $msg)))
|
407 |
if (($msg = preg_replace ('/%%label%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($label), $msg)))
|
3 |
* Email configurations for s2Member.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
216 |
* @since 110707
|
217 |
*
|
218 |
* @param string|int $user_id A numeric WordPress User ID.
|
219 |
+
* @param string $user_pass Optional; plain text pass. No longer suggested, by here for back compat.
|
|
|
220 |
* @param array $notify An array of directives. Must be non-empty, with at least one of these values `user,admin`.
|
221 |
* @param string $user_email Optional. This defaults to the user's currently configured email address.
|
222 |
* @return bool True if all required parameters are supplied, else false.
|
276 |
else $wp_set_pass_url = wp_lostpassword_url(); // Default behavior; and older versions of WordPress.
|
277 |
|
278 |
$fields = get_user_option ('s2member_custom_fields', $user_id);
|
279 |
+
$custom = get_user_option ('s2member_custom', $user_id);
|
280 |
|
281 |
$role = c_ws_plugin__s2member_user_access::user_access_role($user);
|
282 |
$label = c_ws_plugin__s2member_user_access::user_access_label($user);
|
288 |
$user_ip = $_SERVER['REMOTE_ADDR'];
|
289 |
|
290 |
if (($sbj = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_email_subject']))
|
291 |
+
if (($sbj = c_ws_plugin__s2member_utils_strings::fill_cvs($sbj, $custom)))
|
292 |
if (($sbj = preg_replace ('/%%wp_set_pass_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($wp_set_pass_url), $sbj)))
|
293 |
if (($sbj = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $sbj)))
|
294 |
if (($sbj = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $sbj)))
|
310 |
break; // Empty; we can stop here.
|
311 |
|
312 |
if (($msg = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_email_message']))
|
313 |
+
if (($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $custom)))
|
314 |
if (($msg = preg_replace ('/%%wp_set_pass_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($wp_set_pass_url), $msg)))
|
315 |
if (($msg = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $msg)))
|
316 |
if (($msg = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $msg)))
|
346 |
if (in_array('admin', $notify, true) && $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_admin_email_recipients'])
|
347 |
{
|
348 |
$fields = get_user_option ('s2member_custom_fields', $user_id);
|
349 |
+
$custom = get_user_option ('s2member_custom', $user_id);
|
350 |
|
351 |
$role = c_ws_plugin__s2member_user_access::user_access_role($user);
|
352 |
$label = c_ws_plugin__s2member_user_access::user_access_label($user);
|
358 |
$user_ip = $_SERVER['REMOTE_ADDR'];
|
359 |
|
360 |
if (($rec = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_admin_email_recipients']))
|
361 |
+
if (($rec = c_ws_plugin__s2member_utils_strings::fill_cvs($rec, $custom)))
|
362 |
if (($rec = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $rec)))
|
363 |
if (($rec = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $rec)))
|
364 |
if (($rec = preg_replace ('/%%label%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($label), $rec)))
|
379 |
break; // Empty; we can stop here.
|
380 |
|
381 |
if (($sbj = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_admin_email_subject']))
|
382 |
+
if (($sbj = c_ws_plugin__s2member_utils_strings::fill_cvs($sbj, $custom)))
|
383 |
if (($sbj = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $sbj)))
|
384 |
if (($sbj = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $sbj)))
|
385 |
if (($sbj = preg_replace ('/%%label%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($label), $sbj)))
|
400 |
break; // Empty; we can stop here.
|
401 |
|
402 |
if (($msg = $GLOBALS['WS_PLUGIN__']['s2member']['o']['new_user_admin_email_message']))
|
403 |
+
if (($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $custom)))
|
404 |
if (($msg = preg_replace ('/%%wp_login_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs (wp_login_url ()), $msg)))
|
405 |
if (($msg = preg_replace ('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($role), $msg)))
|
406 |
if (($msg = preg_replace ('/%%label%%/i', c_ws_plugin__s2member_utils_strings::esc_refs ($label), $msg)))
|
includes/classes/files-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* File Download routines for s2Member (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -1599,4 +1599,4 @@ if(!class_exists('c_ws_plugin__s2member_files_in'))
|
|
1599 |
);
|
1600 |
}
|
1601 |
}
|
1602 |
-
}
|
3 |
* File Download routines for s2Member (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
1599 |
);
|
1600 |
}
|
1601 |
}
|
1602 |
+
}
|
includes/classes/files.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* File Download routines for s2Member.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* File Download routines for s2Member.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/getresponse.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* GetResponse
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* GetResponse
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/installation.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Installation routines for s2Member.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -118,14 +118,13 @@ if(!class_exists('c_ws_plugin__s2member_installation'))
|
|
118 |
|
119 |
c_ws_plugin__s2member_admin_notices::enqueue_admin_notice($notice, array('blog|network:plugins.php', 'blog|network:ws-plugin--s2member-start', 'blog|network:ws-plugin--s2member-mms-ops', 'blog|network:ws-plugin--s2member-gen-ops', 'blog|network:ws-plugin--s2member-res-ops'));
|
120 |
}
|
121 |
-
else // Otherwise (initial activation); we'll help the Site Owner out by giving them a link to the
|
122 |
{
|
123 |
$notice = '<strong>Note:</strong> s2Member adds some new data columns to your list of Users/Members. If your list gets overcrowded, please use the <strong>Screen Options</strong> tab <em>(upper right-hand corner)</em>. With WordPress Screen Options, you can add/remove specific data columns; thereby making the most important data easier to read. For example, if you create Custom Registration/Profile Fields with s2Member, those Custom Fields will result in new data columns; which can cause your list of Users/Members to become nearly unreadable. So just use the Screen Options tab to clean things up.';
|
124 |
-
|
125 |
c_ws_plugin__s2member_admin_notices::enqueue_admin_notice($notice, 'blog:users.php', FALSE, FALSE, TRUE);
|
126 |
|
127 |
-
$notice = '<strong>s2Member
|
128 |
-
$notice .= '
|
129 |
|
130 |
c_ws_plugin__s2member_admin_notices::enqueue_admin_notice($notice, array('blog|network:plugins.php', 'blog|network:ws-plugin--s2member-start', 'blog|network:ws-plugin--s2member-mms-ops', 'blog|network:ws-plugin--s2member-gen-ops', 'blog|network:ws-plugin--s2member-res-ops'));
|
131 |
}
|
3 |
* Installation routines for s2Member.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
118 |
|
119 |
c_ws_plugin__s2member_admin_notices::enqueue_admin_notice($notice, array('blog|network:plugins.php', 'blog|network:ws-plugin--s2member-start', 'blog|network:ws-plugin--s2member-mms-ops', 'blog|network:ws-plugin--s2member-gen-ops', 'blog|network:ws-plugin--s2member-res-ops'));
|
120 |
}
|
121 |
+
else // Otherwise (initial activation); we'll help the Site Owner out by giving them a link to the Getting Started section.
|
122 |
{
|
123 |
$notice = '<strong>Note:</strong> s2Member adds some new data columns to your list of Users/Members. If your list gets overcrowded, please use the <strong>Screen Options</strong> tab <em>(upper right-hand corner)</em>. With WordPress Screen Options, you can add/remove specific data columns; thereby making the most important data easier to read. For example, if you create Custom Registration/Profile Fields with s2Member, those Custom Fields will result in new data columns; which can cause your list of Users/Members to become nearly unreadable. So just use the Screen Options tab to clean things up.';
|
|
|
124 |
c_ws_plugin__s2member_admin_notices::enqueue_admin_notice($notice, 'blog:users.php', FALSE, FALSE, TRUE);
|
125 |
|
126 |
+
$notice = '<strong>s2Member v'.esc_html(WS_PLUGIN__S2MEMBER_VERSION).' has been activated. Nice work!</strong><br />';
|
127 |
+
$notice .= 'We suggest a review of the "Getting Started" page to familiarize yourself with s2Member terminology and basic configuration.<br />↳ Would you want to review now? <a href="'.esc_attr(admin_url('/admin.php?page=ws-plugin--s2member-start')).'"><strong>Yes (explain)</strong></a>';
|
128 |
|
129 |
c_ws_plugin__s2member_admin_notices::enqueue_admin_notice($notice, array('blog|network:plugins.php', 'blog|network:ws-plugin--s2member-start', 'blog|network:ws-plugin--s2member-mms-ops', 'blog|network:ws-plugin--s2member-gen-ops', 'blog|network:ws-plugin--s2member-res-ops'));
|
130 |
}
|
includes/classes/ip-restrictions.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* IP Restrictions.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* IP Restrictions.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/labels.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Membership Level Labels.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Membership Level Labels.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/list-server-base.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* List Server Base
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* List Server Base
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/list-servers.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* List Server integrations.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* List Server integrations.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/login-checks.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Login checks.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Login checks.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/login-customizations.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Login customizations.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Login customizations.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/login-redirects-r.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Login redirect removals.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Login redirect removals.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/login-redirects.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Login redirections.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Login redirections.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/mailchimp-o.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* MailChimp (Old API)
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* MailChimp (Old API)
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/mailchimp.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* MailChimp
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* MailChimp
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/menu-pages-rs.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Right-side for Menu Pages.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -41,7 +41,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_pages_rs"))
|
|
41 |
|
42 |
ob_start(); // output buffer these so we can display a toggler conditionally.
|
43 |
|
44 |
-
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["updates"])
|
45 |
{
|
46 |
echo '<div class="ws-menu-page-updates">' . "\n";
|
47 |
include_once dirname (dirname (__FILE__)) . "/menu-pages/updates.inc.php";
|
3 |
* Right-side for Menu Pages.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
41 |
|
42 |
ob_start(); // output buffer these so we can display a toggler conditionally.
|
43 |
|
44 |
+
if (!is_ssl() && $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["updates"])
|
45 |
{
|
46 |
echo '<div class="ws-menu-page-updates">' . "\n";
|
47 |
include_once dirname (dirname (__FILE__)) . "/menu-pages/updates.inc.php";
|
includes/classes/menu-pages-tb.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Toolbox for Menu Pages.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Toolbox for Menu Pages.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/menu-pages.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Administrative menu pages.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -152,7 +152,7 @@ if(!class_exists('c_ws_plugin__s2member_menu_pages'))
|
|
152 |
'create_users', $menu, 'c_ws_plugin__s2member_menu_pages::start_page', $GLOBALS['WS_PLUGIN__']['s2member']['c']['dir_url'].'/images/brand-favicon.png');
|
153 |
|
154 |
if(apply_filters('ws_plugin__s2member_during_add_admin_options_add_start_page', TRUE, get_defined_vars()))
|
155 |
-
add_submenu_page($menu, '
|
156 |
|
157 |
if(apply_filters('ws_plugin__s2member_during_add_admin_options_add_divider_1', TRUE, get_defined_vars()))
|
158 |
add_submenu_page($menu, '', '<span style="display:block; margin:1px 0 1px -5px; padding:0; height:1px; line-height:1px; background:#CCCCCC;"></span>', 'create_users', '#');
|
@@ -496,7 +496,7 @@ if(!class_exists('c_ws_plugin__s2member_menu_pages'))
|
|
496 |
}
|
497 |
|
498 |
/**
|
499 |
-
* Builds and handles the
|
500 |
*
|
501 |
* @package s2Member\Menu_Pages
|
502 |
* @since 3.5
|
3 |
* Administrative menu pages.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
152 |
'create_users', $menu, 'c_ws_plugin__s2member_menu_pages::start_page', $GLOBALS['WS_PLUGIN__']['s2member']['c']['dir_url'].'/images/brand-favicon.png');
|
153 |
|
154 |
if(apply_filters('ws_plugin__s2member_during_add_admin_options_add_start_page', TRUE, get_defined_vars()))
|
155 |
+
add_submenu_page($menu, 'Getting Started w/ s2Member', 'Getting Started', 'create_users', 'ws-plugin--s2member-start', 'c_ws_plugin__s2member_menu_pages::start_page');
|
156 |
|
157 |
if(apply_filters('ws_plugin__s2member_during_add_admin_options_add_divider_1', TRUE, get_defined_vars()))
|
158 |
add_submenu_page($menu, '', '<span style="display:block; margin:1px 0 1px -5px; padding:0; height:1px; line-height:1px; background:#CCCCCC;"></span>', 'create_users', '#');
|
496 |
}
|
497 |
|
498 |
/**
|
499 |
+
* Builds and handles the Getting Started page.
|
500 |
*
|
501 |
* @package s2Member\Menu_Pages
|
502 |
* @since 3.5
|
includes/classes/meta-box-saves.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Meta box saves.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Meta box saves.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/meta-box-security.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Security meta box.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Security meta box.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/meta-boxes.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Administrative Meta Boxes.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Administrative Meta Boxes.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/mms-patches.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Main Multisite patches.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Main Multisite patches.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/mo-page-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Membership Options Page (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Membership Options Page (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/mo-page.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Membership Options Page.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Membership Options Page.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/no-cache.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* No-cache routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* No-cache routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/op-notices.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Option panel notices.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Option panel notices.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/option-forces.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Forces WordPress options.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Forces WordPress options.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/pages-sp.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's Page protection routines *(for specific Pages)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's Page protection routines *(for specific Pages)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/pages.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's Page protection routines *(for current Page)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's Page protection routines *(for current Page)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-notify-in-billing-agreement-signup.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-notify-in-cart.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-notify-in-express-checkout.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-notify-in-rec-profile-creation-w-level.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-notify-in-send-money.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-notify-in-sp-refund-reversal.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -70,11 +70,11 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_sp_refund_reversal'))
|
|
70 |
Since this routine ignores the processing check, it is *possible* that Refund/Reversal Notification URLs will be contacted more than once.
|
71 |
If you're writing scripts that depend on Refund/Reversal Notifications, please keep this in mind.
|
72 |
*/
|
73 |
-
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_ref_rev_notification_urls']
|
74 |
{
|
75 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_ref_rev_notification_urls']) as $url)
|
76 |
|
77 |
-
if(($url =
|
78 |
if(($url = preg_replace('/%%parent_txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['parent_txn_baid'])), $url)) && ($url = preg_replace('/%%parent_txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['parent_txn_cid'])), $url)))
|
79 |
if(($url = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['item_number'])), $url)) && ($url = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['item_name'])), $url)))
|
80 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
@@ -89,7 +89,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_sp_refund_reversal'))
|
|
89 |
|
90 |
$paypal['s2member_log'][] = 'Specific Post/Page ~ Refund/Reversal Notification URLs have been processed.';
|
91 |
}
|
92 |
-
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_ref_rev_notification_recipients']
|
93 |
{
|
94 |
$msg = $sbj = '(s2Member / API Notification Email) - Specific Post/Page ~ Refund/Reversal';
|
95 |
$msg .= "\n\n"; // Spacing in the message body.
|
@@ -120,7 +120,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_sp_refund_reversal'))
|
|
120 |
$msg .= 'cv8: %%cv8%%'."\n";
|
121 |
$msg .= 'cv9: %%cv9%%';
|
122 |
|
123 |
-
if(($msg =
|
124 |
if(($msg = preg_replace('/%%parent_txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['parent_txn_baid']), $msg)) && ($msg = preg_replace('/%%parent_txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['parent_txn_cid']), $msg)))
|
125 |
if(($msg = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $msg)) && ($msg = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_name']), $msg)))
|
126 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
@@ -156,4 +156,4 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_sp_refund_reversal'))
|
|
156 |
else return apply_filters('c_ws_plugin__s2member_paypal_notify_in_sp_refund_reversal', FALSE, get_defined_vars());
|
157 |
}
|
158 |
}
|
159 |
-
}
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
70 |
Since this routine ignores the processing check, it is *possible* that Refund/Reversal Notification URLs will be contacted more than once.
|
71 |
If you're writing scripts that depend on Refund/Reversal Notifications, please keep this in mind.
|
72 |
*/
|
73 |
+
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_ref_rev_notification_urls'])
|
74 |
{
|
75 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_ref_rev_notification_urls']) as $url)
|
76 |
|
77 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%parent_txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['parent_txn_id'])), $url)))
|
78 |
if(($url = preg_replace('/%%parent_txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['parent_txn_baid'])), $url)) && ($url = preg_replace('/%%parent_txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['parent_txn_cid'])), $url)))
|
79 |
if(($url = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['item_number'])), $url)) && ($url = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['item_name'])), $url)))
|
80 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
89 |
|
90 |
$paypal['s2member_log'][] = 'Specific Post/Page ~ Refund/Reversal Notification URLs have been processed.';
|
91 |
}
|
92 |
+
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_ref_rev_notification_recipients'])
|
93 |
{
|
94 |
$msg = $sbj = '(s2Member / API Notification Email) - Specific Post/Page ~ Refund/Reversal';
|
95 |
$msg .= "\n\n"; // Spacing in the message body.
|
120 |
$msg .= 'cv8: %%cv8%%'."\n";
|
121 |
$msg .= 'cv9: %%cv9%%';
|
122 |
|
123 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%parent_txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['parent_txn_id']), $msg)))
|
124 |
if(($msg = preg_replace('/%%parent_txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['parent_txn_baid']), $msg)) && ($msg = preg_replace('/%%parent_txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['parent_txn_cid']), $msg)))
|
125 |
if(($msg = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $msg)) && ($msg = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_name']), $msg)))
|
126 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
156 |
else return apply_filters('c_ws_plugin__s2member_paypal_notify_in_sp_refund_reversal', FALSE, get_defined_vars());
|
157 |
}
|
158 |
}
|
159 |
+
}
|
includes/classes/paypal-notify-in-subscr-modify-w-level.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -140,7 +140,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level')
|
|
140 |
$msg = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_email_message']; // The same for standard and w/ Pro-Forms.
|
141 |
$rec = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_email_recipients']; // The same for standard and w/ Pro-Forms.
|
142 |
|
143 |
-
if(($rec =
|
144 |
if(($rec = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $rec)) && ($rec = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $rec)))
|
145 |
if(($rec = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $rec)) && ($rec = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $rec)))
|
146 |
if(($rec = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $rec)) && ($rec = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $rec)))
|
@@ -159,7 +159,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level')
|
|
159 |
if(($rec = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $rec)))
|
160 |
if(($rec = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $rec)))
|
161 |
|
162 |
-
if(($sbj =
|
163 |
if(($sbj = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $sbj)) && ($sbj = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $sbj)))
|
164 |
if(($sbj = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $sbj)) && ($sbj = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $sbj)))
|
165 |
if(($sbj = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $sbj)) && ($sbj = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $sbj)))
|
@@ -178,7 +178,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level')
|
|
178 |
if(($sbj = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $sbj)))
|
179 |
if(($sbj = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $sbj)))
|
180 |
|
181 |
-
if(($msg =
|
182 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
183 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
184 |
if(($msg = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $msg)) && ($msg = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $msg)))
|
@@ -216,11 +216,11 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level')
|
|
216 |
$paypal['s2member_log'][] = 'Modification Confirmation Email sent to: '.$rec.'.';
|
217 |
}
|
218 |
}
|
219 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_notification_urls']
|
220 |
{
|
221 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_notification_urls']) as $url)
|
222 |
|
223 |
-
if(($url =
|
224 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
225 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
226 |
if(($url = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['initial'])), $url)) && ($url = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['regular'])), $url)) && ($url = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['recurring'])), $url)))
|
@@ -247,7 +247,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level')
|
|
247 |
}
|
248 |
$paypal['s2member_log'][] = 'Modification Notification URLs have been processed.';
|
249 |
}
|
250 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_notification_recipients']
|
251 |
{
|
252 |
$msg = $sbj = '(s2Member / API Notification Email) - Modification';
|
253 |
$msg .= "\n\n"; // Spacing in the message body.
|
@@ -292,7 +292,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level')
|
|
292 |
$msg .= 'cv8: %%cv8%%'."\n";
|
293 |
$msg .= 'cv9: %%cv9%%';
|
294 |
|
295 |
-
if(($msg =
|
296 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
297 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
298 |
if(($msg = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $msg)) && ($msg = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $msg)) && ($msg = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $msg)))
|
@@ -321,9 +321,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level')
|
|
321 |
}
|
322 |
$paypal['s2member_log'][] = 'Modification Notification Emails have been processed.';
|
323 |
}
|
324 |
-
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_tracking_codes'])
|
325 |
{
|
326 |
-
if(($code =
|
327 |
if(($code = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $code)) && ($code = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $code)))
|
328 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
329 |
if(($code = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $code)) && ($code = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $code)) && ($code = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $code)))
|
@@ -376,4 +376,4 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level')
|
|
376 |
else return apply_filters('c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level', FALSE, get_defined_vars());
|
377 |
}
|
378 |
}
|
379 |
-
}
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
140 |
$msg = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_email_message']; // The same for standard and w/ Pro-Forms.
|
141 |
$rec = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_email_recipients']; // The same for standard and w/ Pro-Forms.
|
142 |
|
143 |
+
if(($rec = c_ws_plugin__s2member_utils_strings::fill_cvs($rec, $paypal['custom'])) && ($rec = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $rec)))
|
144 |
if(($rec = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $rec)) && ($rec = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $rec)))
|
145 |
if(($rec = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $rec)) && ($rec = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $rec)))
|
146 |
if(($rec = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $rec)) && ($rec = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $rec)))
|
159 |
if(($rec = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $rec)))
|
160 |
if(($rec = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $rec)))
|
161 |
|
162 |
+
if(($sbj = c_ws_plugin__s2member_utils_strings::fill_cvs($sbj, $paypal['custom'])) && ($sbj = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $sbj)))
|
163 |
if(($sbj = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $sbj)) && ($sbj = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $sbj)))
|
164 |
if(($sbj = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $sbj)) && ($sbj = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $sbj)))
|
165 |
if(($sbj = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $sbj)) && ($sbj = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $sbj)))
|
178 |
if(($sbj = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $sbj)))
|
179 |
if(($sbj = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $sbj)))
|
180 |
|
181 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $msg)))
|
182 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
183 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
184 |
if(($msg = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $msg)) && ($msg = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $msg)))
|
216 |
$paypal['s2member_log'][] = 'Modification Confirmation Email sent to: '.$rec.'.';
|
217 |
}
|
218 |
}
|
219 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_notification_urls'])
|
220 |
{
|
221 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_notification_urls']) as $url)
|
222 |
|
223 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_id'])), $url)))
|
224 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
225 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
226 |
if(($url = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['initial'])), $url)) && ($url = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['regular'])), $url)) && ($url = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['recurring'])), $url)))
|
247 |
}
|
248 |
$paypal['s2member_log'][] = 'Modification Notification URLs have been processed.';
|
249 |
}
|
250 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_notification_recipients'])
|
251 |
{
|
252 |
$msg = $sbj = '(s2Member / API Notification Email) - Modification';
|
253 |
$msg .= "\n\n"; // Spacing in the message body.
|
292 |
$msg .= 'cv8: %%cv8%%'."\n";
|
293 |
$msg .= 'cv9: %%cv9%%';
|
294 |
|
295 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $msg)))
|
296 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
297 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
298 |
if(($msg = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $msg)) && ($msg = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $msg)) && ($msg = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $msg)))
|
321 |
}
|
322 |
$paypal['s2member_log'][] = 'Modification Notification Emails have been processed.';
|
323 |
}
|
324 |
+
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_tracking_codes']))
|
325 |
{
|
326 |
+
if(($code = c_ws_plugin__s2member_utils_strings::fill_cvs($code, $paypal['custom'])) && ($code = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $code)))
|
327 |
if(($code = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $code)) && ($code = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $code)))
|
328 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
329 |
if(($code = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $code)) && ($code = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $code)) && ($code = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $code)))
|
376 |
else return apply_filters('c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level', FALSE, get_defined_vars());
|
377 |
}
|
378 |
}
|
379 |
+
}
|
includes/classes/paypal-notify-in-subscr-or-rp-cancellation-w-level.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -88,11 +88,11 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_cancella
|
|
88 |
}
|
89 |
else $paypal["s2member_log"][] = "Ignoring Cancellation. An Auto-EOT Time is already set for this Member. An s2Member API Notification will still be processed however.";
|
90 |
|
91 |
-
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["cancellation_notification_urls"]
|
92 |
{
|
93 |
foreach (preg_split ("/[\r\n\t]+/", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["cancellation_notification_urls"]) as $url) // Handle Cancellation Notifications.
|
94 |
|
95 |
-
if (($url =
|
96 |
if (($url = preg_replace ("/%%subscr_baid%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($paypal["subscr_baid"])), $url)) && ($url = preg_replace ("/%%subscr_cid%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($paypal["subscr_cid"])), $url)))
|
97 |
if (($url = preg_replace ("/%%item_number%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($paypal["item_number"])), $url)) && ($url = preg_replace ("/%%item_name%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($paypal["item_name"])), $url)))
|
98 |
if (($url = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($user->first_name)), $url)) && ($url = preg_replace ("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($user->last_name)), $url)))
|
@@ -112,7 +112,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_cancella
|
|
112 |
}
|
113 |
$paypal["s2member_log"][] = "Cancellation Notification URLs have been processed.";
|
114 |
}
|
115 |
-
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["cancellation_notification_recipients"]
|
116 |
{
|
117 |
$msg = $sbj = "(s2Member / API Notification Email) - Cancellation";
|
118 |
$msg .= "\n\n"; // Spacing in the message body.
|
@@ -145,7 +145,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_cancella
|
|
145 |
$msg .= "cv8: %%cv8%%\n";
|
146 |
$msg .= "cv9: %%cv9%%";
|
147 |
|
148 |
-
if (($msg =
|
149 |
if (($msg = preg_replace ("/%%subscr_baid%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($paypal["subscr_baid"]), $msg)) && ($msg = preg_replace ("/%%subscr_cid%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($paypal["subscr_cid"]), $msg)))
|
150 |
if (($msg = preg_replace ("/%%item_number%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($paypal["item_number"]), $msg)) && ($msg = preg_replace ("/%%item_name%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($paypal["item_name"]), $msg)))
|
151 |
if (($msg = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($user->first_name), $msg)) && ($msg = preg_replace ("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($user->last_name), $msg)))
|
@@ -187,4 +187,4 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_cancella
|
|
187 |
else return apply_filters("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_cancellation_w_level", false, get_defined_vars ());
|
188 |
}
|
189 |
}
|
190 |
-
}
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
88 |
}
|
89 |
else $paypal["s2member_log"][] = "Ignoring Cancellation. An Auto-EOT Time is already set for this Member. An s2Member API Notification will still be processed however.";
|
90 |
|
91 |
+
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["cancellation_notification_urls"])
|
92 |
{
|
93 |
foreach (preg_split ("/[\r\n\t]+/", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["cancellation_notification_urls"]) as $url) // Handle Cancellation Notifications.
|
94 |
|
95 |
+
if (($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace ("/%%subscr_id%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($paypal["subscr_id"])), $url)))
|
96 |
if (($url = preg_replace ("/%%subscr_baid%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($paypal["subscr_baid"])), $url)) && ($url = preg_replace ("/%%subscr_cid%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($paypal["subscr_cid"])), $url)))
|
97 |
if (($url = preg_replace ("/%%item_number%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($paypal["item_number"])), $url)) && ($url = preg_replace ("/%%item_name%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($paypal["item_name"])), $url)))
|
98 |
if (($url = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($user->first_name)), $url)) && ($url = preg_replace ("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_refs (urlencode ($user->last_name)), $url)))
|
112 |
}
|
113 |
$paypal["s2member_log"][] = "Cancellation Notification URLs have been processed.";
|
114 |
}
|
115 |
+
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["cancellation_notification_recipients"])
|
116 |
{
|
117 |
$msg = $sbj = "(s2Member / API Notification Email) - Cancellation";
|
118 |
$msg .= "\n\n"; // Spacing in the message body.
|
145 |
$msg .= "cv8: %%cv8%%\n";
|
146 |
$msg .= "cv9: %%cv9%%";
|
147 |
|
148 |
+
if (($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace ("/%%subscr_id%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($paypal["subscr_id"]), $msg)))
|
149 |
if (($msg = preg_replace ("/%%subscr_baid%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($paypal["subscr_baid"]), $msg)) && ($msg = preg_replace ("/%%subscr_cid%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($paypal["subscr_cid"]), $msg)))
|
150 |
if (($msg = preg_replace ("/%%item_number%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($paypal["item_number"]), $msg)) && ($msg = preg_replace ("/%%item_name%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($paypal["item_name"]), $msg)))
|
151 |
if (($msg = preg_replace ("/%%user_first_name%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($user->first_name), $msg)) && ($msg = preg_replace ("/%%user_last_name%%/i", c_ws_plugin__s2member_utils_strings::esc_refs ($user->last_name), $msg)))
|
187 |
else return apply_filters("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_cancellation_w_level", false, get_defined_vars ());
|
188 |
}
|
189 |
}
|
190 |
+
}
|
includes/classes/paypal-notify-in-subscr-or-rp-eots-w-level.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -153,11 +153,11 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_eots_w_lev
|
|
153 |
|
154 |
$paypal['s2member_log'][] = 'Member Level/Capabilities demoted to: '.ucwords(preg_replace('/_/', ' ', $demotion_role)).'.';
|
155 |
|
156 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_urls']
|
157 |
{
|
158 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_urls']) as $url) // Handle EOT Notifications.
|
159 |
|
160 |
-
if(($url =
|
161 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
162 |
if(($url = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->first_name)), $url)) && ($url = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->last_name)), $url)))
|
163 |
if(($url = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(trim($user->first_name.' '.$user->last_name))), $url)))
|
@@ -176,7 +176,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_eots_w_lev
|
|
176 |
}
|
177 |
$paypal['s2member_log'][] = 'EOT/Deletion Notification URLs have been processed.';
|
178 |
}
|
179 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_recipients']
|
180 |
{
|
181 |
$msg = $sbj = '(s2Member / API Notification Email) - EOT/Deletion';
|
182 |
$msg .= "\n\n"; // Spacing in the message body.
|
@@ -208,7 +208,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_eots_w_lev
|
|
208 |
$msg .= 'cv8: %%cv8%%'."\n";
|
209 |
$msg .= 'cv9: %%cv9%%';
|
210 |
|
211 |
-
if(($msg =
|
212 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
213 |
if(($msg = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->first_name), $msg)) && ($msg = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->last_name), $msg)))
|
214 |
if(($msg = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($user->first_name.' '.$user->last_name)), $msg)))
|
@@ -342,11 +342,11 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_eots_w_lev
|
|
342 |
$user_reg_ip = ($user_id) ? get_user_option('s2member_registration_ip', $user_id) : ''; // Needed below.
|
343 |
$user_reg_ip = $paypal['ip'] = ($user_reg_ip) ? $user_reg_ip : $paypal['ip']; // Now merge conditionally.
|
344 |
|
345 |
-
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['ref_rev_notification_urls']
|
346 |
{
|
347 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['ref_rev_notification_urls']) as $url)
|
348 |
|
349 |
-
if(($url =
|
350 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
351 |
if(($url = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['item_number'])), $url)) && ($url = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['item_name'])), $url)))
|
352 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
@@ -367,7 +367,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_eots_w_lev
|
|
367 |
}
|
368 |
$paypal['s2member_log'][] = 'Refund/Reversal Notification URLs have been processed.';
|
369 |
}
|
370 |
-
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['ref_rev_notification_recipients']
|
371 |
{
|
372 |
$msg = $sbj = '(s2Member / API Notification Email) - Refund/Reversal';
|
373 |
$msg .= "\n\n"; // Spacing in the message body.
|
@@ -404,7 +404,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_eots_w_lev
|
|
404 |
$msg .= 'cv8: %%cv8%%'."\n";
|
405 |
$msg .= 'cv9: %%cv9%%';
|
406 |
|
407 |
-
if(($msg =
|
408 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
409 |
if(($msg = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $msg)) && ($msg = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_name']), $msg)))
|
410 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
153 |
|
154 |
$paypal['s2member_log'][] = 'Member Level/Capabilities demoted to: '.ucwords(preg_replace('/_/', ' ', $demotion_role)).'.';
|
155 |
|
156 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_urls'])
|
157 |
{
|
158 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_urls']) as $url) // Handle EOT Notifications.
|
159 |
|
160 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%eot_del_type%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($eot_del_type)), $url)) && ($url = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_id'])), $url)))
|
161 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
162 |
if(($url = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->first_name)), $url)) && ($url = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->last_name)), $url)))
|
163 |
if(($url = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(trim($user->first_name.' '.$user->last_name))), $url)))
|
176 |
}
|
177 |
$paypal['s2member_log'][] = 'EOT/Deletion Notification URLs have been processed.';
|
178 |
}
|
179 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_recipients'])
|
180 |
{
|
181 |
$msg = $sbj = '(s2Member / API Notification Email) - EOT/Deletion';
|
182 |
$msg .= "\n\n"; // Spacing in the message body.
|
208 |
$msg .= 'cv8: %%cv8%%'."\n";
|
209 |
$msg .= 'cv9: %%cv9%%';
|
210 |
|
211 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%eot_del_type%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($eot_del_type), $msg)) && ($msg = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $msg)))
|
212 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
213 |
if(($msg = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->first_name), $msg)) && ($msg = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->last_name), $msg)))
|
214 |
if(($msg = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($user->first_name.' '.$user->last_name)), $msg)))
|
342 |
$user_reg_ip = ($user_id) ? get_user_option('s2member_registration_ip', $user_id) : ''; // Needed below.
|
343 |
$user_reg_ip = $paypal['ip'] = ($user_reg_ip) ? $user_reg_ip : $paypal['ip']; // Now merge conditionally.
|
344 |
|
345 |
+
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['ref_rev_notification_urls'])
|
346 |
{
|
347 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['ref_rev_notification_urls']) as $url)
|
348 |
|
349 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_id'])), $url)) && ($url = preg_replace('/%%parent_txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['parent_txn_id'])), $url)))
|
350 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
351 |
if(($url = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['item_number'])), $url)) && ($url = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['item_name'])), $url)))
|
352 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
367 |
}
|
368 |
$paypal['s2member_log'][] = 'Refund/Reversal Notification URLs have been processed.';
|
369 |
}
|
370 |
+
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['ref_rev_notification_recipients'])
|
371 |
{
|
372 |
$msg = $sbj = '(s2Member / API Notification Email) - Refund/Reversal';
|
373 |
$msg .= "\n\n"; // Spacing in the message body.
|
404 |
$msg .= 'cv8: %%cv8%%'."\n";
|
405 |
$msg .= 'cv9: %%cv9%%';
|
406 |
|
407 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $msg)) && ($msg = preg_replace('/%%parent_txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['parent_txn_id']), $msg)))
|
408 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
409 |
if(($msg = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $msg)) && ($msg = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_name']), $msg)))
|
410 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
includes/classes/paypal-notify-in-subscr-or-rp-payment-failed-w-level.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-notify-in-subscr-or-rp-payment-w-level.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -94,11 +94,11 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_payment_w_
|
|
94 |
$user_reg_ip = get_user_option('s2member_registration_ip', $user_id); // Original IP during Registration.
|
95 |
$user_reg_ip = $paypal['ip'] = ($user_reg_ip) ? $user_reg_ip : $paypal['ip']; // Now merge conditionally.
|
96 |
|
97 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls']
|
98 |
{
|
99 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls']) as $url)
|
100 |
|
101 |
-
if(($url =
|
102 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
103 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
104 |
if(($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
@@ -125,7 +125,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_payment_w_
|
|
125 |
}
|
126 |
$paypal['s2member_log'][] = 'Payment Notification URLs have been processed.';
|
127 |
}
|
128 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_recipients']
|
129 |
{
|
130 |
$msg = $sbj = '(s2Member / API Notification Email) - Payment';
|
131 |
$msg .= "\n\n"; // Spacing in the message body.
|
@@ -167,7 +167,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_payment_w_
|
|
167 |
$msg .= 'cv8: %%cv8%%'."\n";
|
168 |
$msg .= 'cv9: %%cv9%%';
|
169 |
|
170 |
-
if(($msg =
|
171 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
172 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
173 |
if(($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg)) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
@@ -230,4 +230,4 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_payment_w_
|
|
230 |
else return apply_filters('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_payment_w_level', FALSE, get_defined_vars());
|
231 |
}
|
232 |
}
|
233 |
-
}
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
94 |
$user_reg_ip = get_user_option('s2member_registration_ip', $user_id); // Original IP during Registration.
|
95 |
$user_reg_ip = $paypal['ip'] = ($user_reg_ip) ? $user_reg_ip : $paypal['ip']; // Now merge conditionally.
|
96 |
|
97 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls'])
|
98 |
{
|
99 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls']) as $url)
|
100 |
|
101 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_id'])), $url)))
|
102 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
103 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
104 |
if(($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
125 |
}
|
126 |
$paypal['s2member_log'][] = 'Payment Notification URLs have been processed.';
|
127 |
}
|
128 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_recipients'])
|
129 |
{
|
130 |
$msg = $sbj = '(s2Member / API Notification Email) - Payment';
|
131 |
$msg .= "\n\n"; // Spacing in the message body.
|
167 |
$msg .= 'cv8: %%cv8%%'."\n";
|
168 |
$msg .= 'cv9: %%cv9%%';
|
169 |
|
170 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $msg)))
|
171 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
172 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
173 |
if(($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg)) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
230 |
else return apply_filters('c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_payment_w_level', FALSE, get_defined_vars());
|
231 |
}
|
232 |
}
|
233 |
+
}
|
includes/classes/paypal-notify-in-subscr-or-wa-w-level.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -177,7 +177,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
177 |
$msg = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_email_message']; // The same for standard and w/ Pro-Forms.
|
178 |
$rec = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_email_recipients']; // The same for standard and w/ Pro-Forms.
|
179 |
|
180 |
-
if(($rec =
|
181 |
if(($rec = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $rec)) && ($rec = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $rec)))
|
182 |
if(($rec = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $rec)) && ($rec = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $rec)))
|
183 |
if(($rec = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $rec)) && ($rec = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $rec)))
|
@@ -198,7 +198,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
198 |
if(($rec = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $rec)))
|
199 |
if(($rec = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $rec)))
|
200 |
|
201 |
-
if(($sbj =
|
202 |
if(($sbj = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $sbj)) && ($sbj = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $sbj)))
|
203 |
if(($sbj = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $sbj)) && ($sbj = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $sbj)))
|
204 |
if(($sbj = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $sbj)) && ($sbj = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $sbj)))
|
@@ -219,7 +219,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
219 |
if(($sbj = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $sbj)))
|
220 |
if(($sbj = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $sbj)))
|
221 |
|
222 |
-
if(($msg =
|
223 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
224 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
225 |
if(($msg = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $msg)) && ($msg = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $msg)))
|
@@ -259,11 +259,11 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
259 |
$paypal['s2member_log'][] = 'Modification Confirmation Email sent to: '.$rec.'.';
|
260 |
}
|
261 |
}
|
262 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_notification_urls']
|
263 |
{
|
264 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_notification_urls']) as $url)
|
265 |
|
266 |
-
if(($url =
|
267 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
268 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
269 |
if(($url = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['initial'])), $url)) && ($url = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['regular'])), $url)) && ($url = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['recurring'])), $url)))
|
@@ -292,7 +292,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
292 |
}
|
293 |
$paypal['s2member_log'][] = 'Modification Notification URLs have been processed.';
|
294 |
}
|
295 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_notification_recipients']
|
296 |
{
|
297 |
$msg = $sbj = '(s2Member / API Notification Email) - Modification';
|
298 |
$msg .= "\n\n"; // Spacing in the message body.
|
@@ -341,7 +341,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
341 |
$msg .= 'cv8: %%cv8%%'."\n";
|
342 |
$msg .= 'cv9: %%cv9%%';
|
343 |
|
344 |
-
if(($msg =
|
345 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
346 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
347 |
if(($msg = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $msg)) && ($msg = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $msg)) && ($msg = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $msg)))
|
@@ -372,9 +372,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
372 |
}
|
373 |
$paypal['s2member_log'][] = 'Modification Notification Emails have been processed.';
|
374 |
}
|
375 |
-
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_tracking_codes'])
|
376 |
{
|
377 |
-
if(($code =
|
378 |
if(($code = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $code)) && ($code = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $code)))
|
379 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
380 |
if(($code = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $code)) && ($code = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $code)) && ($code = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $code)))
|
@@ -428,7 +428,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
428 |
|
429 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept|subscr_signup` ) w/o update vars.';
|
430 |
|
431 |
-
if(($registration_url = c_ws_plugin__s2member_register_access::register_link_gen($paypal['subscr_gateway'], $paypal['subscr_id'], $paypal['custom'], $paypal['item_number']))
|
432 |
{
|
433 |
$processing = $during = TRUE; // Yes, we ARE processing this.
|
434 |
|
@@ -436,7 +436,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
436 |
$msg = preg_replace('/%%registration_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($registration_url), $GLOBALS['WS_PLUGIN__']['s2member']['o'][(($_REQUEST['s2member_paypal_proxy'] && preg_match('/pro-emails/', $_REQUEST['s2member_paypal_proxy_use'])) ? 'pro_' : '').'signup_email_message']);
|
437 |
$rec = preg_replace('/%%registration_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($registration_url), $GLOBALS['WS_PLUGIN__']['s2member']['o'][(($_REQUEST['s2member_paypal_proxy'] && preg_match('/pro-emails/', $_REQUEST['s2member_paypal_proxy_use'])) ? 'pro_' : '').'signup_email_recipients']);
|
438 |
|
439 |
-
if(($rec =
|
440 |
if(($rec = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $rec)) && ($rec = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $rec)))
|
441 |
if(($rec = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $rec)) && ($rec = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $rec)))
|
442 |
if(($rec = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $rec)) && ($rec = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $rec)))
|
@@ -450,7 +450,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
450 |
if(($rec = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['ip']), $rec)))
|
451 |
if(($rec = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $rec)) && ($rec = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $rec)) && ($rec = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $rec)))
|
452 |
|
453 |
-
if(($sbj =
|
454 |
if(($sbj = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $sbj)) && ($sbj = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $sbj)))
|
455 |
if(($sbj = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $sbj)) && ($sbj = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $sbj)))
|
456 |
if(($sbj = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $sbj)) && ($sbj = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $sbj)))
|
@@ -464,7 +464,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
464 |
if(($sbj = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['ip']), $sbj)))
|
465 |
if(($sbj = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $sbj)) && ($sbj = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $sbj)) && ($sbj = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $sbj)))
|
466 |
|
467 |
-
if(($msg =
|
468 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
469 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
470 |
if(($msg = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $msg)) && ($msg = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $msg)))
|
@@ -490,11 +490,11 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
490 |
|
491 |
$paypal['s2member_log'][] = 'Signup Confirmation Email sent to: '.$rec.'.';
|
492 |
}
|
493 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['signup_notification_urls']
|
494 |
{
|
495 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['signup_notification_urls']) as $url)
|
496 |
|
497 |
-
if(($url =
|
498 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
499 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
500 |
if(($url = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['initial'])), $url)) && ($url = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['regular'])), $url)) && ($url = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['recurring'])), $url)))
|
@@ -511,7 +511,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
511 |
|
512 |
$paypal['s2member_log'][] = 'Signup Notification URLs have been processed.';
|
513 |
}
|
514 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['signup_notification_recipients']
|
515 |
{
|
516 |
$msg = $sbj = '(s2Member / API Notification Email) - Signup';
|
517 |
$msg .= "\n\n"; // Spacing in the message body.
|
@@ -549,7 +549,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
549 |
$msg .= 'cv8: %%cv8%%'."\n";
|
550 |
$msg .= 'cv9: %%cv9%%';
|
551 |
|
552 |
-
if(($msg =
|
553 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
554 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
555 |
if(($msg = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $msg)) && ($msg = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $msg)) && ($msg = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $msg)))
|
@@ -568,9 +568,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
568 |
|
569 |
$paypal['s2member_log'][] = 'Signup Notification Emails have been processed.';
|
570 |
}
|
571 |
-
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['signup_tracking_codes'])
|
572 |
{
|
573 |
-
if(($code =
|
574 |
if(($code = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $code)) && ($code = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $code)))
|
575 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
576 |
if(($code = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $code)) && ($code = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $code)) && ($code = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $code)))
|
@@ -598,14 +598,14 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
598 |
do_action('ws_plugin__s2member_during_paypal_notify_after_subscr_signup_wo_update_vars', get_defined_vars());
|
599 |
unset($__refs, $__v);
|
600 |
}
|
601 |
-
if($processing && $_REQUEST['s2member_paypal_proxy'] && ($url = $_REQUEST['s2member_paypal_proxy_return_url'])
|
602 |
{
|
603 |
if((!empty($user_id) && !empty($user) && is_object($user) && $user->ID) || (($user_id = c_ws_plugin__s2member_utils_users::get_user_id_with($paypal['subscr_id'], $paypal['option_selection1'])) && is_object($user = new WP_User ($user_id)) && $user->ID))
|
604 |
{
|
605 |
$fields = get_user_option('s2member_custom_fields', $user_id); // These will be needed in the routines below.
|
606 |
$user_reg_ip = get_user_option('s2member_registration_ip', $user_id); // Original IP during Registration.
|
607 |
|
608 |
-
if(($url =
|
609 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
610 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
611 |
if(($url = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['initial'])), $url)) && ($url = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['regular'])), $url)) && ($url = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['recurring'])), $url)))
|
@@ -663,11 +663,11 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
663 |
update_user_option($user_id, 's2member_coupon_codes', $user_coupons);
|
664 |
$processed_coupons = TRUE; // Flag for routines below.
|
665 |
}
|
666 |
-
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls']
|
667 |
{
|
668 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls']) as $url)
|
669 |
|
670 |
-
if(($url =
|
671 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
672 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
673 |
if(($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
@@ -695,7 +695,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
695 |
}
|
696 |
$paypal['s2member_log'][] = 'Payment Notification URLs have been processed.';
|
697 |
}
|
698 |
-
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_recipients']
|
699 |
{
|
700 |
$msg = $sbj = '(s2Member / API Notification Email) - Payment';
|
701 |
$msg .= "\n\n"; // Spacing in the message body.
|
@@ -741,7 +741,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
741 |
$msg .= 'cv8: %%cv8%%'."\n";
|
742 |
$msg .= 'cv9: %%cv9%%';
|
743 |
|
744 |
-
if(($msg =
|
745 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
746 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
747 |
if(($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg)) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
@@ -818,4 +818,4 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level'))
|
|
818 |
return apply_filters('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level', FALSE, get_defined_vars());
|
819 |
}
|
820 |
}
|
821 |
-
}
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
177 |
$msg = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_email_message']; // The same for standard and w/ Pro-Forms.
|
178 |
$rec = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_email_recipients']; // The same for standard and w/ Pro-Forms.
|
179 |
|
180 |
+
if(($rec = c_ws_plugin__s2member_utils_strings::fill_cvs($rec, $paypal['custom'])) && ($rec = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $rec)))
|
181 |
if(($rec = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $rec)) && ($rec = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $rec)))
|
182 |
if(($rec = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $rec)) && ($rec = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $rec)))
|
183 |
if(($rec = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $rec)) && ($rec = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $rec)))
|
198 |
if(($rec = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $rec)))
|
199 |
if(($rec = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $rec)))
|
200 |
|
201 |
+
if(($sbj = c_ws_plugin__s2member_utils_strings::fill_cvs($sbj, $paypal['custom'])) && ($sbj = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $sbj)))
|
202 |
if(($sbj = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $sbj)) && ($sbj = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $sbj)))
|
203 |
if(($sbj = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $sbj)) && ($sbj = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $sbj)))
|
204 |
if(($sbj = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $sbj)) && ($sbj = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $sbj)))
|
219 |
if(($sbj = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $sbj)))
|
220 |
if(($sbj = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $sbj)))
|
221 |
|
222 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $msg)))
|
223 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
224 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
225 |
if(($msg = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $msg)) && ($msg = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $msg)))
|
259 |
$paypal['s2member_log'][] = 'Modification Confirmation Email sent to: '.$rec.'.';
|
260 |
}
|
261 |
}
|
262 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_notification_urls'])
|
263 |
{
|
264 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_notification_urls']) as $url)
|
265 |
|
266 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_id'])), $url)))
|
267 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
268 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
269 |
if(($url = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['initial'])), $url)) && ($url = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['regular'])), $url)) && ($url = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['recurring'])), $url)))
|
292 |
}
|
293 |
$paypal['s2member_log'][] = 'Modification Notification URLs have been processed.';
|
294 |
}
|
295 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_notification_recipients'])
|
296 |
{
|
297 |
$msg = $sbj = '(s2Member / API Notification Email) - Modification';
|
298 |
$msg .= "\n\n"; // Spacing in the message body.
|
341 |
$msg .= 'cv8: %%cv8%%'."\n";
|
342 |
$msg .= 'cv9: %%cv9%%';
|
343 |
|
344 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $msg)))
|
345 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
346 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
347 |
if(($msg = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $msg)) && ($msg = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $msg)) && ($msg = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $msg)))
|
372 |
}
|
373 |
$paypal['s2member_log'][] = 'Modification Notification Emails have been processed.';
|
374 |
}
|
375 |
+
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_tracking_codes']))
|
376 |
{
|
377 |
+
if(($code = c_ws_plugin__s2member_utils_strings::fill_cvs($code, $paypal['custom'])) && ($code = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $code)))
|
378 |
if(($code = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $code)) && ($code = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $code)))
|
379 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
380 |
if(($code = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $code)) && ($code = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $code)) && ($code = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $code)))
|
428 |
|
429 |
$paypal['s2member_log'][] = 's2Member `txn_type` identified as ( `web_accept|subscr_signup` ) w/o update vars.';
|
430 |
|
431 |
+
if(($registration_url = c_ws_plugin__s2member_register_access::register_link_gen($paypal['subscr_gateway'], $paypal['subscr_id'], $paypal['custom'], $paypal['item_number'])))
|
432 |
{
|
433 |
$processing = $during = TRUE; // Yes, we ARE processing this.
|
434 |
|
436 |
$msg = preg_replace('/%%registration_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($registration_url), $GLOBALS['WS_PLUGIN__']['s2member']['o'][(($_REQUEST['s2member_paypal_proxy'] && preg_match('/pro-emails/', $_REQUEST['s2member_paypal_proxy_use'])) ? 'pro_' : '').'signup_email_message']);
|
437 |
$rec = preg_replace('/%%registration_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($registration_url), $GLOBALS['WS_PLUGIN__']['s2member']['o'][(($_REQUEST['s2member_paypal_proxy'] && preg_match('/pro-emails/', $_REQUEST['s2member_paypal_proxy_use'])) ? 'pro_' : '').'signup_email_recipients']);
|
438 |
|
439 |
+
if(($rec = c_ws_plugin__s2member_utils_strings::fill_cvs($rec, $paypal['custom'])) && ($rec = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $rec)))
|
440 |
if(($rec = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $rec)) && ($rec = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $rec)))
|
441 |
if(($rec = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $rec)) && ($rec = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $rec)))
|
442 |
if(($rec = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $rec)) && ($rec = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $rec)))
|
450 |
if(($rec = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['ip']), $rec)))
|
451 |
if(($rec = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $rec)) && ($rec = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $rec)) && ($rec = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $rec)))
|
452 |
|
453 |
+
if(($sbj = c_ws_plugin__s2member_utils_strings::fill_cvs($sbj, $paypal['custom'])) && ($sbj = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $sbj)))
|
454 |
if(($sbj = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $sbj)) && ($sbj = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $sbj)))
|
455 |
if(($sbj = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $sbj)) && ($sbj = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $sbj)))
|
456 |
if(($sbj = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $sbj)) && ($sbj = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $sbj)))
|
464 |
if(($sbj = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['ip']), $sbj)))
|
465 |
if(($sbj = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $sbj)) && ($sbj = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $sbj)) && ($sbj = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $sbj)))
|
466 |
|
467 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $msg)))
|
468 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
469 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
470 |
if(($msg = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $msg)) && ($msg = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $msg)))
|
490 |
|
491 |
$paypal['s2member_log'][] = 'Signup Confirmation Email sent to: '.$rec.'.';
|
492 |
}
|
493 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['signup_notification_urls'])
|
494 |
{
|
495 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['signup_notification_urls']) as $url)
|
496 |
|
497 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_id'])), $url)))
|
498 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
499 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
500 |
if(($url = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['initial'])), $url)) && ($url = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['regular'])), $url)) && ($url = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['recurring'])), $url)))
|
511 |
|
512 |
$paypal['s2member_log'][] = 'Signup Notification URLs have been processed.';
|
513 |
}
|
514 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['signup_notification_recipients'])
|
515 |
{
|
516 |
$msg = $sbj = '(s2Member / API Notification Email) - Signup';
|
517 |
$msg .= "\n\n"; // Spacing in the message body.
|
549 |
$msg .= 'cv8: %%cv8%%'."\n";
|
550 |
$msg .= 'cv9: %%cv9%%';
|
551 |
|
552 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $msg)))
|
553 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
554 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
555 |
if(($msg = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $msg)) && ($msg = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $msg)) && ($msg = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $msg)))
|
568 |
|
569 |
$paypal['s2member_log'][] = 'Signup Notification Emails have been processed.';
|
570 |
}
|
571 |
+
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['signup_tracking_codes']))
|
572 |
{
|
573 |
+
if(($code = c_ws_plugin__s2member_utils_strings::fill_cvs($code, $paypal['custom'])) && ($code = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $code)))
|
574 |
if(($code = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $code)) && ($code = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $code)))
|
575 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
576 |
if(($code = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $code)) && ($code = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $code)) && ($code = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $code)))
|
598 |
do_action('ws_plugin__s2member_during_paypal_notify_after_subscr_signup_wo_update_vars', get_defined_vars());
|
599 |
unset($__refs, $__v);
|
600 |
}
|
601 |
+
if($processing && $_REQUEST['s2member_paypal_proxy'] && ($url = $_REQUEST['s2member_paypal_proxy_return_url'])) // A Proxy is requesting a Return URL?
|
602 |
{
|
603 |
if((!empty($user_id) && !empty($user) && is_object($user) && $user->ID) || (($user_id = c_ws_plugin__s2member_utils_users::get_user_id_with($paypal['subscr_id'], $paypal['option_selection1'])) && is_object($user = new WP_User ($user_id)) && $user->ID))
|
604 |
{
|
605 |
$fields = get_user_option('s2member_custom_fields', $user_id); // These will be needed in the routines below.
|
606 |
$user_reg_ip = get_user_option('s2member_registration_ip', $user_id); // Original IP during Registration.
|
607 |
|
608 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_id'])), $url)))
|
609 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
610 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
611 |
if(($url = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['initial'])), $url)) && ($url = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['regular'])), $url)) && ($url = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['recurring'])), $url)))
|
663 |
update_user_option($user_id, 's2member_coupon_codes', $user_coupons);
|
664 |
$processed_coupons = TRUE; // Flag for routines below.
|
665 |
}
|
666 |
+
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls'])
|
667 |
{
|
668 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls']) as $url)
|
669 |
|
670 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_id'])), $url)))
|
671 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_baid'])), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['subscr_cid'])), $url)))
|
672 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
673 |
if(($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
695 |
}
|
696 |
$paypal['s2member_log'][] = 'Payment Notification URLs have been processed.';
|
697 |
}
|
698 |
+
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_recipients'])
|
699 |
{
|
700 |
$msg = $sbj = '(s2Member / API Notification Email) - Payment';
|
701 |
$msg .= "\n\n"; // Spacing in the message body.
|
741 |
$msg .= 'cv8: %%cv8%%'."\n";
|
742 |
$msg .= 'cv9: %%cv9%%';
|
743 |
|
744 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $msg)))
|
745 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $msg)))
|
746 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
747 |
if(($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg)) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
818 |
return apply_filters('c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level', FALSE, get_defined_vars());
|
819 |
}
|
820 |
}
|
821 |
+
}
|
includes/classes/paypal-notify-in-virtual-terminal.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-notify-in-wa-ccaps-wo-level.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -116,7 +116,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level'))
|
|
116 |
$msg = $GLOBALS['WS_PLUGIN__']['s2member']['o']['ccap_email_message']; // The same for standard and w/ Pro-Forms.
|
117 |
$rec = $GLOBALS['WS_PLUGIN__']['s2member']['o']['ccap_email_recipients']; // The same for standard and w/ Pro-Forms.
|
118 |
|
119 |
-
if(($rec =
|
120 |
if(($rec = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $rec)) && ($rec = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $rec)))
|
121 |
if(($rec = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $rec)) && ($rec = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $rec)))
|
122 |
if(($rec = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $rec)) && ($rec = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $rec)))
|
@@ -134,7 +134,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level'))
|
|
134 |
if(($rec = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $rec)))
|
135 |
if(($rec = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $rec)))
|
136 |
|
137 |
-
if(($sbj =
|
138 |
if(($sbj = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $sbj)) && ($sbj = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $sbj)))
|
139 |
if(($sbj = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $sbj)) && ($sbj = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $sbj)))
|
140 |
if(($sbj = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $sbj)) && ($sbj = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $sbj)))
|
@@ -152,7 +152,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level'))
|
|
152 |
if(($sbj = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $sbj)))
|
153 |
if(($sbj = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $sbj)))
|
154 |
|
155 |
-
if(($msg =
|
156 |
if(($msg = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $msg)) && ($msg = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $msg)))
|
157 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
158 |
if(($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg)) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
@@ -189,9 +189,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level'))
|
|
189 |
$paypal['s2member_log'][] = 'Capability Confirmation Email sent to: '.$rec.'.';
|
190 |
}
|
191 |
}
|
192 |
-
if($processing && $_REQUEST['s2member_paypal_proxy'] && ($url = $_REQUEST['s2member_paypal_proxy_return_url'])
|
193 |
{
|
194 |
-
if(($url =
|
195 |
if(($url = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_baid'])), $url)) && ($url = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_cid'])), $url)))
|
196 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
197 |
if(($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
@@ -220,11 +220,11 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level'))
|
|
220 |
}
|
221 |
$paypal['s2member_log'][] = 'Capability Return, a Proxy Return URL is ready.';
|
222 |
}
|
223 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls']
|
224 |
{
|
225 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls']) as $url)
|
226 |
|
227 |
-
if(($url =
|
228 |
if(($url = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_baid'])), $url)) && ($url = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_cid'])), $url)))
|
229 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
230 |
if(($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
@@ -252,7 +252,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level'))
|
|
252 |
}
|
253 |
$paypal['s2member_log'][] = 'Payment Notification URLs have been processed.';
|
254 |
}
|
255 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_recipients']
|
256 |
{
|
257 |
$msg = $sbj = '(s2Member / API Notification Email) - Payment';
|
258 |
$msg .= "\n\n"; // Spacing in the message body.
|
@@ -297,7 +297,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level'))
|
|
297 |
$msg .= 'cv8: %%cv8%%'."\n";
|
298 |
$msg .= 'cv9: %%cv9%%';
|
299 |
|
300 |
-
if(($msg =
|
301 |
if(($msg = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $msg)) && ($msg = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $msg)))
|
302 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
303 |
if(($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg)) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
@@ -327,9 +327,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level'))
|
|
327 |
}
|
328 |
$paypal['s2member_log'][] = 'Payment Notification Emails have been processed.';
|
329 |
}
|
330 |
-
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['ccap_tracking_codes'])
|
331 |
{
|
332 |
-
if(($code =
|
333 |
if(($code = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $code)) && ($code = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $code)))
|
334 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
335 |
if(($code = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $code)) && ($code = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $code)))
|
@@ -384,4 +384,4 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level'))
|
|
384 |
else return apply_filters('c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level', FALSE, get_defined_vars());
|
385 |
}
|
386 |
}
|
387 |
-
}
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
116 |
$msg = $GLOBALS['WS_PLUGIN__']['s2member']['o']['ccap_email_message']; // The same for standard and w/ Pro-Forms.
|
117 |
$rec = $GLOBALS['WS_PLUGIN__']['s2member']['o']['ccap_email_recipients']; // The same for standard and w/ Pro-Forms.
|
118 |
|
119 |
+
if(($rec = c_ws_plugin__s2member_utils_strings::fill_cvs($rec, $paypal['custom'])) && ($rec = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $rec)))
|
120 |
if(($rec = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $rec)) && ($rec = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $rec)))
|
121 |
if(($rec = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $rec)) && ($rec = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $rec)))
|
122 |
if(($rec = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $rec)) && ($rec = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $rec)))
|
134 |
if(($rec = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $rec)))
|
135 |
if(($rec = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $rec)))
|
136 |
|
137 |
+
if(($sbj = c_ws_plugin__s2member_utils_strings::fill_cvs($sbj, $paypal['custom'])) && ($sbj = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $sbj)))
|
138 |
if(($sbj = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $sbj)) && ($sbj = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $sbj)))
|
139 |
if(($sbj = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $sbj)) && ($sbj = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $sbj)))
|
140 |
if(($sbj = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $sbj)) && ($sbj = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $sbj)))
|
152 |
if(($sbj = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_reg_ip), $sbj)))
|
153 |
if(($sbj = preg_replace('/%%user_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user_id), $sbj)))
|
154 |
|
155 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
156 |
if(($msg = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $msg)) && ($msg = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $msg)))
|
157 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
158 |
if(($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg)) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
189 |
$paypal['s2member_log'][] = 'Capability Confirmation Email sent to: '.$rec.'.';
|
190 |
}
|
191 |
}
|
192 |
+
if($processing && $_REQUEST['s2member_paypal_proxy'] && ($url = $_REQUEST['s2member_paypal_proxy_return_url'])) // A Proxy is requesting a Return URL?
|
193 |
{
|
194 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
195 |
if(($url = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_baid'])), $url)) && ($url = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_cid'])), $url)))
|
196 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
197 |
if(($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
220 |
}
|
221 |
$paypal['s2member_log'][] = 'Capability Return, a Proxy Return URL is ready.';
|
222 |
}
|
223 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls'])
|
224 |
{
|
225 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_urls']) as $url)
|
226 |
|
227 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
228 |
if(($url = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_baid'])), $url)) && ($url = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_cid'])), $url)))
|
229 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
230 |
if(($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
252 |
}
|
253 |
$paypal['s2member_log'][] = 'Payment Notification URLs have been processed.';
|
254 |
}
|
255 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['payment_notification_recipients'])
|
256 |
{
|
257 |
$msg = $sbj = '(s2Member / API Notification Email) - Payment';
|
258 |
$msg .= "\n\n"; // Spacing in the message body.
|
297 |
$msg .= 'cv8: %%cv8%%'."\n";
|
298 |
$msg .= 'cv9: %%cv9%%';
|
299 |
|
300 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
301 |
if(($msg = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $msg)) && ($msg = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $msg)))
|
302 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
303 |
if(($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg)) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
327 |
}
|
328 |
$paypal['s2member_log'][] = 'Payment Notification Emails have been processed.';
|
329 |
}
|
330 |
+
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['ccap_tracking_codes']))
|
331 |
{
|
332 |
+
if(($code = c_ws_plugin__s2member_utils_strings::fill_cvs($code, $paypal['custom'])) && ($code = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $code)))
|
333 |
if(($code = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $code)) && ($code = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $code)))
|
334 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
335 |
if(($code = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $code)) && ($code = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $code)))
|
384 |
else return apply_filters('c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level', FALSE, get_defined_vars());
|
385 |
}
|
386 |
}
|
387 |
+
}
|
includes/classes/paypal-notify-in-web-accept-sp.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -69,7 +69,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp'))
|
|
69 |
$coupon_class = new c_ws_plugin__s2member_pro_coupons();
|
70 |
$coupon_class->update_uses($coupon['coupon_code']);
|
71 |
}
|
72 |
-
if(($sp_access_url = c_ws_plugin__s2member_sp_access::sp_access_link_gen($paypal['sp_ids'], $paypal['hours']))
|
73 |
{
|
74 |
$processing = $during = TRUE; // Yes, we ARE processing this.
|
75 |
|
@@ -98,7 +98,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp'))
|
|
98 |
$rec = preg_replace('/%%sp_access_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($sp_access_url), $GLOBALS['WS_PLUGIN__']['s2member']['o'][(($_REQUEST['s2member_paypal_proxy'] && preg_match('/pro-emails/', $_REQUEST['s2member_paypal_proxy_use'])) ? 'pro_' : '').'sp_email_recipients']);
|
99 |
$rec = preg_replace('/%%sp_access_exp%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(c_ws_plugin__s2member_utils_time::approx_time_difference(time(), strtotime('+'.$paypal['hours'].' hours'))), $rec);
|
100 |
|
101 |
-
if(($rec =
|
102 |
if(($rec = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $rec))) // Full amount of the payment, before fee is subtracted.
|
103 |
if(($rec = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $rec)) && ($rec = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $rec)))
|
104 |
if(($rec = preg_replace('/%%txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $rec)) && ($rec = preg_replace('/%%txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $rec)))
|
@@ -109,7 +109,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp'))
|
|
109 |
if(($rec = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['ip']), $rec)))
|
110 |
if(($rec = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $rec)) && ($rec = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $rec)) && ($rec = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $rec)))
|
111 |
|
112 |
-
if(($sbj =
|
113 |
if(($sbj = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $sbj))) // Full amount of the payment, before fee is subtracted.
|
114 |
if(($sbj = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $sbj)) && ($sbj = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $sbj)))
|
115 |
if(($sbj = preg_replace('/%%txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $sbj)) && ($sbj = preg_replace('/%%txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $sbj)))
|
@@ -120,7 +120,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp'))
|
|
120 |
if(($sbj = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['ip']), $sbj)))
|
121 |
if(($sbj = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $sbj)) && ($sbj = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $sbj)) && ($sbj = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $sbj)))
|
122 |
|
123 |
-
if(($msg =
|
124 |
if(($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg))) // Full amount of the payment, before fee is subtracted.
|
125 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
126 |
if(($msg = preg_replace('/%%txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $msg)) && ($msg = preg_replace('/%%txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $msg)))
|
@@ -143,11 +143,11 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp'))
|
|
143 |
|
144 |
$paypal['s2member_log'][] = 'Specific Post/Page Confirmation Email sent to: '.$rec.'.';
|
145 |
}
|
146 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_sale_notification_urls']
|
147 |
{
|
148 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_sale_notification_urls']) as $url)
|
149 |
|
150 |
-
if(($url =
|
151 |
if(($url = preg_replace('/%%sp_access_exp%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(c_ws_plugin__s2member_utils_time::approx_time_difference(time(), strtotime('+'.$paypal['hours'].' hours')))), $url)))
|
152 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
153 |
if(($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
@@ -164,7 +164,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp'))
|
|
164 |
|
165 |
$paypal['s2member_log'][] = 'Specific Post/Page ~ Sale Notification URLs have been processed.';
|
166 |
}
|
167 |
-
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_sale_notification_recipients']
|
168 |
{
|
169 |
$msg = $sbj = '(s2Member / API Notification Email) - Specific Post/Page ~ Sale';
|
170 |
$msg .= "\n\n"; // Spacing in the message body.
|
@@ -201,7 +201,7 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp'))
|
|
201 |
$msg .= 'cv8: %%cv8%%'."\n";
|
202 |
$msg .= 'cv9: %%cv9%%';
|
203 |
|
204 |
-
if(($msg =
|
205 |
if(($msg = preg_replace('/%%sp_access_exp%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(c_ws_plugin__s2member_utils_time::approx_time_difference(time(), strtotime('+'.$paypal['hours'].' hours'))), $msg)))
|
206 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
207 |
if(($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg)) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
@@ -220,9 +220,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp'))
|
|
220 |
|
221 |
$paypal['s2member_log'][] = 'Specific Post/Page ~ Sale Notification Emails have been processed.';
|
222 |
}
|
223 |
-
if($processing && $_REQUEST['s2member_paypal_proxy'] && ($url = $_REQUEST['s2member_paypal_proxy_return_url'])
|
224 |
{
|
225 |
-
if(($url =
|
226 |
if(($url = preg_replace('/%%sp_access_exp%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(c_ws_plugin__s2member_utils_time::approx_time_difference(time(), strtotime('+'.$paypal['hours'].' hours')))), $url)))
|
227 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
228 |
if(($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
@@ -240,9 +240,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp'))
|
|
240 |
|
241 |
$paypal['s2member_log'][] = 'Specific Post/Page Return, a Proxy Return URL is ready.';
|
242 |
}
|
243 |
-
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_tracking_codes'])
|
244 |
{
|
245 |
-
if(($code =
|
246 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
247 |
if(($code = preg_replace('/%%txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $code)) && ($code = preg_replace('/%%txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $code)))
|
248 |
if(($code = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $code)) && ($code = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_name']), $code)))
|
@@ -279,4 +279,4 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp'))
|
|
279 |
else return apply_filters('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp', FALSE, get_defined_vars());
|
280 |
}
|
281 |
}
|
282 |
-
}
|
3 |
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
69 |
$coupon_class = new c_ws_plugin__s2member_pro_coupons();
|
70 |
$coupon_class->update_uses($coupon['coupon_code']);
|
71 |
}
|
72 |
+
if(($sp_access_url = c_ws_plugin__s2member_sp_access::sp_access_link_gen($paypal['sp_ids'], $paypal['hours'])))
|
73 |
{
|
74 |
$processing = $during = TRUE; // Yes, we ARE processing this.
|
75 |
|
98 |
$rec = preg_replace('/%%sp_access_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($sp_access_url), $GLOBALS['WS_PLUGIN__']['s2member']['o'][(($_REQUEST['s2member_paypal_proxy'] && preg_match('/pro-emails/', $_REQUEST['s2member_paypal_proxy_use'])) ? 'pro_' : '').'sp_email_recipients']);
|
99 |
$rec = preg_replace('/%%sp_access_exp%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(c_ws_plugin__s2member_utils_time::approx_time_difference(time(), strtotime('+'.$paypal['hours'].' hours'))), $rec);
|
100 |
|
101 |
+
if(($rec = c_ws_plugin__s2member_utils_strings::fill_cvs($rec, $paypal['custom'])) && ($rec = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $rec)))
|
102 |
if(($rec = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $rec))) // Full amount of the payment, before fee is subtracted.
|
103 |
if(($rec = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $rec)) && ($rec = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $rec)))
|
104 |
if(($rec = preg_replace('/%%txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $rec)) && ($rec = preg_replace('/%%txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $rec)))
|
109 |
if(($rec = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['ip']), $rec)))
|
110 |
if(($rec = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $rec)) && ($rec = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $rec)) && ($rec = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $rec)))
|
111 |
|
112 |
+
if(($sbj = c_ws_plugin__s2member_utils_strings::fill_cvs($sbj, $paypal['custom'])) && ($sbj = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $sbj)))
|
113 |
if(($sbj = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $sbj))) // Full amount of the payment, before fee is subtracted.
|
114 |
if(($sbj = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $sbj)) && ($sbj = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $sbj)))
|
115 |
if(($sbj = preg_replace('/%%txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $sbj)) && ($sbj = preg_replace('/%%txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $sbj)))
|
120 |
if(($sbj = preg_replace('/%%user_ip%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['ip']), $sbj)))
|
121 |
if(($sbj = preg_replace('/%%full_coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['full_coupon_code']), $sbj)) && ($sbj = preg_replace('/%%coupon_code%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['coupon_code']), $sbj)) && ($sbj = preg_replace('/%%coupon_affiliate_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($coupon['affiliate_id']), $sbj)))
|
122 |
|
123 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
124 |
if(($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg))) // Full amount of the payment, before fee is subtracted.
|
125 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
126 |
if(($msg = preg_replace('/%%txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $msg)) && ($msg = preg_replace('/%%txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $msg)))
|
143 |
|
144 |
$paypal['s2member_log'][] = 'Specific Post/Page Confirmation Email sent to: '.$rec.'.';
|
145 |
}
|
146 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_sale_notification_urls'])
|
147 |
{
|
148 |
foreach(preg_split('/['."\r\n\t".']+/', $GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_sale_notification_urls']) as $url)
|
149 |
|
150 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%sp_access_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rawurlencode($sp_access_url)), $url)))
|
151 |
if(($url = preg_replace('/%%sp_access_exp%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(c_ws_plugin__s2member_utils_time::approx_time_difference(time(), strtotime('+'.$paypal['hours'].' hours')))), $url)))
|
152 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
153 |
if(($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
164 |
|
165 |
$paypal['s2member_log'][] = 'Specific Post/Page ~ Sale Notification URLs have been processed.';
|
166 |
}
|
167 |
+
if($processing && $GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_sale_notification_recipients'])
|
168 |
{
|
169 |
$msg = $sbj = '(s2Member / API Notification Email) - Specific Post/Page ~ Sale';
|
170 |
$msg .= "\n\n"; // Spacing in the message body.
|
201 |
$msg .= 'cv8: %%cv8%%'."\n";
|
202 |
$msg .= 'cv9: %%cv9%%';
|
203 |
|
204 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $paypal['custom'])) && ($msg = preg_replace('/%%sp_access_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($sp_access_url), $msg)))
|
205 |
if(($msg = preg_replace('/%%sp_access_exp%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(c_ws_plugin__s2member_utils_time::approx_time_difference(time(), strtotime('+'.$paypal['hours'].' hours'))), $msg)))
|
206 |
if(($msg = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $msg)) && ($msg = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $msg)))
|
207 |
if(($msg = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $msg)) && ($msg = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $msg)))
|
220 |
|
221 |
$paypal['s2member_log'][] = 'Specific Post/Page ~ Sale Notification Emails have been processed.';
|
222 |
}
|
223 |
+
if($processing && $_REQUEST['s2member_paypal_proxy'] && ($url = $_REQUEST['s2member_paypal_proxy_return_url'])) // A Proxy is requesting a Return URL?
|
224 |
{
|
225 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $paypal['custom'], true)) && ($url = preg_replace('/%%sp_access_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rawurlencode($sp_access_url)), $url)))
|
226 |
if(($url = preg_replace('/%%sp_access_exp%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(c_ws_plugin__s2member_utils_time::approx_time_difference(time(), strtotime('+'.$paypal['hours'].' hours')))), $url)))
|
227 |
if(($url = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency'])), $url)) && ($url = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['currency_symbol'])), $url)))
|
228 |
if(($url = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['mc_gross'])), $url)) && ($url = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($paypal['txn_id'])), $url)))
|
240 |
|
241 |
$paypal['s2member_log'][] = 'Specific Post/Page Return, a Proxy Return URL is ready.';
|
242 |
}
|
243 |
+
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_tracking_codes']))
|
244 |
{
|
245 |
+
if(($code = c_ws_plugin__s2member_utils_strings::fill_cvs($code, $paypal['custom'])) && ($code = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $code)) && ($code = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $code)))
|
246 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
247 |
if(($code = preg_replace('/%%txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $code)) && ($code = preg_replace('/%%txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $code)))
|
248 |
if(($code = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $code)) && ($code = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_name']), $code)))
|
279 |
else return apply_filters('c_ws_plugin__s2member_paypal_notify_in_web_accept_sp', FALSE, get_defined_vars());
|
280 |
}
|
281 |
}
|
282 |
+
}
|
includes/classes/paypal-notify-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -185,37 +185,25 @@ if(!class_exists('c_ws_plugin__s2member_paypal_notify_in'))
|
|
185 |
if(!empty($_REQUEST['s2member_paypal_proxy_verification']))
|
186 |
$paypal['s2member_paypal_proxy_verification'] = esc_html(trim(stripslashes((string)$_REQUEST['s2member_paypal_proxy_verification'])));
|
187 |
/*
|
188 |
-
|
189 |
-
|
|
|
|
|
|
|
190 |
*/
|
191 |
-
$logt = c_ws_plugin__s2member_utilities::time_details();
|
192 |
-
$logv = c_ws_plugin__s2member_utilities::ver_details();
|
193 |
-
$logm = c_ws_plugin__s2member_utilities::mem_details();
|
194 |
-
$log4 = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."\n".'User-Agent: '.@$_SERVER['HTTP_USER_AGENT'];
|
195 |
-
$log4 = (is_multisite() && !is_main_site()) ? ($_log4 = $current_blog->domain.$current_blog->path)."\n".$log4 : $log4;
|
196 |
-
$log2 = (is_multisite() && !is_main_site()) ? 'gateway-core-ipn-4-'.trim(preg_replace('/[^a-z0-9]/i', '-', (!empty($_log4) ? $_log4 : '')), '-').'.log' : 'gateway-core-ipn.log';
|
197 |
-
|
198 |
-
if($GLOBALS['WS_PLUGIN__']['s2member']['o']['gateway_debug_logs'])
|
199 |
-
if(is_dir($logs_dir = $GLOBALS['WS_PLUGIN__']['s2member']['c']['logs_dir']))
|
200 |
-
if(is_writable($logs_dir) && c_ws_plugin__s2member_utils_logs::archive_oversize_log_files())
|
201 |
-
file_put_contents($logs_dir.'/'.$log2,
|
202 |
-
'LOG ENTRY: '.$logt."\n".$logv."\n".$logm."\n".$log4."\n".
|
203 |
-
c_ws_plugin__s2member_utils_logs::conceal_private_info(var_export($paypal, TRUE))."\n\n",
|
204 |
-
FILE_APPEND);
|
205 |
-
|
206 |
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
207 |
do_action('ws_plugin__s2member_during_paypal_notify', get_defined_vars());
|
208 |
unset($__refs, $__v);
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
exit (
|
215 |
}
|
216 |
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
217 |
do_action('ws_plugin__s2member_after_paypal_notify', get_defined_vars());
|
218 |
unset($__refs, $__v);
|
219 |
}
|
220 |
}
|
221 |
-
}
|
3 |
* s2Member's PayPal IPN handler (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
185 |
if(!empty($_REQUEST['s2member_paypal_proxy_verification']))
|
186 |
$paypal['s2member_paypal_proxy_verification'] = esc_html(trim(stripslashes((string)$_REQUEST['s2member_paypal_proxy_verification'])));
|
187 |
/*
|
188 |
+
Log this IPN post-processing event now.
|
189 |
+
*/
|
190 |
+
c_ws_plugin__s2member_utils_logs::log_entry('gateway-core-ipn', $paypal);
|
191 |
+
/*
|
192 |
+
Hook during core IPN post-processing might be useful for developers.
|
193 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
195 |
do_action('ws_plugin__s2member_during_paypal_notify', get_defined_vars());
|
196 |
unset($__refs, $__v);
|
197 |
+
/*
|
198 |
+
Output response headers; and perhaps a proxy return URL upon request.
|
199 |
+
*/
|
200 |
+
status_header(200);
|
201 |
+
header('Content-Type: text/plain; charset=UTF-8');
|
202 |
+
while(@ob_end_clean()); exit (!empty($paypal['s2member_paypal_proxy_return_url']) ? $paypal['s2member_paypal_proxy_return_url'] : '');
|
203 |
}
|
204 |
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
205 |
do_action('ws_plugin__s2member_after_paypal_notify', get_defined_vars());
|
206 |
unset($__refs, $__v);
|
207 |
}
|
208 |
}
|
209 |
+
}
|
includes/classes/paypal-notify.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal IPN handler.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's PayPal IPN handler.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-return-in-no-tx-data.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-return-in-proxy-ty-email.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-return-in-proxy-x-preview.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-return-in-subscr-modify-w-level.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -145,9 +145,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_subscr_modify_w_level')
|
|
145 |
|
146 |
$paypal['s2member_log'][] = 'Transient Tracking Cookie set on ( `subscr_modify` ), a Subscription Modification.';
|
147 |
|
148 |
-
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_tracking_codes'])
|
149 |
{
|
150 |
-
if(($code =
|
151 |
if(($code = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $code)) && ($code = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $code)))
|
152 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
153 |
if(($code = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $code)) && ($code = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $code)) && ($code = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $code)))
|
@@ -237,4 +237,4 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_subscr_modify_w_level')
|
|
237 |
else return apply_filters('c_ws_plugin__s2member_paypal_return_in_subscr_modify_w_level', FALSE, get_defined_vars());
|
238 |
}
|
239 |
}
|
240 |
-
}
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
145 |
|
146 |
$paypal['s2member_log'][] = 'Transient Tracking Cookie set on ( `subscr_modify` ), a Subscription Modification.';
|
147 |
|
148 |
+
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_tracking_codes']))
|
149 |
{
|
150 |
+
if(($code = c_ws_plugin__s2member_utils_strings::fill_cvs($code, $paypal['custom'])) && ($code = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $code)))
|
151 |
if(($code = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $code)) && ($code = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $code)))
|
152 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
153 |
if(($code = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $code)) && ($code = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $code)) && ($code = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $code)))
|
237 |
else return apply_filters('c_ws_plugin__s2member_paypal_return_in_subscr_modify_w_level', FALSE, get_defined_vars());
|
238 |
}
|
239 |
}
|
240 |
+
}
|
includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -199,9 +199,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_subscr_or_wa_w_level'))
|
|
199 |
|
200 |
$paypal['s2member_log'][] = 'Transient Tracking Cookie set on ( `web_accept|subscr_signup|subscr_payment` ) w/ update vars.';
|
201 |
|
202 |
-
if($processing && $tracking_properties && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_tracking_codes'])
|
203 |
{
|
204 |
-
if(($code =
|
205 |
if(($code = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $code)) && ($code = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $code)))
|
206 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
207 |
if(($code = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $code)) && ($code = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $code)) && ($code = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $code)))
|
@@ -299,9 +299,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_subscr_or_wa_w_level'))
|
|
299 |
|
300 |
$paypal['s2member_log'][] = 'Transient Tracking Cookie set on ( `web_accept|subscr_signup|subscr_payment` ) w/o update vars.';
|
301 |
|
302 |
-
if($processing && $tracking_properties && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['signup_tracking_codes'])
|
303 |
{
|
304 |
-
if(($code =
|
305 |
if(($code = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $code)) && ($code = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $code)))
|
306 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
307 |
if(($code = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $code)) && ($code = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $code)) && ($code = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $code)))
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
199 |
|
200 |
$paypal['s2member_log'][] = 'Transient Tracking Cookie set on ( `web_accept|subscr_signup|subscr_payment` ) w/ update vars.';
|
201 |
|
202 |
+
if($processing && $tracking_properties && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['modification_tracking_codes']))
|
203 |
{
|
204 |
+
if(($code = c_ws_plugin__s2member_utils_strings::fill_cvs($code, $paypal['custom'])) && ($code = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $code)))
|
205 |
if(($code = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $code)) && ($code = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $code)))
|
206 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
207 |
if(($code = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $code)) && ($code = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $code)) && ($code = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $code)))
|
299 |
|
300 |
$paypal['s2member_log'][] = 'Transient Tracking Cookie set on ( `web_accept|subscr_signup|subscr_payment` ) w/o update vars.';
|
301 |
|
302 |
+
if($processing && $tracking_properties && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['signup_tracking_codes']))
|
303 |
{
|
304 |
+
if(($code = c_ws_plugin__s2member_utils_strings::fill_cvs($code, $paypal['custom'])) && ($code = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_id']), $code)))
|
305 |
if(($code = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_baid']), $code)) && ($code = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['subscr_cid']), $code)))
|
306 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
307 |
if(($code = preg_replace('/%%initial%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['initial']), $code)) && ($code = preg_replace('/%%regular%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['regular']), $code)) && ($code = preg_replace('/%%recurring%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['recurring']), $code)))
|
includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -102,9 +102,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_wa_ccaps_wo_level'))
|
|
102 |
|
103 |
$paypal['s2member_log'][] = 'Transient Tracking Cookie set on ( `web_accept` ) w/ update vars for Capabilities w/o Level.';
|
104 |
|
105 |
-
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['ccap_tracking_codes'])
|
106 |
{
|
107 |
-
if(($code =
|
108 |
if(($code = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $code)) && ($code = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $code)))
|
109 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
110 |
if(($code = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $code)) && ($code = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $code)))
|
@@ -204,4 +204,4 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_wa_ccaps_wo_level'))
|
|
204 |
else return apply_filters('c_ws_plugin__s2member_paypal_return_in_wa_ccaps_wo_level', FALSE, get_defined_vars());
|
205 |
}
|
206 |
}
|
207 |
-
}
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
102 |
|
103 |
$paypal['s2member_log'][] = 'Transient Tracking Cookie set on ( `web_accept` ) w/ update vars for Capabilities w/o Level.';
|
104 |
|
105 |
+
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['ccap_tracking_codes']))
|
106 |
{
|
107 |
+
if(($code = c_ws_plugin__s2member_utils_strings::fill_cvs($code, $paypal['custom'])) && ($code = preg_replace('/%%(?:subscr|txn)_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $code)))
|
108 |
if(($code = preg_replace('/%%(?:subscr|txn)_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $code)) && ($code = preg_replace('/%%(?:subscr|txn)_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $code)))
|
109 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
110 |
if(($code = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $code)) && ($code = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $code)))
|
204 |
else return apply_filters('c_ws_plugin__s2member_paypal_return_in_wa_ccaps_wo_level', FALSE, get_defined_vars());
|
205 |
}
|
206 |
}
|
207 |
+
}
|
includes/classes/paypal-return-in-web-accept-sp.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -73,9 +73,9 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_web_accept_sp'))
|
|
73 |
|
74 |
$paypal['s2member_log'][] = 'Transient Tracking Cookie set on ( `web_accept` ) for Specific Post/Page Access.';
|
75 |
|
76 |
-
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_tracking_codes'])
|
77 |
{
|
78 |
-
if(($code =
|
79 |
if(($code = preg_replace('/%%txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $code)) && ($code = preg_replace('/%%txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $code)))
|
80 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
81 |
if(($code = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $code)) && ($code = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_name']), $code)))
|
@@ -145,4 +145,4 @@ if(!class_exists('c_ws_plugin__s2member_paypal_return_in_web_accept_sp'))
|
|
145 |
else return apply_filters('c_ws_plugin__s2member_paypal_return_in_web_accept_sp', FALSE, get_defined_vars());
|
146 |
}
|
147 |
}
|
148 |
-
}
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routine).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
73 |
|
74 |
$paypal['s2member_log'][] = 'Transient Tracking Cookie set on ( `web_accept` ) for Specific Post/Page Access.';
|
75 |
|
76 |
+
if($processing && ($code = $GLOBALS['WS_PLUGIN__']['s2member']['o']['sp_tracking_codes']))
|
77 |
{
|
78 |
+
if(($code = c_ws_plugin__s2member_utils_strings::fill_cvs($code, $paypal['custom'])) && ($code = preg_replace('/%%amount%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['mc_gross']), $code)) && ($code = preg_replace('/%%txn_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_id']), $code)))
|
79 |
if(($code = preg_replace('/%%txn_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_baid']), $code)) && ($code = preg_replace('/%%txn_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['txn_cid']), $code)))
|
80 |
if(($code = preg_replace('/%%currency%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency']), $code)) && ($code = preg_replace('/%%currency_symbol%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['currency_symbol']), $code)))
|
81 |
if(($code = preg_replace('/%%item_number%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_number']), $code)) && ($code = preg_replace('/%%item_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($paypal['item_name']), $code)))
|
145 |
else return apply_filters('c_ws_plugin__s2member_paypal_return_in_web_accept_sp', FALSE, get_defined_vars());
|
146 |
}
|
147 |
}
|
148 |
+
}
|
includes/classes/paypal-return-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -162,33 +162,21 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in"))
|
|
162 |
if (!empty($_GET["s2member_paypal_return_tra"]))
|
163 |
$paypal["s2member_paypal_return_tra"] = esc_html(trim(stripslashes((string)$_GET["s2member_paypal_return_tra"])));
|
164 |
/*
|
165 |
-
|
166 |
-
|
|
|
|
|
|
|
167 |
*/
|
168 |
-
$logt = c_ws_plugin__s2member_utilities::time_details ();
|
169 |
-
$logv = c_ws_plugin__s2member_utilities::ver_details ();
|
170 |
-
$logm = c_ws_plugin__s2member_utilities::mem_details ();
|
171 |
-
$log4 = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] . "\nUser-Agent: " . @$_SERVER["HTTP_USER_AGENT"];
|
172 |
-
$log4 = (is_multisite () && !is_main_site ()) ? ($_log4 = $current_blog->domain . $current_blog->path) . "\n" . $log4 : $log4;
|
173 |
-
$log2 = (is_multisite () && !is_main_site ()) ? "gateway-core-rtn-4-" . trim (preg_replace ("/[^a-z0-9]/i", "-", $_log4), "-") . ".log" : "gateway-core-rtn.log";
|
174 |
-
|
175 |
-
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["gateway_debug_logs"])
|
176 |
-
if (is_dir ($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"]))
|
177 |
-
if (is_writable ($logs_dir) && c_ws_plugin__s2member_utils_logs::archive_oversize_log_files ())
|
178 |
-
file_put_contents ($logs_dir . "/" . $log2,
|
179 |
-
"LOG ENTRY: ".$logt . "\n" . $logv . "\n" . $logm . "\n" . $log4 . "\n" .
|
180 |
-
c_ws_plugin__s2member_utils_logs::conceal_private_info(var_export ($paypal, true)) . "\n\n",
|
181 |
-
FILE_APPEND);
|
182 |
-
|
183 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
184 |
do_action("ws_plugin__s2member_during_paypal_return", get_defined_vars ());
|
185 |
unset($__refs, $__v);
|
186 |
|
187 |
-
exit
|
188 |
}
|
189 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
190 |
do_action("ws_plugin__s2member_after_paypal_return", get_defined_vars ());
|
191 |
unset($__refs, $__v);
|
192 |
}
|
193 |
}
|
194 |
-
}
|
3 |
* s2Member's PayPal Auto-Return/PDT handler (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
162 |
if (!empty($_GET["s2member_paypal_return_tra"]))
|
163 |
$paypal["s2member_paypal_return_tra"] = esc_html(trim(stripslashes((string)$_GET["s2member_paypal_return_tra"])));
|
164 |
/*
|
165 |
+
Log this IPN post-processing event now.
|
166 |
+
*/
|
167 |
+
c_ws_plugin__s2member_utils_logs::log_entry('gateway-core-rtn', $paypal);
|
168 |
+
/*
|
169 |
+
Hook during core RTN post-processing might be useful for developers.
|
170 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
171 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
172 |
do_action("ws_plugin__s2member_during_paypal_return", get_defined_vars ());
|
173 |
unset($__refs, $__v);
|
174 |
|
175 |
+
exit(); // Clean exit now.
|
176 |
}
|
177 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
178 |
do_action("ws_plugin__s2member_after_paypal_return", get_defined_vars ());
|
179 |
unset($__refs, $__v);
|
180 |
}
|
181 |
}
|
182 |
+
}
|
includes/classes/paypal-return.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's PayPal Auto-Return/PDT handler.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's PayPal Auto-Return/PDT handler.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/paypal-utilities.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* PayPal utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* PayPal utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/posts-sp.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's Post protection routines *(for specific Posts)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's Post protection routines *(for specific Posts)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/posts.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's Post protection routines *(for current Post)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's Post protection routines *(for current Post)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/profile-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member Stand-Alone Profile page (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member Stand-Alone Profile page (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/profile-mods-4bp-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Profile modifications for BuddyPress (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Profile modifications for BuddyPress (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/profile-mods-4bp.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Profile modifications for BuddyPress.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Profile modifications for BuddyPress.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/profile-mods-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member Profile modifications (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member Profile modifications (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/profile-mods.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member Profile modifications.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member Profile modifications.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/profile.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member Stand-Alone Profile page.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member Stand-Alone Profile page.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/ptags-sp.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's Tag protection routines *(for specific Tags)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's Tag protection routines *(for specific Tags)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/ptags.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's Tag protection routines *(for current page)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's Tag protection routines *(for current page)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/querys.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Query protection routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Query protection routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/readmes.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Readme file parsing.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Readme file parsing.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/register-access.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Registration Access Links.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Registration Access Links.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/register-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Registration Links (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Registration Links (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/register.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Registration Links.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Registration Links.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/registration-times.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Registration Times.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Registration Times.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/registrations.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Registration handlers.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -643,7 +643,6 @@ if(!class_exists('c_ws_plugin__s2member_registrations'))
|
|
643 |
$ip = (!$ip) ? $_SERVER['REMOTE_ADDR'] : $ip; // Else use environment variable.
|
644 |
$subscr_baid = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_baid'];
|
645 |
$subscr_cid = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_cid'];
|
646 |
-
$cv = preg_split('/\|/', $custom);
|
647 |
|
648 |
if(!($auto_eot_time = '') && $eotper) // If a specific EOT Period is included.
|
649 |
$auto_eot_time = c_ws_plugin__s2member_utils_time::auto_eot_time('', '', '', $eotper);
|
@@ -820,7 +819,6 @@ if(!class_exists('c_ws_plugin__s2member_registrations'))
|
|
820 |
$subscr_baid = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_baid'];
|
821 |
$subscr_cid = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_cid'];
|
822 |
$subscr_gateway = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway'];
|
823 |
-
$cv = preg_split('/\|/', (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_custom']);
|
824 |
|
825 |
$auto_eot_time = ($eot = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_auto_eot_time']) ? strtotime($eot) : '';
|
826 |
$notes = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_notes'];
|
@@ -970,7 +968,6 @@ if(!class_exists('c_ws_plugin__s2member_registrations'))
|
|
970 |
$subscr_baid = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_baid'];
|
971 |
$subscr_cid = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_cid'];
|
972 |
$subscr_gateway = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway'];
|
973 |
-
$cv = preg_split('/\|/', (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_custom']);
|
974 |
|
975 |
$auto_eot_time = ($eot = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_auto_eot_time']) ? strtotime($eot) : '';
|
976 |
$notes = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_notes'];
|
@@ -1100,7 +1097,7 @@ if(!class_exists('c_ws_plugin__s2member_registrations'))
|
|
1100 |
|
1101 |
foreach(preg_split('/['."\r\n\t".']+/', $urls) as $url) // Notify each of the URLs.
|
1102 |
|
1103 |
-
if(($url =
|
1104 |
if(($url = preg_replace('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($role)), $url)))
|
1105 |
if(($url = preg_replace('/%%level%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($level)), $url)))
|
1106 |
if(($url = preg_replace('/%%ccaps%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($ccaps)), $url)))
|
@@ -1158,7 +1155,7 @@ if(!class_exists('c_ws_plugin__s2member_registrations'))
|
|
1158 |
$msg .= 'cv8: %%cv8%%'."\n";
|
1159 |
$msg .= 'cv9: %%cv9%%';
|
1160 |
|
1161 |
-
if(($msg =
|
1162 |
if(($msg = preg_replace('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($role), $msg)))
|
1163 |
if(($msg = preg_replace('/%%level%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($level), $msg)))
|
1164 |
if(($msg = preg_replace('/%%ccaps%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($ccaps), $msg)))
|
@@ -1189,7 +1186,7 @@ if(!class_exists('c_ws_plugin__s2member_registrations'))
|
|
1189 |
|
1190 |
if(!empty($GLOBALS['ws_plugin__s2member_registration_return_url']) && ($url = $GLOBALS['ws_plugin__s2member_registration_return_url']))
|
1191 |
|
1192 |
-
if(($url =
|
1193 |
if(($url = preg_replace('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($role)), $url)))
|
1194 |
if(($url = preg_replace('/%%level%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($level)), $url)))
|
1195 |
if(($url = preg_replace('/%%ccaps%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($ccaps)), $url)))
|
3 |
* Registration handlers.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
643 |
$ip = (!$ip) ? $_SERVER['REMOTE_ADDR'] : $ip; // Else use environment variable.
|
644 |
$subscr_baid = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_baid'];
|
645 |
$subscr_cid = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_cid'];
|
|
|
646 |
|
647 |
if(!($auto_eot_time = '') && $eotper) // If a specific EOT Period is included.
|
648 |
$auto_eot_time = c_ws_plugin__s2member_utils_time::auto_eot_time('', '', '', $eotper);
|
819 |
$subscr_baid = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_baid'];
|
820 |
$subscr_cid = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_cid'];
|
821 |
$subscr_gateway = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway'];
|
|
|
822 |
|
823 |
$auto_eot_time = ($eot = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_auto_eot_time']) ? strtotime($eot) : '';
|
824 |
$notes = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_notes'];
|
968 |
$subscr_baid = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_baid'];
|
969 |
$subscr_cid = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_cid'];
|
970 |
$subscr_gateway = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway'];
|
|
|
971 |
|
972 |
$auto_eot_time = ($eot = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_auto_eot_time']) ? strtotime($eot) : '';
|
973 |
$notes = (string)@$_pmr['ws_plugin__s2member_custom_reg_field_s2member_notes'];
|
1097 |
|
1098 |
foreach(preg_split('/['."\r\n\t".']+/', $urls) as $url) // Notify each of the URLs.
|
1099 |
|
1100 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $custom, true)))
|
1101 |
if(($url = preg_replace('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($role)), $url)))
|
1102 |
if(($url = preg_replace('/%%level%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($level)), $url)))
|
1103 |
if(($url = preg_replace('/%%ccaps%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($ccaps)), $url)))
|
1155 |
$msg .= 'cv8: %%cv8%%'."\n";
|
1156 |
$msg .= 'cv9: %%cv9%%';
|
1157 |
|
1158 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $custom)))
|
1159 |
if(($msg = preg_replace('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($role), $msg)))
|
1160 |
if(($msg = preg_replace('/%%level%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($level), $msg)))
|
1161 |
if(($msg = preg_replace('/%%ccaps%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($ccaps), $msg)))
|
1186 |
|
1187 |
if(!empty($GLOBALS['ws_plugin__s2member_registration_return_url']) && ($url = $GLOBALS['ws_plugin__s2member_registration_return_url']))
|
1188 |
|
1189 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $custom, true)))
|
1190 |
if(($url = preg_replace('/%%role%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($role)), $url)))
|
1191 |
if(($url = preg_replace('/%%level%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($level)), $url)))
|
1192 |
if(($url = preg_replace('/%%ccaps%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($ccaps)), $url)))
|
includes/classes/return-templates.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's Return Page template handler.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's Return Page template handler.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/roles-caps.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Roles/Capabilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Roles/Capabilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/ruris-sp.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's URI protection routines *(for specific URIs)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's URI protection routines *(for specific URIs)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/ruris.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's URI protection routines *(for current URI)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's URI protection routines *(for current URI)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/s-badge-status-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Security Badge Status API (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Security Badge Status API (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/s-badge-status.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Security Badge Status API.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Security Badge Status API.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-eots-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2Eot /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode `[s2Eot /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-eots.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2Eot /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode `[s2Eot /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-files-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2File /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode `[s2File /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-files.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2File /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode `[s2File /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-gets-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2Get /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode `[s2Get /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-gets.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2Get /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode `[s2Get /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-if-conds-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2If /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode `[s2If /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-if-conds.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2If /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode `[s2If /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-keys-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2Key /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode `[s2Key /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-keys.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2Key /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode `[s2Key /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-paypal-button-e.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2Member-PayPal-Button]` (encryption sub-routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode `[s2Member-PayPal-Button]` (encryption sub-routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-paypal-button-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2Member-PayPal-Button]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -50,7 +50,7 @@ if (!class_exists ("c_ws_plugin__s2member_sc_paypal_button_in"))
|
|
50 |
|
51 |
$attr = /* Force array. Trim quote entities. */ c_ws_plugin__s2member_utils_strings::trim_qts_deep ((array)$attr);
|
52 |
|
53 |
-
$attr = shortcode_atts (apply_filters("ws_plugin__s2member_sc_paypal_button_default_attrs", array("ids" => "0", "exp" => "72", "level" => "1", "ccaps" => "", "desc" => "", "ps" => "paypal", "lc" => "", "lang" => "", "cc" => "USD", "dg" => "0", "ns" => "
|
54 |
|
55 |
$attr["modify"] = ($attr["modify"] === "1" && (!is_user_logged_in () || !get_user_option ("s2member_subscr_id")) && $attr["tp"]) ? "0" : $attr["modify"];
|
56 |
|
3 |
* Shortcode `[s2Member-PayPal-Button]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
50 |
|
51 |
$attr = /* Force array. Trim quote entities. */ c_ws_plugin__s2member_utils_strings::trim_qts_deep ((array)$attr);
|
52 |
|
53 |
+
$attr = shortcode_atts (apply_filters("ws_plugin__s2member_sc_paypal_button_default_attrs", array("ids" => "0", "exp" => "72", "level" => "1", "ccaps" => "", "desc" => "", "ps" => "paypal", "lc" => "", "lang" => "", "cc" => "USD", "dg" => "0", "ns" => "0", "custom" => $_SERVER["HTTP_HOST"], "ta" => "0", "tp" => "0", "tt" => "D", "ra" => "0.01", "rp" => "1", "rt" => "M", "rr" => "1", "rrt" => "", "rra" => "1", "modify" => "0", "cancel" => "0", "sp" => "0", "image" => "default", "output" => "button"), get_defined_vars ()), $attr);
|
54 |
|
55 |
$attr["modify"] = ($attr["modify"] === "1" && (!is_user_logged_in () || !get_user_option ("s2member_subscr_id")) && $attr["tp"]) ? "0" : $attr["modify"];
|
56 |
|
includes/classes/sc-paypal-button.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode `[s2Member-PayPal-Button]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode `[s2Member-PayPal-Button]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-profile-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode for `[s2Member-Profile /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode for `[s2Member-Profile /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-profile.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode for `[s2Member-Profile /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode for `[s2Member-Profile /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-s-badge-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode for `[s2Member-Security-Badge /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode for `[s2Member-Security-Badge /]` (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sc-s-badge.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcode for `[s2Member-Security-Badge /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcode for `[s2Member-Security-Badge /]`.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/security.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member's Security Gate.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member's Security Gate.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/sp-access.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Specific Post/Page Access routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Specific Post/Page Access routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/ssl-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* SSL routines (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* SSL routines (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/ssl.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* SSL routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* SSL routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/systematics-sp.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Systematics *(for a specific page)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Systematics *(for a specific page)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/systematics.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Systematics *(for current page)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Systematics *(for current page)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/tracking-codes.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Tracking Codes.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Tracking Codes.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/tracking-cookies-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Tracking Cookies (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Tracking Cookies (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/tracking-cookies.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Tracking Cookies.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Tracking Cookies.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/translations.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member translations.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* s2Member translations.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/user-access.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* User access routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* User access routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/user-deletions.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* User deletion routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -121,6 +121,7 @@ if(!class_exists('c_ws_plugin__s2member_user_deletions'))
|
|
121 |
delete_user_option($user_id, 's2member_sp_references');
|
122 |
|
123 |
delete_user_option($user_id, 's2member_last_status_scan');
|
|
|
124 |
delete_user_option($user_id, 's2member_first_payment_txn_id');
|
125 |
delete_user_option($user_id, 's2member_last_payment_time');
|
126 |
delete_user_option($user_id, 's2member_auto_eot_time');
|
@@ -132,11 +133,11 @@ if(!class_exists('c_ws_plugin__s2member_user_deletions'))
|
|
132 |
delete_user_option($user_id, 's2member_login_counter');
|
133 |
delete_user_option($user_id, 's2member_notes');
|
134 |
|
135 |
-
if(is_object($user = new WP_User ($user_id)) && $user->ID && $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_urls']
|
136 |
{
|
137 |
foreach(preg_split("/[\r\n\t]+/", $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_urls']) as $url) // Handle EOT Notifications on user deletion.
|
138 |
|
139 |
-
if(($url =
|
140 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($subscr_baid)), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($subscr_cid)), $url)))
|
141 |
if(($url = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->first_name)), $url)) && ($url = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->last_name)), $url)))
|
142 |
if(($url = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(trim($user->first_name.' '.$user->last_name))), $url)))
|
@@ -154,7 +155,7 @@ if(!class_exists('c_ws_plugin__s2member_user_deletions'))
|
|
154 |
c_ws_plugin__s2member_utils_urls::remote($url);
|
155 |
}
|
156 |
}
|
157 |
-
if(is_object($user = new WP_User ($user_id)) && $user->ID && $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_recipients']
|
158 |
{
|
159 |
$email_configs_were_on = c_ws_plugin__s2member_email_configs::email_config_status();
|
160 |
c_ws_plugin__s2member_email_configs::email_config_release();
|
@@ -189,7 +190,7 @@ if(!class_exists('c_ws_plugin__s2member_user_deletions'))
|
|
189 |
$msg .= 'cv8: %%cv8%%'."\n";
|
190 |
$msg .= 'cv9: %%cv9%%';
|
191 |
|
192 |
-
if(($msg =
|
193 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($subscr_baid), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($subscr_cid), $msg)))
|
194 |
if(($msg = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->first_name), $msg)) && ($msg = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->last_name), $msg)))
|
195 |
if(($msg = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($user->first_name.' '.$user->last_name)), $msg)))
|
3 |
* User deletion routines.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
121 |
delete_user_option($user_id, 's2member_sp_references');
|
122 |
|
123 |
delete_user_option($user_id, 's2member_last_status_scan');
|
124 |
+
delete_user_option($user_id, 's2member_last_reminder_scan');
|
125 |
delete_user_option($user_id, 's2member_first_payment_txn_id');
|
126 |
delete_user_option($user_id, 's2member_last_payment_time');
|
127 |
delete_user_option($user_id, 's2member_auto_eot_time');
|
133 |
delete_user_option($user_id, 's2member_login_counter');
|
134 |
delete_user_option($user_id, 's2member_notes');
|
135 |
|
136 |
+
if(is_object($user = new WP_User ($user_id)) && $user->ID && $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_urls'])
|
137 |
{
|
138 |
foreach(preg_split("/[\r\n\t]+/", $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_urls']) as $url) // Handle EOT Notifications on user deletion.
|
139 |
|
140 |
+
if(($url = c_ws_plugin__s2member_utils_strings::fill_cvs($url, $custom, true)) && ($url = preg_replace('/%%eot_del_type%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($eot_del_type)), $url)) && ($url = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($subscr_id)), $url)))
|
141 |
if(($url = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($subscr_baid)), $url)) && ($url = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($subscr_cid)), $url)))
|
142 |
if(($url = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->first_name)), $url)) && ($url = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode($user->last_name)), $url)))
|
143 |
if(($url = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(urlencode(trim($user->first_name.' '.$user->last_name))), $url)))
|
155 |
c_ws_plugin__s2member_utils_urls::remote($url);
|
156 |
}
|
157 |
}
|
158 |
+
if(is_object($user = new WP_User ($user_id)) && $user->ID && $GLOBALS['WS_PLUGIN__']['s2member']['o']['eot_del_notification_recipients'])
|
159 |
{
|
160 |
$email_configs_were_on = c_ws_plugin__s2member_email_configs::email_config_status();
|
161 |
c_ws_plugin__s2member_email_configs::email_config_release();
|
190 |
$msg .= 'cv8: %%cv8%%'."\n";
|
191 |
$msg .= 'cv9: %%cv9%%';
|
192 |
|
193 |
+
if(($msg = c_ws_plugin__s2member_utils_strings::fill_cvs($msg, $custom)) && ($msg = preg_replace('/%%eot_del_type%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($eot_del_type), $msg)) && ($msg = preg_replace('/%%subscr_id%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($subscr_id), $msg)))
|
194 |
if(($msg = preg_replace('/%%subscr_baid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($subscr_baid), $msg)) && ($msg = preg_replace('/%%subscr_cid%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($subscr_cid), $msg)))
|
195 |
if(($msg = preg_replace('/%%user_first_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->first_name), $msg)) && ($msg = preg_replace('/%%user_last_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($user->last_name), $msg)))
|
196 |
if(($msg = preg_replace('/%%user_full_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(trim($user->first_name.' '.$user->last_name)), $msg)))
|
includes/classes/user-new-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* New User handlers (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* New User handlers (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/user-new.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* New User handlers.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* New User handlers.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/user-notes.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Administrative notes.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Administrative notes.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/user-securities.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* User securities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* User securities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/users-list-in.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Users list (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Users list (inner processing routines).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/users-list.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Users list.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Users list.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utilities.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* General utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* General utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utils-arrays.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Array utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Array utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utils-captchas.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Captcha utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Captcha utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utils-conds.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Conditional utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Conditional utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utils-css.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* CSS utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* CSS utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utils-cur.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Currency utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Currency utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utils-dirs.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Directory utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Directory utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utils-encryption.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Encryption utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Encryption utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utils-forms.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Form utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Form utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utils-gets.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Get utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Get utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utils-html.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* HTML utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* HTML utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utils-logs.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Log utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -63,16 +63,18 @@ if(!class_exists('c_ws_plugin__s2member_utils_logs'))
|
|
63 |
$log4 .= @$_SERVER['HTTP_HOST'].@$_SERVER['REQUEST_URI']."\n";
|
64 |
$log4 .= 'User-Agent: '.@$_SERVER['HTTP_USER_AGENT'];
|
65 |
|
66 |
-
$log2 = $slug.'
|
67 |
if(is_multisite() && !is_main_site()) // Child blog in a multisite network?
|
68 |
-
$log2 = $slug.'-
|
69 |
|
70 |
c_ws_plugin__s2member_utils_logs::archive_oversize_log_files();
|
71 |
|
72 |
-
file_put_contents(
|
73 |
-
|
74 |
-
|
75 |
-
|
|
|
|
|
76 |
}
|
77 |
|
78 |
/**
|
@@ -186,8 +188,7 @@ if(!class_exists('c_ws_plugin__s2member_utils_logs'))
|
|
186 |
*/
|
187 |
public static function cleanup_expired_s2m_transients($stagger = TRUE)
|
188 |
{
|
189 |
-
global $wpdb;
|
190 |
-
/** @var wpdb $wpdb */
|
191 |
|
192 |
if($stagger && !is_float($stagger = time() / 2))
|
193 |
return TRUE; // Bypass this time.
|
@@ -245,6 +246,9 @@ if(!class_exists('c_ws_plugin__s2member_utils_logs'))
|
|
245 |
|
246 |
'/s2\-http\-api\-debug/' => array('short' => 'All outgoing HTTP connections related to s2Member.', 'long' => 'This log file records all outgoing WP_Http connections that are specifically related to s2Member. This log file can be extremely helpful. It includes technical details about remote HTTP connections that are not available in other log files.'),
|
247 |
'/wp\-http\-api\-debug/' => array('short' => 'All outgoing WordPress HTTP connections.', 'long' => 'This log file records all outgoing HTTP connections processed by the WP_Http class. This includes everything processed by WordPress; even things unrelated to s2Member. This log file can be extremely helpful. It includes technical details about remote HTTP connections that are not available in other log files.'),
|
|
|
|
|
|
|
248 |
);
|
249 |
}
|
250 |
-
}
|
3 |
* Log utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
63 |
$log4 .= @$_SERVER['HTTP_HOST'].@$_SERVER['REQUEST_URI']."\n";
|
64 |
$log4 .= 'User-Agent: '.@$_SERVER['HTTP_USER_AGENT'];
|
65 |
|
66 |
+
$log2 = $slug.'.log'; // Initialize.
|
67 |
if(is_multisite() && !is_main_site()) // Child blog in a multisite network?
|
68 |
+
$log2 = $slug.'-4-'.trim(preg_replace('/[^a-z0-9]/i', '-', $GLOBALS['current_blog']->domain.$GLOBALS['current_blog']->path), '-').'.log';
|
69 |
|
70 |
c_ws_plugin__s2member_utils_logs::archive_oversize_log_files();
|
71 |
|
72 |
+
file_put_contents(
|
73 |
+
$logs_dir.'/'.$log2,
|
74 |
+
'LOG ENTRY: '.$logt."\n".$logv."\n".$logm."\n".$log4."\n".
|
75 |
+
c_ws_plugin__s2member_utils_logs::conceal_private_info(print_r($data, TRUE))."\n\n",
|
76 |
+
FILE_APPEND // Append to an existing log file; if exists.
|
77 |
+
);
|
78 |
}
|
79 |
|
80 |
/**
|
188 |
*/
|
189 |
public static function cleanup_expired_s2m_transients($stagger = TRUE)
|
190 |
{
|
191 |
+
global $wpdb; /** @var wpdb $wpdb */
|
|
|
192 |
|
193 |
if($stagger && !is_float($stagger = time() / 2))
|
194 |
return TRUE; // Bypass this time.
|
246 |
|
247 |
'/s2\-http\-api\-debug/' => array('short' => 'All outgoing HTTP connections related to s2Member.', 'long' => 'This log file records all outgoing WP_Http connections that are specifically related to s2Member. This log file can be extremely helpful. It includes technical details about remote HTTP connections that are not available in other log files.'),
|
248 |
'/wp\-http\-api\-debug/' => array('short' => 'All outgoing WordPress HTTP connections.', 'long' => 'This log file records all outgoing HTTP connections processed by the WP_Http class. This includes everything processed by WordPress; even things unrelated to s2Member. This log file can be extremely helpful. It includes technical details about remote HTTP connections that are not available in other log files.'),
|
249 |
+
|
250 |
+
'/auto\-eot\-system/' => array('short' => 'EOTs processed via CRON job.', 'long' => 'This log file records all EOTs processed by the WP_Cron job that powers the s2Member Auto-EOT System. Once a customer has an EOT Time, the CRON job comes in and actually handles a demotion or deletion (based on your configuration). That is what this log file shows; i.e., the actual demotion or deletion taking place.'),
|
251 |
+
'/eot\-reminders/' => array('short' => 'EOT reminder emails processed via CRON job.', 'long' => 'This log file records all EOT reminder emails processed by the WP_Cron job that powers the s2Member Auto-EOT System. EOT Renewal/Reminder Email notifications are available only in the pro version of s2Member.'),
|
252 |
);
|
253 |
}
|
254 |
+
}
|
includes/classes/utils-s2o.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* s2Member-only utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -40,7 +40,7 @@ if(!class_exists('c_ws_plugin__s2member_utils_s2o'))
|
|
40 |
if(!empty($_SERVER['WP_DIR']))
|
41 |
return (string)$_SERVER['WP_DIR'];
|
42 |
|
43 |
-
foreach(array($starting_dir, $alt_starting_dir) as $_directory)
|
44 |
if($_directory && is_string($_directory) && is_dir($_directory))
|
45 |
for($_i = 0, $_dir = $_directory; $_i <= 20; $_i++, $_dir = dirname($_dir))
|
46 |
if(file_exists($_dir.'/wp-settings.php'))
|
@@ -48,6 +48,7 @@ if(!class_exists('c_ws_plugin__s2member_utils_s2o'))
|
|
48 |
|
49 |
header('HTTP/1.0 500 Error');
|
50 |
header('Content-Type: text/plain; charset=UTF-8');
|
|
|
51 |
while(@ob_end_clean()) ; // Clean any existing output buffers.
|
52 |
exit ('ERROR: s2Member unable to locate WordPress directory.');
|
53 |
}
|
@@ -139,4 +140,4 @@ if(!class_exists('c_ws_plugin__s2member_utils_s2o'))
|
|
139 |
return ob_get_clean();
|
140 |
}
|
141 |
}
|
142 |
-
}
|
3 |
* s2Member-only utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
40 |
if(!empty($_SERVER['WP_DIR']))
|
41 |
return (string)$_SERVER['WP_DIR'];
|
42 |
|
43 |
+
foreach(array($starting_dir, $alt_starting_dir, $_SERVER['DOCUMENT_ROOT']) as $_directory)
|
44 |
if($_directory && is_string($_directory) && is_dir($_directory))
|
45 |
for($_i = 0, $_dir = $_directory; $_i <= 20; $_i++, $_dir = dirname($_dir))
|
46 |
if(file_exists($_dir.'/wp-settings.php'))
|
48 |
|
49 |
header('HTTP/1.0 500 Error');
|
50 |
header('Content-Type: text/plain; charset=UTF-8');
|
51 |
+
|
52 |
while(@ob_end_clean()) ; // Clean any existing output buffers.
|
53 |
exit ('ERROR: s2Member unable to locate WordPress directory.');
|
54 |
}
|
140 |
return ob_get_clean();
|
141 |
}
|
142 |
}
|
143 |
+
}
|
includes/classes/utils-strings.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* String utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -660,5 +660,17 @@ if(!class_exists('c_ws_plugin__s2member_utils_strings'))
|
|
660 |
|
661 |
return like_escape($string); // Deprecated in WP v4.0.
|
662 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
663 |
}
|
664 |
-
}
|
3 |
* String utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
660 |
|
661 |
return like_escape($string); // Deprecated in WP v4.0.
|
662 |
}
|
663 |
+
|
664 |
+
public static function fill_cvs($string, $custom, $urlencode = false)
|
665 |
+
{
|
666 |
+
$string = (string)$string;
|
667 |
+
$custom = (string)$custom;
|
668 |
+
|
669 |
+
foreach (preg_split('/\|/', $custom) as $_key => $_value) {
|
670 |
+
$string = str_ireplace('%%cv'.$_key.'%%', $urlencode ? urlencode(trim($_value)) : trim($_value), $string);
|
671 |
+
} // unset($_key, $_value); // Housekeeping.
|
672 |
+
|
673 |
+
return $string;
|
674 |
+
}
|
675 |
}
|
676 |
+
}
|
includes/classes/utils-time.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Time utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -32,69 +32,100 @@ if(!class_exists('c_ws_plugin__s2member_utils_time'))
|
|
32 |
*
|
33 |
* Returns the difference in a human readable format.
|
34 |
* Supports: minutes, hours, days, weeks, months, and years. This is an improvement on WordPress ``human_time_diff()``.
|
35 |
-
* This returns an "approximate" time difference. Rounded to
|
36 |
*
|
37 |
* @package s2Member\Utilities
|
38 |
* @since 3.5
|
39 |
*
|
40 |
* @param int $from Beginning timestamp to start from.
|
41 |
* @param int $to Ending timestamp to stop at.
|
|
|
42 |
*
|
43 |
* @return string Human readable difference between ``$from`` and ``$to``.
|
44 |
*/
|
45 |
-
public static function approx_time_difference($from = 0, $to = 0)
|
46 |
{
|
47 |
-
$from =
|
48 |
-
$to =
|
49 |
$since = ''; // Initialize.
|
50 |
|
51 |
if(($difference = abs($to - $from)) < 3600)
|
52 |
{
|
53 |
-
$
|
54 |
-
|
|
|
|
|
|
|
|
|
|
|
55 |
$since = ($m < 1) ? _x('less than a minute', 's2member-front', 's2member') : $since;
|
56 |
-
$since = ($m === 1) ? _x('1 minute', 's2member-front', 's2member') : $since;
|
57 |
-
$since = ($m > 1) ? sprintf(_nx('%s minute', '%s minutes', $m, 's2member-front', 's2member'), $m) : $since;
|
58 |
$since = ($m >= 60) ? _x('about 1 hour', 's2member-front', 's2member') : $since;
|
59 |
}
|
60 |
else if($difference >= 3600 && $difference < 86400)
|
61 |
{
|
62 |
-
$
|
63 |
-
|
64 |
-
|
65 |
-
|
|
|
|
|
|
|
|
|
|
|
66 |
$since = ($h >= 24) ? _x('about 1 day', 's2member-front', 's2member') : $since;
|
67 |
}
|
68 |
else if($difference >= 86400 && $difference < 604800)
|
69 |
{
|
70 |
-
$
|
71 |
-
|
72 |
-
|
73 |
-
|
|
|
|
|
|
|
|
|
|
|
74 |
$since = ($d >= 7) ? _x('about 1 week', 's2member-front', 's2member') : $since;
|
75 |
}
|
76 |
else if($difference >= 604800 && $difference < 2592000)
|
77 |
{
|
78 |
-
$
|
79 |
-
|
80 |
-
|
81 |
-
|
|
|
|
|
|
|
|
|
|
|
82 |
$since = ($w >= 4) ? _x('about 1 month', 's2member-front', 's2member') : $since;
|
83 |
}
|
84 |
else if($difference >= 2592000 && $difference < 31556926)
|
85 |
{
|
86 |
-
$
|
87 |
-
|
88 |
-
|
89 |
-
|
|
|
|
|
|
|
|
|
|
|
90 |
$since = ($m >= 12) ? _x('about 1 year', 's2member-front', 's2member') : $since;
|
91 |
}
|
92 |
else if($difference >= 31556926) // Years.
|
93 |
{
|
94 |
-
$
|
95 |
-
|
96 |
-
|
97 |
-
|
|
|
|
|
|
|
|
|
|
|
98 |
}
|
99 |
return $since;
|
100 |
}
|
3 |
* Time utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
32 |
*
|
33 |
* Returns the difference in a human readable format.
|
34 |
* Supports: minutes, hours, days, weeks, months, and years. This is an improvement on WordPress ``human_time_diff()``.
|
35 |
+
* This returns an "approximate" time difference. Rounded to nearest minute, hour, day, week, month, year.
|
36 |
*
|
37 |
* @package s2Member\Utilities
|
38 |
* @since 3.5
|
39 |
*
|
40 |
* @param int $from Beginning timestamp to start from.
|
41 |
* @param int $to Ending timestamp to stop at.
|
42 |
+
* @param string $round_via Rounding type.
|
43 |
*
|
44 |
* @return string Human readable difference between ``$from`` and ``$to``.
|
45 |
*/
|
46 |
+
public static function approx_time_difference($from = 0, $to = 0, $round_via = 'round')
|
47 |
{
|
48 |
+
$from = !$from ? time() : (int)$from;
|
49 |
+
$to = !$to ? time() : (int)$to;
|
50 |
$since = ''; // Initialize.
|
51 |
|
52 |
if(($difference = abs($to - $from)) < 3600)
|
53 |
{
|
54 |
+
if($round_via === 'floor') {
|
55 |
+
$m = (int)floor($difference / 60);
|
56 |
+
} elseif ($round_via === 'ceil') {
|
57 |
+
$m = (int)ceil($difference / 60);
|
58 |
+
} else {
|
59 |
+
$m = (int)round($difference / 60);
|
60 |
+
}
|
61 |
$since = ($m < 1) ? _x('less than a minute', 's2member-front', 's2member') : $since;
|
62 |
+
$since = ($m === 1) ? _x('about 1 minute', 's2member-front', 's2member') : $since;
|
63 |
+
$since = ($m > 1) ? sprintf(_nx('about %s minute', 'about %s minutes', $m, 's2member-front', 's2member'), $m) : $since;
|
64 |
$since = ($m >= 60) ? _x('about 1 hour', 's2member-front', 's2member') : $since;
|
65 |
}
|
66 |
else if($difference >= 3600 && $difference < 86400)
|
67 |
{
|
68 |
+
if($round_via === 'floor') {
|
69 |
+
$h = (int)floor($difference / 3600);
|
70 |
+
} elseif ($round_via === 'ceil') {
|
71 |
+
$h = (int)ceil($difference / 3600);
|
72 |
+
} else {
|
73 |
+
$h = (int)round($difference / 3600);
|
74 |
+
}
|
75 |
+
$since = ($h === 1) ? _x('about 1 hour', 's2member-front', 's2member') : $since;
|
76 |
+
$since = ($h > 1) ? sprintf(_nx('about %s hour', 'about %s hours', $h, 's2member-front', 's2member'), $h) : $since;
|
77 |
$since = ($h >= 24) ? _x('about 1 day', 's2member-front', 's2member') : $since;
|
78 |
}
|
79 |
else if($difference >= 86400 && $difference < 604800)
|
80 |
{
|
81 |
+
if($round_via === 'floor') {
|
82 |
+
$d = (int)floor($difference / 86400);
|
83 |
+
} elseif ($round_via === 'ceil') {
|
84 |
+
$d = (int)ceil($difference / 86400);
|
85 |
+
} else {
|
86 |
+
$d = (int)round($difference / 86400);
|
87 |
+
}
|
88 |
+
$since = ($d === 1) ? _x('about 1 day', 's2member-front', 's2member') : $since;
|
89 |
+
$since = ($d > 1) ? sprintf(_nx('about %s day', 'about %s days', $d, 's2member-front', 's2member'), $d) : $since;
|
90 |
$since = ($d >= 7) ? _x('about 1 week', 's2member-front', 's2member') : $since;
|
91 |
}
|
92 |
else if($difference >= 604800 && $difference < 2592000)
|
93 |
{
|
94 |
+
if($round_via === 'floor') {
|
95 |
+
$w = (int)floor($difference / 604800);
|
96 |
+
} elseif ($round_via === 'ceil') {
|
97 |
+
$w = (int)ceil($difference / 604800);
|
98 |
+
} else {
|
99 |
+
$w = (int)round($difference / 604800);
|
100 |
+
}
|
101 |
+
$since = ($w === 1) ? _x('about 1 week', 's2member-front', 's2member') : $since;
|
102 |
+
$since = ($w > 1) ? sprintf(_nx('about %s week', 'about %s weeks', $w, 's2member-front', 's2member'), $w) : $since;
|
103 |
$since = ($w >= 4) ? _x('about 1 month', 's2member-front', 's2member') : $since;
|
104 |
}
|
105 |
else if($difference >= 2592000 && $difference < 31556926)
|
106 |
{
|
107 |
+
if($round_via === 'floor') {
|
108 |
+
$m = (int)floor($difference / 2592000);
|
109 |
+
} elseif ($round_via === 'ceil') {
|
110 |
+
$m = (int)ceil($difference / 2592000);
|
111 |
+
} else {
|
112 |
+
$m = (int)round($difference / 2592000);
|
113 |
+
}
|
114 |
+
$since = ($m === 1) ? _x('about 1 month', 's2member-front', 's2member') : $since;
|
115 |
+
$since = ($m > 1) ? sprintf(_nx('about %s month', 'about %s months', $m, 's2member-front', 's2member'), $m) : $since;
|
116 |
$since = ($m >= 12) ? _x('about 1 year', 's2member-front', 's2member') : $since;
|
117 |
}
|
118 |
else if($difference >= 31556926) // Years.
|
119 |
{
|
120 |
+
if($round_via === 'floor') {
|
121 |
+
$y = (int)floor($difference / 31556926);
|
122 |
+
} elseif ($round_via === 'ceil') {
|
123 |
+
$y = (int)ceil($difference / 31556926);
|
124 |
+
} else {
|
125 |
+
$y = (int)round($difference / 31556926);
|
126 |
+
}
|
127 |
+
$since = ($y === 1) ? _x('about 1 year', 's2member-front', 's2member') : $since;
|
128 |
+
$since = ($y > 1) ? sprintf(_nx('about %s year', 'about %s years', $y, 's2member-front', 's2member'), $y) : $since;
|
129 |
}
|
130 |
return $since;
|
131 |
}
|
includes/classes/utils-urls.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* URL utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* URL utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/utils-users.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* User utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* User utilities.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/classes/wp-footer.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* WordPress footer code.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* WordPress footer code.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/codes.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shortcodes for the s2Member plugin.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Shortcodes for the s2Member plugin.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/externals/mailchimp/Mailchimp-o.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* Copyright {@link http://www.mailchimp.com/ MailChimp}.
|
6 |
*
|
7 |
-
* Modified by {@link http://
|
8 |
* Uses a custom class name to avoid conflicts with other instances.
|
9 |
*
|
10 |
* This version has also been modified to use:
|
4 |
*
|
5 |
* Copyright {@link http://www.mailchimp.com/ MailChimp}.
|
6 |
*
|
7 |
+
* Modified by {@link http://websharks-inc.com/ WebSharks, Inc.}.
|
8 |
* Uses a custom class name to avoid conflicts with other instances.
|
9 |
*
|
10 |
* This version has also been modified to use:
|
includes/externals/markdown/nc-markdown.inc.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Copyright {@link http://www.michelf.com/projects/php-markdown/ Michel Fortin}.
|
6 |
* Original Markdown. Copyright {@link http://daringfireball.net/projects/markdown/ John Gruber}.
|
7 |
*
|
8 |
-
* Modified by {@link http://
|
9 |
* Excludes WordPress and all other interfaces.
|
10 |
* Uses a custom class name and interface.
|
11 |
*
|
@@ -64,7 +64,7 @@ class NC_Markdown_Parser {
|
|
64 |
var $predef_titles = array();
|
65 |
|
66 |
|
67 |
-
function
|
68 |
#
|
69 |
# Constructor function. Initialize appropriate member variables.
|
70 |
#
|
5 |
* Copyright {@link http://www.michelf.com/projects/php-markdown/ Michel Fortin}.
|
6 |
* Original Markdown. Copyright {@link http://daringfireball.net/projects/markdown/ John Gruber}.
|
7 |
*
|
8 |
+
* Modified by {@link http://websharks-inc.com/ WebSharks, Inc.}.
|
9 |
* Excludes WordPress and all other interfaces.
|
10 |
* Uses a custom class name and interface.
|
11 |
*
|
64 |
var $predef_titles = array();
|
65 |
|
66 |
|
67 |
+
function __construct() {
|
68 |
#
|
69 |
# Constructor function. Initialize appropriate member variables.
|
70 |
#
|
includes/funcs.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Loads functions created by the s2Member plugin.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Loads functions created by the s2Member plugin.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/functions/api-functions.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Core API Functions *(for site owners)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Core API Functions *(for site owners)*.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/functions/class-autoloader.inc.php
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
* See: {@link http://www.php.net/manual/en/function.spl-autoload-register.php}
|
8 |
*
|
9 |
* Copyright: © 2009-2011
|
10 |
-
* {@link http://
|
11 |
* (coded in the USA)
|
12 |
*
|
13 |
* Released under the terms of the GNU General Public License.
|
7 |
* See: {@link http://www.php.net/manual/en/function.spl-autoload-register.php}
|
8 |
*
|
9 |
* Copyright: © 2009-2011
|
10 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
11 |
* (coded in the USA)
|
12 |
*
|
13 |
* Released under the terms of the GNU General Public License.
|
includes/functions/deprecated.inc.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* See: {@link https://en.wikipedia.org/wiki/Deprecation}
|
6 |
*
|
7 |
* Copyright: © 2009-2011
|
8 |
-
* {@link http://
|
9 |
* (coded in the USA)
|
10 |
*
|
11 |
* Released under the terms of the GNU General Public License.
|
5 |
* See: {@link https://en.wikipedia.org/wiki/Deprecation}
|
6 |
*
|
7 |
* Copyright: © 2009-2011
|
8 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
9 |
* (coded in the USA)
|
10 |
*
|
11 |
* Released under the terms of the GNU General Public License.
|
includes/functions/pluggables.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Pluggable functions within WordPress.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Pluggable functions within WordPress.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/hooks.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Primary Hooks/Filters used by the s2Member plugin.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -98,6 +98,7 @@ add_filter('random_password', 'c_ws_plugin__s2member_registrations::generate_pas
|
|
98 |
add_action('user_register', 'c_ws_plugin__s2member_registrations::configure_user_registration');
|
99 |
add_action('register_form', 'c_ws_plugin__s2member_custom_reg_fields::custom_registration_fields');
|
100 |
add_filter('registration_errors', 'c_ws_plugin__s2member_registrations::custom_registration_field_errors', 10, 3);
|
|
|
101 |
|
102 |
add_filter('add_signup_meta', 'c_ws_plugin__s2member_registrations::ms_process_signup_meta');
|
103 |
add_filter('bp_signup_usermeta', 'c_ws_plugin__s2member_registrations::ms_process_signup_meta');
|
3 |
* Primary Hooks/Filters used by the s2Member plugin.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
98 |
add_action('user_register', 'c_ws_plugin__s2member_registrations::configure_user_registration');
|
99 |
add_action('register_form', 'c_ws_plugin__s2member_custom_reg_fields::custom_registration_fields');
|
100 |
add_filter('registration_errors', 'c_ws_plugin__s2member_registrations::custom_registration_field_errors', 10, 3);
|
101 |
+
add_filter('send_password_change_email', '__return_false'); // Turn this off in favor of s2Member.
|
102 |
|
103 |
add_filter('add_signup_meta', 'c_ws_plugin__s2member_registrations::ms_process_signup_meta');
|
104 |
add_filter('bp_signup_usermeta', 'c_ws_plugin__s2member_registrations::ms_process_signup_meta');
|
includes/jquery/jquery.json-ps/jquery.json-ps.js
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
* Distributed with WordPress themes/plugins by WebSharks, Inc.
|
16 |
*
|
17 |
* Copyright: © 2009-2011
|
18 |
-
* {@link http://
|
19 |
* (coded in the USA)
|
20 |
*
|
21 |
* Released under the terms of the GNU General Public License.
|
15 |
* Distributed with WordPress themes/plugins by WebSharks, Inc.
|
16 |
*
|
17 |
* Copyright: © 2009-2011
|
18 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
19 |
* (coded in the USA)
|
20 |
*
|
21 |
* Released under the terms of the GNU General Public License.
|
includes/jquery/jquery.sprintf/jquery.sprintf.js
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
* Distributed with WordPress themes/plugins by WebSharks, Inc.
|
11 |
*
|
12 |
* Copyright: © 2009-2011
|
13 |
-
* {@link http://
|
14 |
* (coded in the USA)
|
15 |
*
|
16 |
* Released under the terms of the GNU General Public License.
|
10 |
* Distributed with WordPress themes/plugins by WebSharks, Inc.
|
11 |
*
|
12 |
* Copyright: © 2009-2011
|
13 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
14 |
* (coded in the USA)
|
15 |
*
|
16 |
* Released under the terms of the GNU General Public License.
|
includes/jquery/jquery.ui-effects/jquery.ui-effects.js
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
* Distributed with WordPress themes/plugins by WebSharks, Inc.
|
5 |
*
|
6 |
* Copyright: © 2009-2011
|
7 |
-
* {@link http://
|
8 |
* (coded in the USA)
|
9 |
*
|
10 |
* Released under the terms of the GNU General Public License.
|
4 |
* Distributed with WordPress themes/plugins by WebSharks, Inc.
|
5 |
*
|
6 |
* Copyright: © 2009-2011
|
7 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
8 |
* (coded in the USA)
|
9 |
*
|
10 |
* Released under the terms of the GNU General Public License.
|
includes/menu-pages/api-ops.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Menu page for the s2Member plugin (API Notifications page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Menu page for the s2Member plugin (API Notifications page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/menu-pages/down-ops.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Menu page for the s2Member plugin (File Download Options page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Menu page for the s2Member plugin (File Download Options page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/menu-pages/els-ops.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Menu page for the s2Member plugin (List Server Options page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Menu page for the s2Member plugin (List Server Options page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/menu-pages/gen-ops.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Menu page for the s2Member plugin (General Options page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -354,6 +354,8 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_gen_ops"))
|
|
354 |
|
355 |
echo '<h3 style="margin:0;">New User Email Message (<a href="#" onclick="jQuery(\'div#ws-plugin--s2member-new-user-email-details\').toggle(); return false;" class="ws-dotted-link">click to customize</a>)</h3>'."\n";
|
356 |
echo '<p style="margin:0;">This email is sent to new Users/Members who did <em>not</em> set a Custom Password during registration.</p>'."\n";
|
|
|
|
|
357 |
do_action("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_new_user_email", get_defined_vars());
|
358 |
|
359 |
echo '<div id="ws-plugin--s2member-new-user-email-details" style="display:none;">'."\n";
|
3 |
* Menu page for the s2Member plugin (General Options page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
354 |
|
355 |
echo '<h3 style="margin:0;">New User Email Message (<a href="#" onclick="jQuery(\'div#ws-plugin--s2member-new-user-email-details\').toggle(); return false;" class="ws-dotted-link">click to customize</a>)</h3>'."\n";
|
356 |
echo '<p style="margin:0;">This email is sent to new Users/Members who did <em>not</em> set a Custom Password during registration.</p>'."\n";
|
357 |
+
if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"])
|
358 |
+
echo '<p class="info" style="font-size:80%; margin:.5em 0 0 0;"><strong>↑ NOTE:</strong> You currently have Custom Passwords enabled in your s2Member Registration/Profile Field options. Therefore, this email is not going to be sent; i.e., it is only sent to users who need it for the purpose of obtaining their password.</p>'."\n";
|
359 |
do_action("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_new_user_email", get_defined_vars());
|
360 |
|
361 |
echo '<div id="ws-plugin--s2member-new-user-email-details" style="display:none;">'."\n";
|
includes/menu-pages/integrations.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Menu page for the s2Member plugin (Integrations page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Menu page for the s2Member plugin (Integrations page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/menu-pages/logs.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Menu page for the s2Member plugin (Logs page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -52,7 +52,7 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_logs"))
|
|
52 |
|
53 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-help">'."\n";
|
54 |
echo '<h3>Getting Help w/ s2Member (Troubleshooting)</h3>'."\n";
|
55 |
-
echo '<p>s2Member is pretty easy to setup and install initially. Most of the official documentation is right here in your Dashboard (i.e., there is a lot of inline documentation built into the software). That being said, it can take some time to master everything there is to know about s2Member\'s advanced features. If you need assistance with s2Member, please search the <a href="http://
|
56 |
echo '<p><strong>See also:</strong> <a href="http://www.s2member.com/kb/common-troubleshooting-tips/" target="_blank" rel="external">s2Member Troubleshooting Guide</a> (please read this first if you\'re having trouble).</p>'."\n";
|
57 |
|
58 |
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
@@ -67,9 +67,9 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_logs"))
|
|
67 |
|
68 |
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
69 |
|
70 |
-
echo '<h3 style="margin-bottom:0;">Search s2Member KB Articles
|
71 |
-
echo '<form method="get" action="http://
|
72 |
-
echo '<p><input type="text" name="
|
73 |
echo '</form>'."\n";
|
74 |
|
75 |
do_action("ws_plugin__s2member_during_logs_page_during_left_sections_during_help", get_defined_vars());
|
@@ -345,4 +345,4 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_logs"))
|
|
345 |
}
|
346 |
}
|
347 |
|
348 |
-
new c_ws_plugin__s2member_menu_page_logs();
|
3 |
* Menu page for the s2Member plugin (Logs page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
52 |
|
53 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-help">'."\n";
|
54 |
echo '<h3>Getting Help w/ s2Member (Troubleshooting)</h3>'."\n";
|
55 |
+
echo '<p>s2Member is pretty easy to setup and install initially. Most of the official documentation is right here in your Dashboard (i.e., there is a lot of inline documentation built into the software). That being said, it can take some time to master everything there is to know about s2Member\'s advanced features. If you need assistance with s2Member, please search the <a href="http://s2member.com/kb/" target="_blank" rel="external">s2Member Knowledge Base</a>, <a href="http://www.s2member.com/videos/" target="_blank" rel="external">Video Tutorials</a>, <a href="http://www.s2member.com/forums/" target="_blank" rel="external">Forums</a> and <a href="http://www.s2member.com/codex/" target="_blank" rel="external">Codex</a>. If you are planning to do something creative with s2Member, you might want to <a href="http://jobs.wordpress.net" target="_blank" rel="external">hire a freelance developer</a> to assist you.</p>'."\n";
|
56 |
echo '<p><strong>See also:</strong> <a href="http://www.s2member.com/kb/common-troubleshooting-tips/" target="_blank" rel="external">s2Member Troubleshooting Guide</a> (please read this first if you\'re having trouble).</p>'."\n";
|
57 |
|
58 |
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
67 |
|
68 |
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
69 |
|
70 |
+
echo '<h3 style="margin-bottom:0;">Search s2Member KB Articles<em>!</em></h3>'."\n";
|
71 |
+
echo '<form method="get" action="http://s2member.com/kb/" target="_blank" onsubmit="if(this.q.value === \'enter search terms...\') this.q.value = \'\';" autocomplete="off">'."\n";
|
72 |
+
echo '<p><input type="text" name="kb_q" value="enter search terms..." style="width:60%;" onfocus="if(this.value === \'enter search terms...\') this.value = \'\';" onblur="if(this.value === \'\') this.value = \'enter search terms...\';" /> <input type="submit" value="Search" style="font-size:120%; font-weight:normal;" /></p>'."\n";
|
73 |
echo '</form>'."\n";
|
74 |
|
75 |
do_action("ws_plugin__s2member_during_logs_page_during_left_sections_during_help", get_defined_vars());
|
345 |
}
|
346 |
}
|
347 |
|
348 |
+
new c_ws_plugin__s2member_menu_page_logs();
|
includes/menu-pages/menu-pages-s-min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function($){var esc_attr=esc_html=function(string){if(/[&\<\>"']/.test(string=String(string))){string=string.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),string=string.replace(/"/g,""").replace(/'/g,"'")}return string};ws_plugin__s2member_generateSecurityKey=function(obj){if(!obj){obj="#ws-plugin--s2member-sec-encryption-key"}var mt_rand=function(min,max){min=(arguments.length<1)?0:min;max=(arguments.length<2)?2147483647:max;return Math.floor(Math.random()*(max-min+1))+min};var chars="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#%^&*()";for(var i=0,key="";i<64;i++){key+=chars.substr(mt_rand(0,chars.length-1),1)}$(obj).val(key);return false};if(location.href.match(/page\=ws-plugin--s2member/)){$("input.ws-plugin--s2member-update-roles-button, input.ws-plugin--s2member-reset-roles-button").click(function(){var $this=$(this);$this.val("one moment please ...");var levels='<?php echo (int)$GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; ?>';var resetUpdate=($this.hasClass("ws-plugin--s2member-reset-roles-button"))?"Reset":"Update";$.post(ajaxurl,{action:"ws_plugin__s2member_update_roles_via_ajax",ws_plugin__s2member_update_roles_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-update-roles-via-ajax")); ?>'},function(response){if(response==="1"){alert("s2Member's Roles/Capabilities "+((resetUpdate.toLowerCase()==="reset")?"have been successfully reset":"updated successfully")+".\nYour installation of s2Member has Membership Levels 0-"+levels+"."),$this.val(resetUpdate+" Roles/Capabilities")}else{if(response==="l"){alert("Sorry, your request failed.\ns2Member's Roles/Capabilities are locked by Filter:\nws_plugin__s2member_lock_roles_caps"),$this.val(resetUpdate+" Roles/Capabilities")}else{alert("Sorry, your request failed.\nAccess denied. Do you have the ability to `create_users`?"),$this.val(resetUpdate+" Roles/Capabilities")}}});return false})}if(location.href.match(/page\=ws-plugin--s2member-logs/)){$("input#ws-plugin--s2member-gateway-debug-logs-extensive-1").click(function(){var $this=$(this),thisChecked=(this.checked)?true:false;if(thisChecked){$("input#ws-plugin--s2member-gateway-debug-logs-1").attr("checked","checked")}});var $toggles=$("a.ws-plugin--s2member-log-file-viewport-toggle");$toggles.click(function(){$("textarea#ws-plugin--s2member-log-file-viewer").each(function(){var $viewer=$(this);if($viewer.attr("data-state")!=="expanded"){$viewer.css({height:($viewer.prop("scrollHeight")+50)+"px","overflow-y":"auto"});$toggles.html("⇑ normalize viewport ❙");$viewer.attr("data-state","expanded")}else{$viewer.css({height:"auto","overflow-y":"scroll"});$toggles.html("⇓ expand viewport ⇓");$viewer.attr("data-state","scrolling")}});return false})}if(location.href.match(/page\=ws-plugin--s2member-mms-ops/)){$("select#ws-plugin--s2member-mms-registration-file").change(function(){if($(this).val()==="wp-signup"){var gv=$("select#ws-plugin--s2member-mms-registration-grants").val(),l0v=$("input#ws-plugin--s2member-mms-registration-blogs-level0").val();$("div#ws-plugin--s2member-mms-registration-support-package-details-wrapper").show(),$("div.ws-plugin--s2member-mms-registration-wp-login, table.ws-plugin--s2member-mms-registration-wp-login").hide(),$("div.ws-plugin--s2member-mms-registration-wp-signup, table.ws-plugin--s2member-mms-registration-wp-signup").show();$("div.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0, table.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0")[((gv==="all")?"show":"hide")]();$("input#ws-plugin--s2member-mms-registration-blogs-level0").val(((gv==="all")?((l0v>0)?l0v:"1"):"0"))}else{if($(this).val()==="wp-login"){var gv=$("select#ws-plugin--s2member-mms-registration-grants").val(),l0v=$("input#ws-plugin--s2member-mms-registration-blogs-level0").val();$("div#ws-plugin--s2member-mms-registration-support-package-details-wrapper").hide(),$("div.ws-plugin--s2member-mms-registration-wp-login, table.ws-plugin--s2member-mms-registration-wp-login").show(),$("div.ws-plugin--s2member-mms-registration-wp-signup, table.ws-plugin--s2member-mms-registration-wp-signup").hide();$("div.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0, table.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0").hide();$("input#ws-plugin--s2member-mms-registration-blogs-level0").val("0")}}}).trigger("change");$("select#ws-plugin--s2member-mms-registration-grants").change(function(){$("select#ws-plugin--s2member-mms-registration-file").trigger("change")})}if(location.href.match(/page\=ws-plugin--s2member-gen-ops/)){ws_plugin__s2member_enableSecurityKey=function(){if(confirm("Edit Key? Are you sure?\nThis could break your installation!\n\n*Note* If you've been testing s2Member, feel free to change this Key before you go live. Just don't go live, and then change it. You'll have unhappy Customers. Data corruption WILL occur! For your safety, s2Member keeps a history of the last 10 Keys that you've used. If you get yourself into a real situation, s2Member will let you revert back to a previous Key.")){$("input#ws-plugin--s2member-sec-encryption-key").removeAttr("disabled")}return false};ws_plugin__s2member_securityKeyHistory=function(){$("div#ws-plugin--s2member-sec-encryption-key-history").toggle();return false};$("select#ws-plugin--s2member-new-user-emails-enabled").change(function(){var $pluggable=$("input#ws-plugin--s2member-pluggables-wp-new-user-notification"),$this=$(this),$newUserEmails=$("div#ws-plugin--s2member-new-user-emails");if($pluggable.val()==="0"||$this.val()==="0"){($pluggable.val()==="0")?$this.attr("disabled","disabled"):$this.removeAttr("disabled");$(":input",$newUserEmails).attr("disabled","disabled"),$newUserEmails.css("opacity","0.5")}else{$this.removeAttr("disabled"),$(":input",$newUserEmails).removeAttr("disabled"),$newUserEmails.css("opacity","")}}).trigger("change");$("select#ws-plugin--s2member-login-reg-design-enabled").change(function(){var $this=$(this),$loginRegDesign=$("div#ws-plugin--s2member-login-reg-design");if($this.val()==="0"){$(":input",$loginRegDesign).attr("disabled","disabled"),$loginRegDesign.css("opacity","0.5"),$loginRegDesign.hide()}else{$(":input",$loginRegDesign).removeAttr("disabled"),$loginRegDesign.css("opacity",""),$loginRegDesign.show()}}).trigger("change");if($("input#ws-plugin--s2member-custom-reg-fields").length&&$("div#ws-plugin--s2member-custom-reg-field-configuration").length){(function(){var i,fieldDefaults,tools,table,$tools,$table;var $fields=$("input#ws-plugin--s2member-custom-reg-fields");var $configuration=$("div#ws-plugin--s2member-custom-reg-field-configuration");var fields=($fields.val())?$.JSON.parse($fields.val()):[];fields=(fields instanceof Array)?fields:[];fieldDefaults={section:"no",sectitle:"",id:"",label:"",type:"text",deflt:"",options:"",expected:"",required:"yes",levels:"all",editable:"yes",classes:"",styles:"",attrs:""};for(i=0;i<fields.length;i++){fields[i]=$.extend(true,{},fieldDefaults,fields[i])}tools='<div id="ws-plugin--s2member-custom-reg-field-configuration-tools"></div>',table='<table id="ws-plugin--s2member-custom-reg-field-configuration-table"></table>';$configuration.html(tools+table);$tools=$("div#ws-plugin--s2member-custom-reg-field-configuration-tools"),$table=$("table#ws-plugin--s2member-custom-reg-field-configuration-table");ws_plugin__s2member_customRegFieldSectionChange=function(select){var section=$(select).val();var sectitle_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle";(section==="yes")?$(sectitle_trs).css("display",""):$(sectitle_trs).css("display","none")};ws_plugin__s2member_customRegFieldTypeChange=function(select){var type=$(select).val();var deflt_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt",options_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-options",expected_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected";(type.match(/^(text|textarea)$/))?$(deflt_trs).css("display",""):$(deflt_trs).css("display","none");(type.match(/^(select|selects|checkboxes|radios)$/))?$(options_trs).css("display",""):$(options_trs).css("display","none");(type.match(/^(text|textarea)$/))?$(expected_trs).css("display",""):$(expected_trs).css("display","none")};ws_plugin__s2member_customRegFieldDelete=function(index){var newFields=new Array();for(var i=0;i<fields.length;i++){if(i!==index){newFields.push(fields[i])}}fields=newFields,updateFields(),buildTable()};ws_plugin__s2member_customRegFieldMoveUp=function(index){if(typeof fields[index]==="object"&&typeof fields[index-1]==="object"){var prevFieldObj=fields[index-1],thisFieldObj=fields[index];fields[index-1]=thisFieldObj,fields[index]=prevFieldObj;updateFields(),buildTable()}};ws_plugin__s2member_customRegFieldMoveDown=function(index){if(typeof fields[index]==="object"&&typeof fields[index+1]==="object"){var nextFieldObj=fields[index+1],thisFieldObj=fields[index];fields[index+1]=thisFieldObj,fields[index]=nextFieldObj;updateFields(),buildTable()}};ws_plugin__s2member_customRegFieldCreate=function(){var $table=$("table#ws-plugin--s2member-custom-reg-field-configuration-tools-form"),field={};$(":input[property]",$table).each(function(){var $this=$(this),property=$this.attr("property"),val=$.trim($this.val());field[property]=val});if((field=validateField(field))){fields.push(field),updateFields(),buildTools(),buildTable(),scrollReset();setTimeout(function(){var row="tr.ws-plugin--s2member-custom-reg-field-configuration-table-row-"+(fields.length-1);alert('Field created successfully.\n* Remember to "Save All Changes".')},500)}};ws_plugin__s2member_customRegFieldUpdate=function(index){var $table=$("table#ws-plugin--s2member-custom-reg-field-configuration-tools-form"),field={};$(":input[property]",$table).each(function(){var $this=$(this),property=$this.attr("property"),val=$.trim($this.val());field[property]=val});if((field=validateField(field,index))){fields[index]=field,updateFields(),buildTools(),buildTable(),scrollReset();setTimeout(function(){var row="tr.ws-plugin--s2member-custom-reg-field-configuration-table-row-"+index;alert('Field updated successfully.\n* Remember to "Save All Changes".')},500)}};ws_plugin__s2member_customRegFieldAdd=function(){buildTools(true)};ws_plugin__s2member_customRegFieldEdit=function(index){buildTools(false,index),scrollReset()};ws_plugin__s2member_customRegFieldCancel=function(){buildTools(),scrollReset()};var validateField=function(field,index){var editing=(typeof index==="number"&&typeof fields[index]==="object")?true:false,errors=[],options,i;if(typeof field!=="object"||typeof(field=$.extend(true,{},fieldDefaults,field))!=="object"){alert("Invalid field object. Please try again.");return false}field.sectitle=(field.section==="yes")?field.sectitle:"";field.deflt=(field.type.match(/^(text|textarea)$/))?field.deflt:"";field.deflt=(field.type.match(/^(text)$/))?field.deflt.replace(/[\r\n\t ]+/g," "):field.deflt;field.options=(field.type.match(/^(select|selects|checkboxes|radios)$/))?field.options:"";field.expected=(field.type.match(/^(text|textarea)$/))?field.expected:"";if(!field.id){errors.push("Unique Field ID:\nThis is required. Please try again.")}else{if(fieldIdExists(field.id)&&(!editing||field.id!==fields[index].id)){errors.push("Unique Field ID:\nThat Field ID already exists. Please try again.")}}if(!field.label){errors.push("Field Label/Description:\nThis is required. Please try again.")}if(field.type.match(/^(select|selects|checkboxes|radios)$/)&&!field.options){errors.push("Option Configuration File:\nThis is required. Please try again.")}else{if(field.type.match(/^(select|selects|checkboxes|radios)$/)){for(i=0;i<(options=field.options.split(/[\r\n]+/)).length;i++){if(!(options[i]=$.trim(options[i])).match(/^([^\|]*)(\|)([^\|]*)(\|default)?$/)){errors.push("Option Configuration File:\nInvalid configuration at line #"+(i+1)+".");break}}field.options=$.trim(options.join("\n"))}}if(!(field.levels=field.levels.replace(/ /g,""))){errors.push("Applicable Levels:\nThis is required. Please try again.")}else{if(!field.levels.match(/^(all|[0-9,]+)$/)){errors.push("Applicable Levels:\nShould be comma-delimited Levels, or just type: all.\n(examples: 0,1,2,3,4 or type the word: all)")}}if(field.classes&&field.classes.match(/[^a-z 0-9 _ \-]/i)){errors.push("CSS Classes:\nContains invalid characters. Please try again.\n(only: alphanumerics, underscores, hyphens, spaces)")}if(field.styles&&field.styles.match(/["\=\>\<]/)){errors.push('CSS Styles:\nContains invalid characters. Please try again.\n(do NOT use these characters: = " < >)')}if(field.attrs&&field.attrs.match(/[\>\<]/)){errors.push("Other Attributes:\nContains invalid characters. Please try again.\n(do NOT use these characters: < >)")}if(errors.length>0){alert(errors.join("\n\n"));return false}else{return field}};var updateFields=function(){$fields.val(((fields.length>0)?$.JSON.stringify(fields):""))};var fieldId2Var=function(fieldId){return(typeof fieldId==="string")?$.trim(fieldId).toLowerCase().replace(/[^a-z0-9]/g,"_"):""};var fieldTypeDesc=function(type){var types={text:"Text (single line)",textarea:"Textarea (multi-line)",select:"Select Menu (drop-down)",selects:"Select Menu (multi-option)",checkbox:"Checkbox (single)",pre_checkbox:"Checkbox (pre-checked)",checkboxes:"Checkboxes (multi-option)",radios:"Radio Buttons (multi-option)"};if(typeof types[type]==="string"){return types[type]}return""};var fieldIdExists=function(fieldId){for(var i=0;i<fields.length;i++){if(fields[i].id===fieldId){return true}}};var scrollReset=function(){scrollTo(0,$("div.ws-plugin--s2member-custom-reg-fields-section").offset()["top"]-100)};var buildTools=function(adding,index){var i=0,html="",form="",w=0,h=0,editing=(typeof index==="number"&&typeof fields[index]==="object")?true:false,displayForm=(adding||editing)?true:false,field=(editing)?$.extend(true,{},fieldDefaults,fields[index]):fieldDefaults;html+='<a href="#" onclick="ws_plugin__s2member_customRegFieldAdd(); return false;">Add New Field</a>';tb_remove(),$("div#ws-plugin--s2member-custom-reg-field-configuration-thickbox-tools-form").remove();if(displayForm){form+='<div id="ws-plugin--s2member-custom-reg-field-configuration-thickbox-tools-form">';form+='<table id="ws-plugin--s2member-custom-reg-field-configuration-tools-form">';form+="<tbody>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section">Starts A New Section?</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section">';form+='<td colspan="2">';form+='<select property="section" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section" onchange="ws_plugin__s2member_customRegFieldSectionChange(this);">';form+='<option value="no"'+((field.section==="no")?' selected="selected"':"")+'">No (this Field flows normally)</option>';form+='<option value="yes"'+((field.section==="yes")?' selected="selected"':"")+'">Yes (this Field begins a new section)</option>';form+="</select><br />";form+="<small>Optional. Allows Fields to be grouped into sections.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle ws-plugin--s2member-custom-reg-field-configuration-tools-form-section"'+((field.section==="yes")?"":' style="display:none;"')+'><td colspan="2"><hr /></td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle ws-plugin--s2member-custom-reg-field-configuration-tools-form-section"'+((field.section==="yes")?"":' style="display:none;"')+">";form+='<td colspan="2">';form+="Title for this new section? (optional)<br />";form+='<input type="text" property="sectitle" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle" value="'+esc_attr(field.sectitle)+'" /><br />';form+="<small>If empty, a simple divider will be used by default.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-type"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type">Form Field Type: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type">';form+='<td colspan="2">';form+='<select property="type" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type" onchange="ws_plugin__s2member_customRegFieldTypeChange(this);">';form+='<option value="text"'+((field.type==="text")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("text"))+"</option>";form+='<option value="textarea"'+((field.type==="textarea")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("textarea"))+"</option>";form+='<option value="select"'+((field.type==="select")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("select"))+"</option>";form+='<option value="selects"'+((field.type==="selects")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("selects"))+"</option>";form+='<option value="checkbox"'+((field.type==="checkbox")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("checkbox"))+"</option>";form+='<option value="pre_checkbox"'+((field.type==="pre_checkbox")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("pre_checkbox"))+"</option>";form+='<option value="checkboxes"'+((field.type==="checkboxes")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("checkboxes"))+"</option>";form+='<option value="radios"'+((field.type==="radios")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("radios"))+"</option>";form+="</select><br />";form+="<small>The options below may change, based on the Field Type you choose here.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-label"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label">Field Label/Desc: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label">';form+='<td colspan="2">';form+='<input type="text" property="label" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label" value="'+esc_attr(field.label)+'" /><br />';form+="<small>Examples: <code>Choose Country</code>, <code>Street Address</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-id"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id">Unique Field ID: *</label></label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id">';form+='<td colspan="2">';form+='<input type="text" property="id" maxlength="25" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id" value="'+esc_attr(field.id)+'" /><br />';form+="<small>Examples: <code>country_code</code>, <code>street_address</code></small><br />";form+='<small>e.g., <code>[s2Get user_field="country_code" /]</code></small>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-required"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">Field Required: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">';form+='<td colspan="2">';form+='<select property="required" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">';form+='<option value="yes"'+((field.required==="yes")?' selected="selected"':"")+'">Yes (required)</option>';form+='<option value="no"'+((field.required==="no")?' selected="selected"':"")+'">No (optional)</option>';form+="</select><br />";form+='<small>If <code>yes</code>, only Users/Members will be "required" to enter this field.</small><br />';form+="<small>* Administrators are exempt from this requirement.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt"'+((field.type.match(/^(text|textarea)$/))?"":' style="display:none;"')+'><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt"'+((field.type.match(/^(text|textarea)$/))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt">Default Text Value: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt"'+((field.type.match(/^(text|textarea)$/))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<textarea property="deflt" wrap="off" spellcheck="false" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt" rows="1">'+esc_html(field.deflt)+"</textarea><br />";form+="<small>Default value before user input is received.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-options"'+((field.type.match(/^(select|selects|checkboxes|radios)$/))?"":' style="display:none;"')+'><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options"'+((field.type.match(/^(select|selects|checkboxes|radios)$/))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options">Option Configuration File: * (one option per line)</label><br />';form+="<small>Use a pipe <code>|</code> delimited format: <code>option value|option label</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options"'+((field.type.match(/^(select|selects|checkboxes|radios)$/))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<textarea property="options" wrap="off" spellcheck="false" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options" rows="3">'+esc_html(field.options)+"</textarea><br />";form+="Here is a quick example:<br />";form+="<small>You can also specify a <em>default</em> option:</small><br />";form+="<code>US|United States|default</code><br />";form+="<code>CA|Canada</code><br />";form+="<code>VI|Virgin Islands (U.S.)</code>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected"'+((field.type.match(/^(text|textarea)$/))?"":' style="display:none;"')+'><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected"'+((field.type.match(/^(text|textarea)$/))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected">Expected Format: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected"'+((field.type.match(/^(text|textarea)$/))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<select property="expected" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected">';form+='<option value=""'+((field.expected==="")?' selected="selected"':"")+'">Anything Goes</option>';form+='<option disabled="disabled"></option>';form+='<optgroup label="Specific Input Types">';form+='<option value="numeric-wp-commas"'+((field.expected==="numeric-wp-commas")?' selected="selected"':"")+'">Numeric (with or without decimals, commas allowed)</option>';form+='<option value="numeric"'+((field.expected==="numeric")?' selected="selected"':"")+'">Numeric (with or without decimals, no commas)</option>';form+='<option value="integer"'+((field.expected==="integer")?' selected="selected"':"")+'">Integer (whole number, without any decimals)</option>';form+='<option value="integer-gt-0"'+((field.expected==="integer-gt-0")?' selected="selected"':"")+'">Integer > 0 (whole number, no decimals, greater than 0)</option>';form+='<option value="float"'+((field.expected==="float")?' selected="selected"':"")+'">Float (floating point number, decimals required)</option>';form+='<option value="float-gt-0"'+((field.expected==="float-gt-0")?' selected="selected"':"")+'">Float > 0 (floating point number, decimals required, greater than 0)</option>';form+='<option value="date"'+((field.expected==="date")?' selected="selected"':"")+'">Date (required date format: dd/mm/yyyy)</option>';form+='<option value="email"'+((field.expected==="email")?' selected="selected"':"")+'">Email (require valid email)</option>';form+='<option value="url"'+((field.expected==="url")?' selected="selected"':"")+'">Full URL (starting with http or https)</option>';form+='<option value="domain"'+((field.expected==="domain")?' selected="selected"':"")+'">Domain Name (domain name only, without http)</option>';form+='<option value="phone"'+((field.expected==="phone")?' selected="selected"':"")+'">Phone # (10 digits w/possible hyphens,spaces,brackets)</option>';form+='<option value="uszip"'+((field.expected==="uszip")?' selected="selected"':"")+'">US Zipcode (5-9 digits w/possible hyphen)</option>';form+='<option value="cazip"'+((field.expected==="cazip")?' selected="selected"':"")+'">Canadian Zipcode (6 alpha-numerics w/possible space)</option>';form+='<option value="uczip"'+((field.expected==="uczip")?' selected="selected"':"")+'">US/Canadian Zipcode (either a US or Canadian zipcode)</option>';form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Any Character Combination">';for(i=1;i<=25;i++){form+='<option value="any-'+i+'"'+((field.expected==="any-"+i)?' selected="selected"':"")+'">Any Character Combination ('+i+" character minimum)</option>";form+='<option value="any-'+i+'-e"'+((field.expected==="any-"+i+"-e")?' selected="selected"':"")+'">Any Character Combination (exactly '+i+" character"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics, Spaces & Punctuation Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-spaces-punctuation-'+i+'"'+((field.expected==="alphanumerics-spaces-punctuation-"+i)?' selected="selected"':"")+'">Alphanumerics, Spaces & Punctuation ('+i+" character minimum)</option>";form+='<option value="alphanumerics-spaces-punctuation-'+i+'-e"'+((field.expected==="alphanumerics-spaces-punctuation-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics, Spaces & Punctuation (exactly '+i+" character"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics & Spaces Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-spaces-'+i+'"'+((field.expected==="alphanumerics-spaces-"+i)?' selected="selected"':"")+'">Alphanumerics & Spaces ('+i+" character minimum)</option>";form+='<option value="alphanumerics-spaces-'+i+'-e"'+((field.expected==="alphanumerics-spaces-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics & Spaces (exactly '+i+" character"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics & Punctuation Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-punctuation-'+i+'"'+((field.expected==="alphanumerics-punctuation-"+i)?' selected="selected"':"")+'">Alphanumerics & Punctuation ('+i+" character minimum)</option>";form+='<option value="alphanumerics-punctuation-'+i+'-e"'+((field.expected==="alphanumerics-punctuation-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics & Punctuation (exactly '+i+" character"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-'+i+'"'+((field.expected==="alphanumerics-"+i)?' selected="selected"':"")+'">Alphanumerics ('+i+" character minimum)</option>";form+='<option value="alphanumerics-'+i+'-e"'+((field.expected==="alphanumerics-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics (exactly '+i+" character"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphabetics Only">';for(i=1;i<=25;i++){form+='<option value="alphabetics-'+i+'"'+((field.expected==="alphabetics-"+i)?' selected="selected"':"")+'">Alphabetics ('+i+" character minimum)</option>";form+='<option value="alphabetics-'+i+'-e"'+((field.expected==="alphabetics-"+i+"-e")?' selected="selected"':"")+'">Alphabetics (exactly '+i+" character"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Numeric Digits Only">';for(i=1;i<=25;i++){form+='<option value="numerics-'+i+'"'+((field.expected==="numerics-"+i)?' selected="selected"':"")+'">Numeric Digits ('+i+" digit minimum)</option>";form+='<option value="numerics-'+i+'-e"'+((field.expected==="numerics-"+i+"-e")?' selected="selected"':"")+'">Numeric Digits (exactly '+i+" digit"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+="</select><br />";form+="<small>Only Users/Members will be required to meet this criteria.</small><br />";form+="<small>* Administrators are exempt from this.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels">Applicable Membership Levels: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels">';form+='<td colspan="2">';form+='<input type="text" property="levels" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels" value="'+esc_attr(field.levels)+'" /><br />';form+="<small>Please use comma-delimited Level #'s: <code>0,1,2,3,4</code> or type: <code>all</code>.</small><br />";form+="<small>This allows you to enable this field - only at specific Membership Levels.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">Allow Profile Edits: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">';form+='<td colspan="2">';form+='<select property="editable" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">';form+='<option value="yes"'+((field.editable==="yes")?' selected="selected"':"")+'">Yes (editable)</option>';form+='<option value="no"'+((field.editable==="no")?' selected="selected"':"")+'">No (uneditable after registration)</option>';form+='<option value="no-invisible"'+((field.editable==="no-invisible")?' selected="selected"':"")+'">No (uneditable & totally invisible after registration)</option>';form+='<option value="no-always-invisible"'+((field.editable==="no-always-invisible")?' selected="selected"':"")+'">No (uneditable & totally invisible, both during & after registration)</option>';form+='<option value="yes-invisible"'+((field.editable==="yes-invisible")?' selected="selected"':"")+'">Yes (editable after registration / invisible during registration)</option>';form+="</select><br />";form+="<small>If <code>No</code>, this field will be un-editable after registration.</small><br />";form+="<small>* Administrators are exempt from this.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes">CSS Classes: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes">';form+='<td colspan="2">';form+='<input type="text" property="classes" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes" value="'+esc_attr(field.classes)+'" /><br />';form+="<small>Example: <code>my-style-1 my-style-2</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles">CSS Styles: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles">';form+='<td colspan="2">';form+='<input type="text" property="styles" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles" value="'+esc_attr(field.styles)+'" /><br />';form+="<small>Example: <code>color:#000000; background:#FFFFFF;</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs">Other Attributes: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs">';form+='<td colspan="2">';form+='<input type="text" property="attrs" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs" value="'+esc_attr(field.attrs)+'" /><br />';form+='<small>Example: <code>onkeyup="" onblur=""</code></small>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-buttons"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-buttons">';form+='<td align="left">';form+='<input type="button" value="Cancel" onclick="ws_plugin__s2member_customRegFieldCancel();" />';form+="</td>";form+='<td align="right">';form+='<input type="button" value="'+((editing)?"Update This Field":"Create Registration Field")+'" onclick="'+((editing)?"ws_plugin__s2member_customRegFieldUpdate("+index+");":"ws_plugin__s2member_customRegFieldCreate();")+'" />';form+="</td>";form+="</tr>";form+="</tbody>";form+="</table>";form+="<div>";$("body").append(form);tb_show(((editing)?"Editing Registration/Profile Field":"New Custom Registration/Profile Field"),"#TB_inline?inlineId=ws-plugin--s2member-custom-reg-field-configuration-thickbox-tools-form");$("table#ws-plugin--s2member-custom-reg-field-configuration-tools-form").show()}$tools.html(html)};var buildTable=function(){var l=fields.length,i=0,html="",eo="o";html+="<tbody>";html+="<tr>";html+="<th>Order</th>";html+="<th>Field Type</th>";html+="<th>Unique ID</th>";html+="<th>Required</th>";html+="<th>Levels</th>";html+="<th>- Tools -</th>";html+="</tr>";if(fields.length>0){for(i=0;i<fields.length;i++){html+='<tr class="'+esc_attr((eo=(eo==="o")?"e":"o"))+((fields[i].section==="yes")?" s":"")+" ws-plugin--s2member-custom-reg-field-configuration-table-row-"+i+'">';html+='<td nowrap="nowrap"><a class="ws-plugin--s2member-custom-reg-field-configuration-move-up" href="#" onclick="ws_plugin__s2member_customRegFieldMoveUp('+i+'); return false;"></a><a class="ws-plugin--s2member-custom-reg-field-configuration-move-down" href="#" onclick="ws_plugin__s2member_customRegFieldMoveDown('+i+'); return false;"></a></td>';html+='<td nowrap="nowrap">'+esc_html(fieldTypeDesc(fields[i].type))+"</td>";html+='<td nowrap="nowrap">'+esc_html(fields[i].id)+"</td>";html+='<td nowrap="nowrap">'+esc_html(fields[i].required)+"</td>";html+='<td nowrap="nowrap">'+esc_html(fields[i].levels)+"</td>";html+='<td nowrap="nowrap"><a class="ws-plugin--s2member-custom-reg-field-configuration-edit" href="#" onclick="ws_plugin__s2member_customRegFieldEdit('+i+'); return false;"></a><a class="ws-plugin--s2member-custom-reg-field-configuration-delete" href="#" onclick="ws_plugin__s2member_customRegFieldDelete('+i+'); return false;"></a></td>';html+="</tr>"}}else{html+="<tr>";html+='<td colspan="6">No Custom Fields are configured.</td>';html+="</tr>"}html+="</tbody>";$table.html(html)};buildTools(),buildTable()})()}}if(location.href.match(/page\=ws-plugin--s2member-res-ops/)){$("input#ws-plugin--s2member-brute-force-restrictions-reset-button").click(function(){var $this=$(this);$this.val("one moment please ...");$.post(ajaxurl,{action:"ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax",ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-delete-reset-all-ip-restrictions-via-ajax")); ?>'},function(response){alert("s2Member's Brute Force Restriction Logs have all been reset."),$this.val("Reset Brute Force Logs")});return false});$("input#ws-plugin--s2member-ip-restrictions-reset-button").click(function(){var $this=$(this);$this.val("one moment please ...");$.post(ajaxurl,{action:"ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax",ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-delete-reset-all-ip-restrictions-via-ajax")); ?>'},function(response){alert("s2Member's IP Restriction Logs have all been reset."),$this.val("Reset IP Restriction Logs")});return false});$('div.ws-plugin--s2member-query-level-access-section input[type="checkbox"][name="ws_plugin__s2member_filter_wp_query[]"]').change(function(){var thisChange=$(this).val();$('div.ws-plugin--s2member-query-level-access-section input[type="checkbox"][name="ws_plugin__s2member_filter_wp_query[]"]').each(function(){var $this=$(this),val=$this.val(),checkboxes='input[type="checkbox"]';if(val==="all"&&this.checked){$this.nextAll(checkboxes).attr({checked:"checked",disabled:"disabled"})}else{if(val==="all"&&!this.checked){$this.nextAll(checkboxes).removeAttr("disabled");(thisChange==="all")?$this.nextAll(checkboxes).removeAttr("checked"):null}}})}).last().trigger("change")}if(location.href.match(/page\=ws-plugin--s2member-down-ops/)){var updateCloudFrontPrivateKey=function(){var $hiddenPrivateKey=$("input#ws-plugin--s2member-amazon-cf-files-private-key");var $visiblePrivateKeyEntry=$("textarea#ws-plugin--s2member-amazon-cf-files-private-key-entry");var hiddenPrivateKeyValue=$.trim($hiddenPrivateKey.val()),visiblePrivateKeyEntryValue=$.trim($visiblePrivateKeyEntry.val());if((hiddenPrivateKeyValue&&!visiblePrivateKeyEntryValue)||visiblePrivateKeyEntryValue.match(/[^\r\n\u25CF]/)){$hiddenPrivateKey.val(visiblePrivateKeyEntryValue),$visiblePrivateKeyEntry.val(visiblePrivateKeyEntryValue.replace(/[^\r\n]/g,String.fromCharCode(9679)))}};$("form#ws-plugin--s2member-options-form").submit(updateCloudFrontPrivateKey);$("textarea#ws-plugin--s2member-amazon-cf-files-private-key-entry").change(updateCloudFrontPrivateKey).trigger("change");var updateCloudFrontDistroCfgs=function(){var $hiddenPrivateKey=$("input#ws-plugin--s2member-amazon-cf-files-private-key");var $visiblePrivateKeyId=$("input#ws-plugin--s2member-amazon-cf-files-private-key-id");var $autoConfigDistros=$("input#ws-plugin--s2member-amazon-cf-files-auto-configure-distros");var $autoConfigDistrosStatus=$("input#ws-plugin--s2member-amazon-cf-files-distros-auto-config-status");var autoConfigDistrosStatusValue=$.trim($autoConfigDistrosStatus.val());var hiddenPrivateKeyValue=$.trim($hiddenPrivateKey.val()),visiblePrivateKeyIdValue=$.trim($visiblePrivateKeyId.val());var hiddenPrivateKeyPrevConfigValue=$.trim($hiddenPrivateKey.attr("data-s-prev-config-value")),visiblePrivateKeyIdPrevConfigValue=$.trim($visiblePrivateKeyId.attr("data-s-prev-config-value"));if(autoConfigDistrosStatusValue==="configured"&&((visiblePrivateKeyIdPrevConfigValue&&visiblePrivateKeyIdValue!==visiblePrivateKeyIdPrevConfigValue)||(hiddenPrivateKeyPrevConfigValue&&hiddenPrivateKeyValue!==hiddenPrivateKeyPrevConfigValue))){alert("s2Member will need to delete and re-configure your Amazon CloudFront distributions if you change this. When you're done editing, click (Save All Changes) below.");$autoConfigDistros.attr("checked","checked")}else{if(autoConfigDistrosStatusValue!=="configured"&&visiblePrivateKeyIdValue&&hiddenPrivateKeyValue){alert("s2Member will need to auto-configure your Amazon CloudFront distributions for you. When you're done editing, click (Save All Changes) below.");$autoConfigDistros.attr("checked","checked")}}};$("input#ws-plugin--s2member-amazon-cf-files-private-key-id").change(updateCloudFrontDistroCfgs);$("textarea#ws-plugin--s2member-amazon-cf-files-private-key-entry").change(updateCloudFrontDistroCfgs);$("input#ws-plugin--s2member-amazon-cf-files-auto-configure-distros-w-cnames").change(function(){var $this=$(this),thisChecked=(this.checked)?true:false;var $autoConfigDistros=$("input#ws-plugin--s2member-amazon-cf-files-auto-configure-distros");var $autoConfigDistroCnames=$("div#ws-plugin--s2member-amazon-cf-files-auto-configure-distro-cnames");(thisChecked)?$autoConfigDistroCnames.show():$autoConfigDistroCnames.hide();(thisChecked)?$autoConfigDistros.attr("checked","checked"):null}).trigger("change")}if(location.href.match(/page\=ws-plugin--s2member-paypal-ops/)){$("select#ws-plugin--s2member-auto-eot-system-enabled").change(function(){var $this=$(this),val=$this.val();var $viaCron=$("p#ws-plugin--s2member-auto-eot-system-enabled-via-cron");if(val==2){$viaCron.show()}else{$viaCron.hide()}})}if(location.href.match(/page\=ws-plugin--s2member-paypal-buttons/)){$("div.ws-menu-page select[id]").filter(function(){return this.id.match(/^ws-plugin--s2member-(level[1-9][0-9]*|modification)-term$/)}).change(function(){var button=this.id.replace(/^ws-plugin--s2member-(.+?)-term$/g,"$1");var trialDisabled=($(this).val().split("-")[2].replace(/[^0-1BN]/g,"")==="BN")?1:0;$("p#ws-plugin--s2member-"+button+"-trial-line").css("display",(trialDisabled?"none":""));$("span#ws-plugin--s2member-"+button+"-trial-then").css("display",(trialDisabled?"none":""));$("span#ws-plugin--s2member-"+button+"-20p-rule").css("display",(trialDisabled?"none":""));(trialDisabled)?$("input#ws-plugin--s2member-"+button+"-trial-period").val(0):null;(trialDisabled)?$("input#ws-plugin--s2member-"+button+"-trial-amount").val("0.00"):null});$("div.ws-menu-page input[id]").filter(function(){return this.id.match(/^ws-plugin--s2member-(level[1-9][0-9]*|modification|ccap)-ccaps$/)}).keyup(function(){var value=this.value.replace(/^(-all|-al|-a|-)[;,]*/gi,""),_all=(this.value.match(/^(-all|-al|-a|-)[;,]*/i))?"-all,":"";if(value.match(/[^a-z_0-9,]/)){this.value=_all+$.trim($.trim(value).replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase())}});ws_plugin__s2member_paypalButtonGenerate=function(button){var shortCodeTemplate='[s2Member-PayPal-Button %%attrs%% image="default" output="button" /]',shortCodeTemplateAttrs="",labels={};eval("<?php echo c_ws_plugin__s2member_utils_strings::esc_dq($labels); ?>");var shortCode=$("input#ws-plugin--s2member-"+button+"-shortcode");var code=$("textarea#ws-plugin--s2member-"+button+"-button");var modLevel=$("select#ws-plugin--s2member-modification-level");var level=(button==="modification")?modLevel.val().split(":",2)[1]:button.replace(/^level/,"");var label=labels["level"+level].replace(/"/g,"");var desc=$.trim($("input#ws-plugin--s2member-"+button+"-desc").val().replace(/"/g,""));var trialAmount=$("input#ws-plugin--s2member-"+button+"-trial-amount").val().replace(/[^0-9\.]/g,"");var trialPeriod=$("input#ws-plugin--s2member-"+button+"-trial-period").val().replace(/[^0-9]/g,"");var trialTerm=$("select#ws-plugin--s2member-"+button+"-trial-term").val().replace(/[^A-Z]/g,"");var regAmount=$("input#ws-plugin--s2member-"+button+"-amount").val().replace(/[^0-9\.]/g,"");var regPeriod=$("select#ws-plugin--s2member-"+button+"-term").val().split("-")[0].replace(/[^0-9]/g,"");var regTerm=$("select#ws-plugin--s2member-"+button+"-term").val().split("-")[1].replace(/[^A-Z]/g,"");var regRecur=$("select#ws-plugin--s2member-"+button+"-term").val().split("-")[2].replace(/[^0-1BN]/g,"");var regRecurTimes="",regRecurRetry="1";var localeCode="",digital="0",noShipping="1";var pageStyle=$.trim($("input#ws-plugin--s2member-"+button+"-page-style").val().replace(/"/g,""));var currencyCode=$("select#ws-plugin--s2member-"+button+"-currency").val().replace(/[^A-Z]/g,"");var cCaps=$.trim($.trim($("input#ws-plugin--s2member-"+button+"-ccaps").val()).replace(/^(-all|-al|-a|-)[;,]*/gi,"").replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase());cCaps=($.trim($("input#ws-plugin--s2member-"+button+"-ccaps").val()).match(/^(-all|-al|-a|-)[;,]*/i))?((cCaps)?"-all,":"-all")+cCaps.toLowerCase():cCaps.toLowerCase();trialPeriod=(regRecur==="BN")?"0":trialPeriod;trialAmount=(!trialAmount||isNaN(trialAmount)||trialAmount<0.01||trialPeriod<=0)?"0":trialAmount;var levelCcapsPer=(regRecur==="BN"&®Term!=="L")?level+":"+cCaps+":"+regPeriod+" "+regTerm:level+":"+cCaps;levelCcapsPer=levelCcapsPer.replace(/\:+$/g,"");if(trialAmount!=="0"&&(isNaN(trialAmount)||trialAmount<0)){alert("— Oops, a slight problem: —\n\nWhen provided, Trial Amount must be >= 0.00");return false}else{if(trialAmount!=="0"&&trialAmount>10000&¤cyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Trial Amount is: 10000.00");return false}else{if(trialTerm==="D"&&trialPeriod>90){alert("— Oops, a slight problem: —\n\nMaximum Trial Days is: 90.\nIf you want to offer more than 90 days, please choose Weeks or Months from the drop-down.");return false}else{if(trialTerm==="W"&&trialPeriod>52){alert("— Oops, a slight problem: —\n\nMaximum Trial Weeks is: 52.\nIf you want to offer more than 52 weeks, please choose Months from the drop-down.");return false}else{if(trialTerm==="M"&&trialPeriod>24){alert("— Oops, a slight problem: —\n\nMaximum Trial Months is: 24.\nIf you want to offer more than 24 months, please choose Years from the drop-down.");return false}else{if(trialTerm==="Y"&&trialPeriod>5){alert("— Oops, a slight problem: —\n\nMax Trial Period Years is: 5.");return false}else{if(!regAmount||isNaN(regAmount)||regAmount<0.01){alert("— Oops, a slight problem: —\n\nAmount must be >= 0.01");return false}else{if(regAmount>10000&¤cyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Amount is: 10000.00");return false}else{if(!desc){alert("— Oops, a slight problem: —\n\nPlease type a Description for this Button.");return false}}}}}}}}}code.html(code.val().replace(/ \<\!--(\<input type\="hidden" name\="(amount|src|srt|sra|a1|p1|t1|a3|p3|t3)" value\="(.*?)" \/\>)--\>/g," $1"));(parseInt(trialPeriod)<=0)?code.html(code.val().replace(/ (\<input type\="hidden" name\="(a1|p1|t1)" value\="(.*?)" \/\>)/g," <!--$1-->")):null;(regRecur==="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="cmd" value\=")(.*?)(" \/\>)/g," $1_xclick$3")):null;(regRecur==="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="(src|srt|sra|a1|p1|t1|a3|p3|t3)" value\="(.*?)" \/\>)/g," <!--$1-->")):null;(regRecur!=="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="cmd" value\=")(.*?)(" \/\>)/g," $1_xclick-subscriptions$3")):null;(regRecur!=="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="amount" value\="(.*?)" \/\>)/g," <!--$1-->")):null;shortCodeTemplateAttrs+=(button==="modification")?'modify="1" ':"";shortCodeTemplateAttrs+='level="'+esc_attr(level)+'" ccaps="'+esc_attr(cCaps)+'" desc="'+esc_attr(desc)+'" ps="'+esc_attr(pageStyle)+'" lc="'+esc_attr(localeCode)+'" cc="'+esc_attr(currencyCode)+'" dg="'+esc_attr(digital)+'" ns="'+esc_attr(noShipping)+'" custom="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"';shortCodeTemplateAttrs+=' ta="'+esc_attr(trialAmount)+'" tp="'+esc_attr(trialPeriod)+'" tt="'+esc_attr(trialTerm)+'" ra="'+esc_attr(regAmount)+'" rp="'+esc_attr(regPeriod)+'" rt="'+esc_attr(regTerm)+'" rr="'+esc_attr(regRecur)+'" rrt="'+esc_attr(regRecurTimes)+'" rra="'+esc_attr(regRecurRetry)+'"';shortCode.val(shortCodeTemplate.replace(/%%attrs%%/,shortCodeTemplateAttrs));code.html(code.val().replace(/ name\="lc" value\="(.*?)"/,' name="lc" value="'+esc_attr(localeCode)+'"'));code.html(code.val().replace(/ name\="no_shipping" value\="(.*?)"/,' name="no_shipping" value="'+esc_attr(noShipping)+'"'));code.html(code.val().replace(/ name\="item_name" value\="(.*?)"/,' name="item_name" value="'+esc_attr(desc)+'"'));code.html(code.val().replace(/ name\="item_number" value\="(.*?)"/,' name="item_number" value="'+esc_attr(levelCcapsPer)+'"'));code.html(code.val().replace(/ name\="page_style" value\="(.*?)"/,' name="page_style" value="'+esc_attr(pageStyle)+'"'));code.html(code.val().replace(/ name\="currency_code" value\="(.*?)"/,' name="currency_code" value="'+esc_attr(currencyCode)+'"'));code.html(code.val().replace(/ name\="custom" value\="(.*?)"/,' name="custom" value="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"'));code.html(code.val().replace(/ name\="modify" value\="(.*?)"/,' name="modify" value="'+((button==="modification")?"1":"0")+'"'));code.html(code.val().replace(/ name\="amount" value\="(.*?)"/,' name="amount" value="'+esc_attr(regAmount)+'"'));code.html(code.val().replace(/ name\="src" value\="(.*?)"/,' name="src" value="'+esc_attr(regRecur)+'"'));code.html(code.val().replace(/ name\="srt" value\="(.*?)"/,' name="srt" value="'+esc_attr(regRecurTimes)+'"'));code.html(code.val().replace(/ name\="sra" value\="(.*?)"/,' name="sra" value="'+esc_attr(regRecurRetry)+'"'));code.html(code.val().replace(/ name\="a1" value\="(.*?)"/,' name="a1" value="'+esc_attr(trialAmount)+'"'));code.html(code.val().replace(/ name\="p1" value\="(.*?)"/,' name="p1" value="'+esc_attr(trialPeriod)+'"'));code.html(code.val().replace(/ name\="t1" value\="(.*?)"/,' name="t1" value="'+esc_attr(trialTerm)+'"'));code.html(code.val().replace(/ name\="a3" value\="(.*?)"/,' name="a3" value="'+esc_attr(regAmount)+'"'));code.html(code.val().replace(/ name\="p3" value\="(.*?)"/,' name="p3" value="'+esc_attr(regPeriod)+'"'));code.html(code.val().replace(/ name\="t3" value\="(.*?)"/,' name="t3" value="'+esc_attr(regTerm)+'"'));$("div#ws-plugin--s2member-"+button+"-button-prev").html(code.val().replace(/\<form/,'<form target="_blank"').replace(/\<\?php echo S2MEMBER_VALUE_FOR_PP_INV\(\); \?\>/g,Math.round(new Date().getTime())+'~<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["REMOTE_ADDR"])); ?>').replace(/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0|ON1|OS1); \?\>/g,""));(button==="modification")?alert("Your Modification Button has been generated.\nPlease copy/paste the Shortcode into your Login Welcome Page, or wherever you feel it would be most appropriate.\n\n* Remember, Modification Buttons should be displayed to existing Users/Members, and they should be logged-in, BEFORE clicking this Button."):alert("Your Button has been generated.\nPlease copy/paste the Shortcode Format into your Membership Options Page.");shortCode.each(function(){this.focus(),this.select()});return false};ws_plugin__s2member_paypalCcapButtonGenerate=function(){var shortCodeTemplate='[s2Member-PayPal-Button %%attrs%% image="default" output="button" /]',shortCodeTemplateAttrs="";var shortCode=$("input#ws-plugin--s2member-ccap-shortcode");var code=$("textarea#ws-plugin--s2member-ccap-button");var desc=$.trim($("input#ws-plugin--s2member-ccap-desc").val().replace(/"/g,""));var regAmount=$("input#ws-plugin--s2member-ccap-amount").val().replace(/[^0-9\.]/g,"");var regPeriod=$("select#ws-plugin--s2member-ccap-term").val().split("-")[0].replace(/[^0-9]/g,"");var regTerm=$("select#ws-plugin--s2member-ccap-term").val().split("-")[1].replace(/[^A-Z]/g,"");var regRecur=$("select#ws-plugin--s2member-ccap-term").val().split("-")[2].replace(/[^0-1BN]/g,"");var localeCode="",digital="0",noShipping="1";var pageStyle=$.trim($("input#ws-plugin--s2member-ccap-page-style").val().replace(/"/g,""));var currencyCode=$("select#ws-plugin--s2member-ccap-currency").val().replace(/[^A-Z]/g,"");var cCaps=$.trim($.trim($("input#ws-plugin--s2member-ccap-ccaps").val()).replace(/^(-all|-al|-a|-)[;,]*/gi,"").replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase());cCaps=($.trim($("input#ws-plugin--s2member-ccap-ccaps").val()).match(/^(-all|-al|-a|-)[;,]*/i))?((cCaps)?"-all,":"-all")+cCaps.toLowerCase():cCaps.toLowerCase();var levelCcapsPer=(regRecur==="BN"&®Term!=="L")?"*:"+cCaps+":"+regPeriod+" "+regTerm:"*:"+cCaps;levelCcapsPer=levelCcapsPer.replace(/\:+$/g,"");if(!cCaps||cCaps==="-all"){alert("— Oops, a slight problem: —\n\nPlease provide at least one Custom Capability.");return false}else{if(!regAmount||isNaN(regAmount)||regAmount<0.01){alert("— Oops, a slight problem: —\n\nAmount must be >= 0.01");return false}else{if(regAmount>10000&¤cyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Amount is: 10000.00");return false}else{if(!desc){alert("— Oops, a slight problem: —\n\nPlease type a Description for this Button.");return false}}}}shortCodeTemplateAttrs+='level="*" ccaps="'+esc_attr(cCaps)+'" desc="'+esc_attr(desc)+'" ps="'+esc_attr(pageStyle)+'" lc="'+esc_attr(localeCode)+'" cc="'+esc_attr(currencyCode)+'" dg="'+esc_attr(digital)+'" ns="'+esc_attr(noShipping)+'"';shortCodeTemplateAttrs+=' custom="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>" ra="'+esc_attr(regAmount)+'" rp="'+esc_attr(regPeriod)+'" rt="'+esc_attr(regTerm)+'" rr="'+esc_attr(regRecur)+'"';shortCode.val(shortCodeTemplate.replace(/%%attrs%%/,shortCodeTemplateAttrs));code.html(code.val().replace(/ name\="lc" value\="(.*?)"/,' name="lc" value="'+esc_attr(localeCode)+'"'));code.html(code.val().replace(/ name\="no_shipping" value\="(.*?)"/,' name="no_shipping" value="'+esc_attr(noShipping)+'"'));code.html(code.val().replace(/ name\="item_name" value\="(.*?)"/,' name="item_name" value="'+esc_attr(desc)+'"'));code.html(code.val().replace(/ name\="item_number" value\="(.*?)"/,' name="item_number" value="'+esc_attr(levelCcapsPer)+'"'));code.html(code.val().replace(/ name\="page_style" value\="(.*?)"/,' name="page_style" value="'+esc_attr(pageStyle)+'"'));code.html(code.val().replace(/ name\="currency_code" value\="(.*?)"/,' name="currency_code" value="'+esc_attr(currencyCode)+'"'));code.html(code.val().replace(/ name\="custom" value\="(.*?)"/,' name="custom" value="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"'));code.html(code.val().replace(/ name\="amount" value\="(.*?)"/,' name="amount" value="'+esc_attr(regAmount)+'"'));$("div#ws-plugin--s2member-ccap-button-prev").html(code.val().replace(/\<form/,'<form target="_blank"').replace(/\<\?php echo S2MEMBER_VALUE_FOR_PP_INV\(\); \?\>/g,Math.round(new Date().getTime())+'~<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["REMOTE_ADDR"])); ?>').replace(/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0|ON1|OS1); \?\>/g,""));alert("Your Button has been generated.\nPlease copy/paste the Shortcode into your Login Welcome Page, or wherever you feel it would be most appropriate.\n\n* Remember, Independent Custom Capability Buttons should ONLY be displayed to existing Users/Members, and they MUST be logged-in, BEFORE clicking this Button.");shortCode.each(function(){this.focus(),this.select()});return false};ws_plugin__s2member_paypalSpButtonGenerate=function(){var shortCodeTemplate='[s2Member-PayPal-Button %%attrs%% image="default" output="button" /]',shortCodeTemplateAttrs="";var shortCode=$("input#ws-plugin--s2member-sp-shortcode");var code=$("textarea#ws-plugin--s2member-sp-button");var leading=$("select#ws-plugin--s2member-sp-leading-id").val().replace(/[^0-9]/g,"");var additionals=$("select#ws-plugin--s2member-sp-additional-ids").val()||[];var hours=$("select#ws-plugin--s2member-sp-hours").val().replace(/[^0-9]/g,"");var regAmount=$("input#ws-plugin--s2member-sp-amount").val().replace(/[^0-9\.]/g,"");var desc=$.trim($("input#ws-plugin--s2member-sp-desc").val().replace(/"/g,""));var localeCode="",digital="0",noShipping="1";var pageStyle=$.trim($("input#ws-plugin--s2member-sp-page-style").val().replace(/"/g,""));var currencyCode=$("select#ws-plugin--s2member-sp-currency").val().replace(/[^A-Z]/g,"");if(!leading){alert("— Oops, a slight problem: —\n\nPlease select a Leading Post/Page.\n\n*Tip* If there are no Posts/Pages in the menu, it's because you've not configured s2Member for Specific Post/Page Access yet. See: s2Member → Restriction Options → Specific Post/Page Access.");return false}else{if(!regAmount||isNaN(regAmount)||regAmount<0.01){alert("— Oops, a slight problem: —\n\nAmount must be >= 0.01");return false}else{if(regAmount>10000&¤cyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Amount is: 10000.00");return false}else{if(!desc){alert("— Oops, a slight problem: —\n\nPlease type a Description for this Button.");return false}}}}for(var i=0,ids=leading;i<additionals.length;i++){if(additionals[i]&&additionals[i]!==leading){ids+=","+additionals[i]}}var spIdsHours="sp:"+ids+":"+hours;shortCodeTemplateAttrs+='sp="1" ids="'+esc_attr(ids)+'" exp="'+esc_attr(hours)+'" desc="'+esc_attr(desc)+'" ps="'+esc_attr(pageStyle)+'" lc="'+esc_attr(localeCode)+'" cc="'+esc_attr(currencyCode)+'" dg="'+esc_attr(digital)+'" ns="'+esc_attr(noShipping)+'"';shortCodeTemplateAttrs+=' custom="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>" ra="'+esc_attr(regAmount)+'"';shortCode.val(shortCodeTemplate.replace(/%%attrs%%/,shortCodeTemplateAttrs));code.html(code.val().replace(/ name\="lc" value\="(.*?)"/,' name="lc" value="'+esc_attr(localeCode)+'"'));code.html(code.val().replace(/ name\="no_shipping" value\="(.*?)"/,' name="no_shipping" value="'+esc_attr(noShipping)+'"'));code.html(code.val().replace(/ name\="item_name" value\="(.*?)"/,' name="item_name" value="'+esc_attr(desc)+'"'));code.html(code.val().replace(/ name\="item_number" value\="(.*?)"/,' name="item_number" value="'+esc_attr(spIdsHours)+'"'));code.html(code.val().replace(/ name\="page_style" value\="(.*?)"/,' name="page_style" value="'+esc_attr(pageStyle)+'"'));code.html(code.val().replace(/ name\="currency_code" value\="(.*?)"/,' name="currency_code" value="'+esc_attr(currencyCode)+'"'));code.html(code.val().replace(/ name\="custom" value\="(.*?)"/,' name="custom" value="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"'));code.html(code.val().replace(/ name\="amount" value\="(.*?)"/,' name="amount" value="'+esc_attr(regAmount)+'"'));$("div#ws-plugin--s2member-sp-button-prev").html(code.val().replace(/\<form/,'<form target="_blank"').replace(/\<\?php echo S2MEMBER_VALUE_FOR_PP_INV\(\); \?\>/g,Math.round(new Date().getTime())+'~<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["REMOTE_ADDR"])); ?>').replace(/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0|ON1|OS1); \?\>/g,""));alert("Your Button has been generated.\nPlease copy/paste the Shortcode into your WordPress Editor.");shortCode.each(function(){this.focus(),this.select()});return false};ws_plugin__s2member_paypalRegLinkGenerate=function(){var level=$("select#ws-plugin--s2member-reg-link-level").val().replace(/[^0-9]/g,"");var subscrID=$.trim($("input#ws-plugin--s2member-reg-link-subscr-id").val());var custom=$.trim($("input#ws-plugin--s2member-reg-link-custom").val());var cCaps=$.trim($.trim($("input#ws-plugin--s2member-reg-link-ccaps").val()).replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase());var fixedTerm=$.trim($("input#ws-plugin--s2member-reg-link-fixed-term").val().replace(/[^A-Z 0-9]/gi,"").toUpperCase());var $link=$("p#ws-plugin--s2member-reg-link"),$loading=$("img#ws-plugin--s2member-reg-link-loading");var levelCcapsPer=(fixedTerm&&!fixedTerm.match(/L$/))?level+":"+cCaps+":"+fixedTerm:level+":"+cCaps;levelCcapsPer=levelCcapsPer.replace(/\:+$/g,"");if(!subscrID){alert("— Oops, a slight problem: —\n\nPaid Subscr. ID is a required value.");return false}else{if(!custom||custom.indexOf('<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq ($_SERVER["HTTP_HOST"]); ?>')!==0){alert("— Oops, a slight problem: —\n\nThe Custom Value MUST start with your domain name.");return false}else{if(fixedTerm&&!fixedTerm.match(/^[1-9]+ (D|W|M|Y|L)$/)){alert("— Oops, a slight problem: —\n\nThe Fixed Term Length is not formatted properly.");return false}}}$link.hide(),$loading.show(),$.post(ajaxurl,{action:"ws_plugin__s2member_reg_access_link_via_ajax",ws_plugin__s2member_reg_access_link_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-reg-access-link-via-ajax")); ?>',s2member_reg_access_link_subscr_gateway:"paypal",s2member_reg_access_link_subscr_id:subscrID,s2member_reg_access_link_custom:custom,s2member_reg_access_link_item_number:levelCcapsPer},function(response){$link.show().html('<a href="'+esc_attr(response)+'" target="_blank" rel="external">'+esc_html(response)+"</a>"),$loading.hide()});return false};ws_plugin__s2member_paypalSpLinkGenerate=function(){var leading=$("select#ws-plugin--s2member-sp-link-leading-id").val().replace(/[^0-9]/g,"");var additionals=$("select#ws-plugin--s2member-sp-link-additional-ids").val()||[];var hours=$("select#ws-plugin--s2member-sp-link-hours").val().replace(/[^0-9]/g,"");var $link=$("p#ws-plugin--s2member-sp-link"),$loading=$("img#ws-plugin--s2member-sp-link-loading");if(!leading){alert("— Oops, a slight problem: —\n\nPlease select a Leading Post/Page.\n\n*Tip* If there are no Posts/Pages in the menu, it's because you've not configured s2Member for Specific Post/Page Access yet. See: s2Member → Restriction Options → Specific Post/Page Access.");return false}for(var i=0,ids=leading;i<additionals.length;i++){if(additionals[i]&&additionals[i]!==leading){ids+=","+additionals[i]}}$link.hide(),$loading.show(),$.post(ajaxurl,{action:"ws_plugin__s2member_sp_access_link_via_ajax",ws_plugin__s2member_sp_access_link_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-sp-access-link-via-ajax")); ?>',s2member_sp_access_link_ids:ids,s2member_sp_access_link_hours:hours},function(response){$link.show().html('<a href="'+esc_attr(response)+'" target="_blank" rel="external">'+esc_html(response)+"</a>"),$loading.hide()});return false}}if(location.href.match(/page\=ws-plugin--s2member-els-ops/)){$("select#ws-plugin--s2member-custom-reg-opt-in").change(function(){var $this=$(this),val=$this.val();var $rows=$("tr.ws-plugin--s2member-custom-reg-opt-in-label-row");var $prevImg=$("img.ws-plugin--s2member-custom-reg-opt-in-label-prev-img");if(val<=0){$rows.css("display","none"),$prevImg.attr("src",$prevImg.attr("src").replace(/\/checked\.png$/,"/unchecked.png"))}else{if(val==1){$rows.css("display",""),$prevImg.attr("src",$prevImg.attr("src").replace(/\/unchecked\.png$/,"/checked.png"))}else{if(val==2){$rows.css("display",""),$prevImg.attr("src",$prevImg.attr("src").replace(/\/checked\.png$/,"/unchecked.png"))}}}});$('div.ws-plugin--s2member-opt-out-section input[type="checkbox"][name="ws_plugin__s2member_custom_reg_auto_opt_outs[]"]').change(function(){var thisChange=$(this).val(),checkedIndexes=[];$('div.ws-plugin--s2member-opt-out-section input[type="checkbox"][name="ws_plugin__s2member_custom_reg_auto_opt_outs[]"]').each(function(){var $this=$(this),val=$this.val(),checkboxes='input[type="checkbox"]';if(val==="removal-deletion"&&this.checked){$this.nextAll(checkboxes).slice(0,2).attr({checked:"checked",disabled:"disabled"})}else{if(val==="removal-deletion"&&!this.checked){$this.nextAll(checkboxes).slice(0,2).removeAttr("disabled");(thisChange==="removal-deletion")?$this.nextAll(checkboxes).slice(0,2).removeAttr("checked"):null}else{if(val==="modification"&&this.checked){$this.nextAll(checkboxes).slice(0,3).attr({checked:"checked",disabled:"disabled"})}else{if(val==="modification"&&!this.checked){(thisChange==="modification")?$this.nextAll(checkboxes).slice(0,3).removeAttr("checked"):null;$this.nextAll(checkboxes).slice(0,3).removeAttr("disabled")}}}}}).each(function(index){(this.checked)?checkedIndexes.push(index):null});$("select#ws-plugin--s2member-custom-reg-auto-opt-out-transitions").removeAttr("disabled");if($.inArray(3,checkedIndexes)===-1&&$.inArray(4,checkedIndexes)===-1&&$.inArray(5,checkedIndexes)===-1&&$.inArray(6,checkedIndexes)===-1){$("select#ws-plugin--s2member-custom-reg-auto-opt-out-transitions").attr("disabled","disabled")}}).last().trigger("change")}});
|
1 |
+
jQuery(document).ready(function($){var esc_attr=esc_html=function(string){if(/[&\<\>"']/.test(string=String(string))){string=string.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),string=string.replace(/"/g,""").replace(/'/g,"'")}return string};ws_plugin__s2member_generateSecurityKey=function(obj){if(!obj){obj="#ws-plugin--s2member-sec-encryption-key"}var mt_rand=function(min,max){min=(arguments.length<1)?0:min;max=(arguments.length<2)?2147483647:max;return Math.floor(Math.random()*(max-min+1))+min};var chars="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#%^&*()";for(var i=0,key="";i<64;i++){key+=chars.substr(mt_rand(0,chars.length-1),1)}$(obj).val(key);return false};if(location.href.match(/page\=ws-plugin--s2member/)){$("input.ws-plugin--s2member-update-roles-button, input.ws-plugin--s2member-reset-roles-button").click(function(){var $this=$(this);$this.val("one moment please ...");var levels='<?php echo (int)$GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; ?>';var resetUpdate=($this.hasClass("ws-plugin--s2member-reset-roles-button"))?"Reset":"Update";$.post(ajaxurl,{action:"ws_plugin__s2member_update_roles_via_ajax",ws_plugin__s2member_update_roles_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-update-roles-via-ajax")); ?>'},function(response){if(response==="1"){alert("s2Member's Roles/Capabilities "+((resetUpdate.toLowerCase()==="reset")?"have been successfully reset":"updated successfully")+".\nYour installation of s2Member has Membership Levels 0-"+levels+"."),$this.val(resetUpdate+" Roles/Capabilities")}else{if(response==="l"){alert("Sorry, your request failed.\ns2Member's Roles/Capabilities are locked by Filter:\nws_plugin__s2member_lock_roles_caps"),$this.val(resetUpdate+" Roles/Capabilities")}else{alert("Sorry, your request failed.\nAccess denied. Do you have the ability to `create_users`?"),$this.val(resetUpdate+" Roles/Capabilities")}}});return false})}if(location.href.match(/page\=ws-plugin--s2member-logs/)){$("input#ws-plugin--s2member-gateway-debug-logs-extensive-1").click(function(){var $this=$(this),thisChecked=(this.checked)?true:false;if(thisChecked){$("input#ws-plugin--s2member-gateway-debug-logs-1").attr("checked","checked")}});var $toggles=$("a.ws-plugin--s2member-log-file-viewport-toggle");$toggles.click(function(){$("textarea#ws-plugin--s2member-log-file-viewer").each(function(){var $viewer=$(this);if($viewer.attr("data-state")!=="expanded"){$viewer.css({height:($viewer.prop("scrollHeight")+50)+"px","overflow-y":"auto"});$toggles.html("⇑ normalize viewport ❙");$viewer.attr("data-state","expanded")}else{$viewer.css({height:"auto","overflow-y":"scroll"});$toggles.html("⇓ expand viewport ⇓");$viewer.attr("data-state","scrolling")}});return false})}if(location.href.match(/page\=ws-plugin--s2member-mms-ops/)){$("select#ws-plugin--s2member-mms-registration-file").change(function(){if($(this).val()==="wp-signup"){var gv=$("select#ws-plugin--s2member-mms-registration-grants").val(),l0v=$("input#ws-plugin--s2member-mms-registration-blogs-level0").val();$("div#ws-plugin--s2member-mms-registration-support-package-details-wrapper").show(),$("div.ws-plugin--s2member-mms-registration-wp-login, table.ws-plugin--s2member-mms-registration-wp-login").hide(),$("div.ws-plugin--s2member-mms-registration-wp-signup, table.ws-plugin--s2member-mms-registration-wp-signup").show();$("div.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0, table.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0")[((gv==="all")?"show":"hide")]();$("input#ws-plugin--s2member-mms-registration-blogs-level0").val(((gv==="all")?((l0v>0)?l0v:"1"):"0"))}else{if($(this).val()==="wp-login"){var gv=$("select#ws-plugin--s2member-mms-registration-grants").val(),l0v=$("input#ws-plugin--s2member-mms-registration-blogs-level0").val();$("div#ws-plugin--s2member-mms-registration-support-package-details-wrapper").hide(),$("div.ws-plugin--s2member-mms-registration-wp-login, table.ws-plugin--s2member-mms-registration-wp-login").show(),$("div.ws-plugin--s2member-mms-registration-wp-signup, table.ws-plugin--s2member-mms-registration-wp-signup").hide();$("div.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0, table.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0").hide();$("input#ws-plugin--s2member-mms-registration-blogs-level0").val("0")}}}).trigger("change");$("select#ws-plugin--s2member-mms-registration-grants").change(function(){$("select#ws-plugin--s2member-mms-registration-file").trigger("change")})}if(location.href.match(/page\=ws-plugin--s2member-gen-ops/)){ws_plugin__s2member_enableSecurityKey=function(){if(confirm("Edit Key? Are you sure?\nThis could break your installation!\n\n*Note* If you've been testing s2Member, feel free to change this Key before you go live. Just don't go live, and then change it. You'll have unhappy Customers. Data corruption WILL occur! For your safety, s2Member keeps a history of the last 10 Keys that you've used. If you get yourself into a real situation, s2Member will let you revert back to a previous Key.")){$("input#ws-plugin--s2member-sec-encryption-key").removeAttr("disabled")}return false};ws_plugin__s2member_securityKeyHistory=function(){$("div#ws-plugin--s2member-sec-encryption-key-history").toggle();return false};$("select#ws-plugin--s2member-new-user-emails-enabled").change(function(){var $pluggable=$("input#ws-plugin--s2member-pluggables-wp-new-user-notification"),$this=$(this),$newUserEmails=$("div#ws-plugin--s2member-new-user-emails");if($pluggable.val()==="0"||$this.val()==="0"){($pluggable.val()==="0")?$this.attr("disabled","disabled"):$this.removeAttr("disabled");$(":input",$newUserEmails).attr("disabled","disabled"),$newUserEmails.css("opacity","0.5")}else{$this.removeAttr("disabled"),$(":input",$newUserEmails).removeAttr("disabled"),$newUserEmails.css("opacity","")}}).trigger("change");$("select#ws-plugin--s2member-login-reg-design-enabled").change(function(){var $this=$(this),$loginRegDesign=$("div#ws-plugin--s2member-login-reg-design");if($this.val()==="0"){$(":input",$loginRegDesign).attr("disabled","disabled"),$loginRegDesign.css("opacity","0.5"),$loginRegDesign.hide()}else{$(":input",$loginRegDesign).removeAttr("disabled"),$loginRegDesign.css("opacity",""),$loginRegDesign.show()}}).trigger("change");$("select#ws-plugin--s2member-custom-reg-password").change(function(){var $this=$(this),$newUserNotification=$("div#ws-plugin--s2member-new-user-email-details");if($this.val()==="1"){$newUserNotification.css("opacity","0.5")}else{$newUserNotification.css("opacity","")}}).trigger("change");if($("input#ws-plugin--s2member-custom-reg-fields").length&&$("div#ws-plugin--s2member-custom-reg-field-configuration").length){(function(){var i,fieldDefaults,tools,table,$tools,$table;var $fields=$("input#ws-plugin--s2member-custom-reg-fields");var $configuration=$("div#ws-plugin--s2member-custom-reg-field-configuration");var fields=($fields.val())?$.JSON.parse($fields.val()):[];fields=(fields instanceof Array)?fields:[];fieldDefaults={section:"no",sectitle:"",id:"",label:"",type:"text",deflt:"",options:"",expected:"",required:"yes",levels:"all",editable:"yes",classes:"",styles:"",attrs:""};for(i=0;i<fields.length;i++){fields[i]=$.extend(true,{},fieldDefaults,fields[i])}tools='<div id="ws-plugin--s2member-custom-reg-field-configuration-tools"></div>',table='<table id="ws-plugin--s2member-custom-reg-field-configuration-table"></table>';$configuration.html(tools+table);$tools=$("div#ws-plugin--s2member-custom-reg-field-configuration-tools"),$table=$("table#ws-plugin--s2member-custom-reg-field-configuration-table");ws_plugin__s2member_customRegFieldSectionChange=function(select){var section=$(select).val();var sectitle_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle";(section==="yes")?$(sectitle_trs).css("display",""):$(sectitle_trs).css("display","none")};ws_plugin__s2member_customRegFieldTypeChange=function(select){var type=$(select).val();var deflt_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt",options_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-options",expected_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected";(type.match(/^(text|textarea)$/))?$(deflt_trs).css("display",""):$(deflt_trs).css("display","none");(type.match(/^(select|selects|checkboxes|radios)$/))?$(options_trs).css("display",""):$(options_trs).css("display","none");(type.match(/^(text|textarea)$/))?$(expected_trs).css("display",""):$(expected_trs).css("display","none")};ws_plugin__s2member_customRegFieldDelete=function(index){var newFields=new Array();for(var i=0;i<fields.length;i++){if(i!==index){newFields.push(fields[i])}}fields=newFields,updateFields(),buildTable()};ws_plugin__s2member_customRegFieldMoveUp=function(index){if(typeof fields[index]==="object"&&typeof fields[index-1]==="object"){var prevFieldObj=fields[index-1],thisFieldObj=fields[index];fields[index-1]=thisFieldObj,fields[index]=prevFieldObj;updateFields(),buildTable()}};ws_plugin__s2member_customRegFieldMoveDown=function(index){if(typeof fields[index]==="object"&&typeof fields[index+1]==="object"){var nextFieldObj=fields[index+1],thisFieldObj=fields[index];fields[index+1]=thisFieldObj,fields[index]=nextFieldObj;updateFields(),buildTable()}};ws_plugin__s2member_customRegFieldCreate=function(){var $table=$("table#ws-plugin--s2member-custom-reg-field-configuration-tools-form"),field={};$(":input[property]",$table).each(function(){var $this=$(this),property=$this.attr("property"),val=$.trim($this.val());field[property]=val});if((field=validateField(field))){fields.push(field),updateFields(),buildTools(),buildTable(),scrollReset();setTimeout(function(){var row="tr.ws-plugin--s2member-custom-reg-field-configuration-table-row-"+(fields.length-1);alert('Field created successfully.\n* Remember to "Save All Changes".')},500)}};ws_plugin__s2member_customRegFieldUpdate=function(index){var $table=$("table#ws-plugin--s2member-custom-reg-field-configuration-tools-form"),field={};$(":input[property]",$table).each(function(){var $this=$(this),property=$this.attr("property"),val=$.trim($this.val());field[property]=val});if((field=validateField(field,index))){fields[index]=field,updateFields(),buildTools(),buildTable(),scrollReset();setTimeout(function(){var row="tr.ws-plugin--s2member-custom-reg-field-configuration-table-row-"+index;alert('Field updated successfully.\n* Remember to "Save All Changes".')},500)}};ws_plugin__s2member_customRegFieldAdd=function(){buildTools(true)};ws_plugin__s2member_customRegFieldEdit=function(index){buildTools(false,index),scrollReset()};ws_plugin__s2member_customRegFieldCancel=function(){buildTools(),scrollReset()};var validateField=function(field,index){var editing=(typeof index==="number"&&typeof fields[index]==="object")?true:false,errors=[],options,i;if(typeof field!=="object"||typeof(field=$.extend(true,{},fieldDefaults,field))!=="object"){alert("Invalid field object. Please try again.");return false}field.sectitle=(field.section==="yes")?field.sectitle:"";field.deflt=(field.type.match(/^(text|textarea)$/))?field.deflt:"";field.deflt=(field.type.match(/^(text)$/))?field.deflt.replace(/[\r\n\t ]+/g," "):field.deflt;field.options=(field.type.match(/^(select|selects|checkboxes|radios)$/))?field.options:"";field.expected=(field.type.match(/^(text|textarea)$/))?field.expected:"";if(!field.id){errors.push("Unique Field ID:\nThis is required. Please try again.")}else{if(fieldIdExists(field.id)&&(!editing||field.id!==fields[index].id)){errors.push("Unique Field ID:\nThat Field ID already exists. Please try again.")}}if(!field.label){errors.push("Field Label/Description:\nThis is required. Please try again.")}if(field.type.match(/^(select|selects|checkboxes|radios)$/)&&!field.options){errors.push("Option Configuration File:\nThis is required. Please try again.")}else{if(field.type.match(/^(select|selects|checkboxes|radios)$/)){for(i=0;i<(options=field.options.split(/[\r\n]+/)).length;i++){if(!(options[i]=$.trim(options[i])).match(/^([^\|]*)(\|)([^\|]*)(\|default)?$/)){errors.push("Option Configuration File:\nInvalid configuration at line #"+(i+1)+".");break}}field.options=$.trim(options.join("\n"))}}if(!(field.levels=field.levels.replace(/ /g,""))){errors.push("Applicable Levels:\nThis is required. Please try again.")}else{if(!field.levels.match(/^(all|[0-9,]+)$/)){errors.push("Applicable Levels:\nShould be comma-delimited Levels, or just type: all.\n(examples: 0,1,2,3,4 or type the word: all)")}}if(field.classes&&field.classes.match(/[^a-z 0-9 _ \-]/i)){errors.push("CSS Classes:\nContains invalid characters. Please try again.\n(only: alphanumerics, underscores, hyphens, spaces)")}if(field.styles&&field.styles.match(/["\=\>\<]/)){errors.push('CSS Styles:\nContains invalid characters. Please try again.\n(do NOT use these characters: = " < >)')}if(field.attrs&&field.attrs.match(/[\>\<]/)){errors.push("Other Attributes:\nContains invalid characters. Please try again.\n(do NOT use these characters: < >)")}if(errors.length>0){alert(errors.join("\n\n"));return false}else{return field}};var updateFields=function(){$fields.val(((fields.length>0)?$.JSON.stringify(fields):""))};var fieldId2Var=function(fieldId){return(typeof fieldId==="string")?$.trim(fieldId).toLowerCase().replace(/[^a-z0-9]/g,"_"):""};var fieldTypeDesc=function(type){var types={text:"Text (single line)",textarea:"Textarea (multi-line)",select:"Select Menu (drop-down)",selects:"Select Menu (multi-option)",checkbox:"Checkbox (single)",pre_checkbox:"Checkbox (pre-checked)",checkboxes:"Checkboxes (multi-option)",radios:"Radio Buttons (multi-option)"};if(typeof types[type]==="string"){return types[type]}return""};var fieldIdExists=function(fieldId){for(var i=0;i<fields.length;i++){if(fields[i].id===fieldId){return true}}};var scrollReset=function(){scrollTo(0,$("div.ws-plugin--s2member-custom-reg-fields-section").offset()["top"]-100)};var buildTools=function(adding,index){var i=0,html="",form="",w=0,h=0,editing=(typeof index==="number"&&typeof fields[index]==="object")?true:false,displayForm=(adding||editing)?true:false,field=(editing)?$.extend(true,{},fieldDefaults,fields[index]):fieldDefaults;html+='<a href="#" onclick="ws_plugin__s2member_customRegFieldAdd(); return false;">Add New Field</a>';tb_remove(),$("div#ws-plugin--s2member-custom-reg-field-configuration-thickbox-tools-form").remove();if(displayForm){form+='<div id="ws-plugin--s2member-custom-reg-field-configuration-thickbox-tools-form">';form+='<table id="ws-plugin--s2member-custom-reg-field-configuration-tools-form">';form+="<tbody>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section">Starts A New Section?</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section">';form+='<td colspan="2">';form+='<select property="section" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section" onchange="ws_plugin__s2member_customRegFieldSectionChange(this);">';form+='<option value="no"'+((field.section==="no")?' selected="selected"':"")+'">No (this Field flows normally)</option>';form+='<option value="yes"'+((field.section==="yes")?' selected="selected"':"")+'">Yes (this Field begins a new section)</option>';form+="</select><br />";form+="<small>Optional. Allows Fields to be grouped into sections.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle ws-plugin--s2member-custom-reg-field-configuration-tools-form-section"'+((field.section==="yes")?"":' style="display:none;"')+'><td colspan="2"><hr /></td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle ws-plugin--s2member-custom-reg-field-configuration-tools-form-section"'+((field.section==="yes")?"":' style="display:none;"')+">";form+='<td colspan="2">';form+="Title for this new section? (optional)<br />";form+='<input type="text" property="sectitle" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle" value="'+esc_attr(field.sectitle)+'" /><br />';form+="<small>If empty, a simple divider will be used by default.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-type"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type">Form Field Type: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type">';form+='<td colspan="2">';form+='<select property="type" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type" onchange="ws_plugin__s2member_customRegFieldTypeChange(this);">';form+='<option value="text"'+((field.type==="text")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("text"))+"</option>";form+='<option value="textarea"'+((field.type==="textarea")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("textarea"))+"</option>";form+='<option value="select"'+((field.type==="select")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("select"))+"</option>";form+='<option value="selects"'+((field.type==="selects")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("selects"))+"</option>";form+='<option value="checkbox"'+((field.type==="checkbox")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("checkbox"))+"</option>";form+='<option value="pre_checkbox"'+((field.type==="pre_checkbox")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("pre_checkbox"))+"</option>";form+='<option value="checkboxes"'+((field.type==="checkboxes")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("checkboxes"))+"</option>";form+='<option value="radios"'+((field.type==="radios")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("radios"))+"</option>";form+="</select><br />";form+="<small>The options below may change, based on the Field Type you choose here.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-label"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label">Field Label/Desc: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label">';form+='<td colspan="2">';form+='<input type="text" property="label" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label" value="'+esc_attr(field.label)+'" /><br />';form+="<small>Examples: <code>Choose Country</code>, <code>Street Address</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-id"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id">Unique Field ID: *</label></label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id">';form+='<td colspan="2">';form+='<input type="text" property="id" maxlength="25" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id" value="'+esc_attr(field.id)+'" /><br />';form+="<small>Examples: <code>country_code</code>, <code>street_address</code></small><br />";form+='<small>e.g., <code>[s2Get user_field="country_code" /]</code></small>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-required"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">Field Required: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">';form+='<td colspan="2">';form+='<select property="required" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">';form+='<option value="yes"'+((field.required==="yes")?' selected="selected"':"")+'">Yes (required)</option>';form+='<option value="no"'+((field.required==="no")?' selected="selected"':"")+'">No (optional)</option>';form+="</select><br />";form+='<small>If <code>yes</code>, only Users/Members will be "required" to enter this field.</small><br />';form+="<small>* Administrators are exempt from this requirement.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt"'+((field.type.match(/^(text|textarea)$/))?"":' style="display:none;"')+'><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt"'+((field.type.match(/^(text|textarea)$/))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt">Default Text Value: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt"'+((field.type.match(/^(text|textarea)$/))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<textarea property="deflt" wrap="off" spellcheck="false" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt" rows="1">'+esc_html(field.deflt)+"</textarea><br />";form+="<small>Default value before user input is received.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-options"'+((field.type.match(/^(select|selects|checkboxes|radios)$/))?"":' style="display:none;"')+'><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options"'+((field.type.match(/^(select|selects|checkboxes|radios)$/))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options">Option Configuration File: * (one option per line)</label><br />';form+="<small>Use a pipe <code>|</code> delimited format: <code>option value|option label</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options"'+((field.type.match(/^(select|selects|checkboxes|radios)$/))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<textarea property="options" wrap="off" spellcheck="false" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options" rows="3">'+esc_html(field.options)+"</textarea><br />";form+="Here is a quick example:<br />";form+="<small>You can also specify a <em>default</em> option:</small><br />";form+="<code>US|United States|default</code><br />";form+="<code>CA|Canada</code><br />";form+="<code>VI|Virgin Islands (U.S.)</code>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected"'+((field.type.match(/^(text|textarea)$/))?"":' style="display:none;"')+'><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected"'+((field.type.match(/^(text|textarea)$/))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected">Expected Format: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected"'+((field.type.match(/^(text|textarea)$/))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<select property="expected" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected">';form+='<option value=""'+((field.expected==="")?' selected="selected"':"")+'">Anything Goes</option>';form+='<option disabled="disabled"></option>';form+='<optgroup label="Specific Input Types">';form+='<option value="numeric-wp-commas"'+((field.expected==="numeric-wp-commas")?' selected="selected"':"")+'">Numeric (with or without decimals, commas allowed)</option>';form+='<option value="numeric"'+((field.expected==="numeric")?' selected="selected"':"")+'">Numeric (with or without decimals, no commas)</option>';form+='<option value="integer"'+((field.expected==="integer")?' selected="selected"':"")+'">Integer (whole number, without any decimals)</option>';form+='<option value="integer-gt-0"'+((field.expected==="integer-gt-0")?' selected="selected"':"")+'">Integer > 0 (whole number, no decimals, greater than 0)</option>';form+='<option value="float"'+((field.expected==="float")?' selected="selected"':"")+'">Float (floating point number, decimals required)</option>';form+='<option value="float-gt-0"'+((field.expected==="float-gt-0")?' selected="selected"':"")+'">Float > 0 (floating point number, decimals required, greater than 0)</option>';form+='<option value="date"'+((field.expected==="date")?' selected="selected"':"")+'">Date (required date format: dd/mm/yyyy)</option>';form+='<option value="email"'+((field.expected==="email")?' selected="selected"':"")+'">Email (require valid email)</option>';form+='<option value="url"'+((field.expected==="url")?' selected="selected"':"")+'">Full URL (starting with http or https)</option>';form+='<option value="domain"'+((field.expected==="domain")?' selected="selected"':"")+'">Domain Name (domain name only, without http)</option>';form+='<option value="phone"'+((field.expected==="phone")?' selected="selected"':"")+'">Phone # (10 digits w/possible hyphens,spaces,brackets)</option>';form+='<option value="uszip"'+((field.expected==="uszip")?' selected="selected"':"")+'">US Zipcode (5-9 digits w/possible hyphen)</option>';form+='<option value="cazip"'+((field.expected==="cazip")?' selected="selected"':"")+'">Canadian Zipcode (6 alpha-numerics w/possible space)</option>';form+='<option value="uczip"'+((field.expected==="uczip")?' selected="selected"':"")+'">US/Canadian Zipcode (either a US or Canadian zipcode)</option>';form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Any Character Combination">';for(i=1;i<=25;i++){form+='<option value="any-'+i+'"'+((field.expected==="any-"+i)?' selected="selected"':"")+'">Any Character Combination ('+i+" character minimum)</option>";form+='<option value="any-'+i+'-e"'+((field.expected==="any-"+i+"-e")?' selected="selected"':"")+'">Any Character Combination (exactly '+i+" character"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics, Spaces & Punctuation Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-spaces-punctuation-'+i+'"'+((field.expected==="alphanumerics-spaces-punctuation-"+i)?' selected="selected"':"")+'">Alphanumerics, Spaces & Punctuation ('+i+" character minimum)</option>";form+='<option value="alphanumerics-spaces-punctuation-'+i+'-e"'+((field.expected==="alphanumerics-spaces-punctuation-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics, Spaces & Punctuation (exactly '+i+" character"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics & Spaces Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-spaces-'+i+'"'+((field.expected==="alphanumerics-spaces-"+i)?' selected="selected"':"")+'">Alphanumerics & Spaces ('+i+" character minimum)</option>";form+='<option value="alphanumerics-spaces-'+i+'-e"'+((field.expected==="alphanumerics-spaces-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics & Spaces (exactly '+i+" character"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics & Punctuation Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-punctuation-'+i+'"'+((field.expected==="alphanumerics-punctuation-"+i)?' selected="selected"':"")+'">Alphanumerics & Punctuation ('+i+" character minimum)</option>";form+='<option value="alphanumerics-punctuation-'+i+'-e"'+((field.expected==="alphanumerics-punctuation-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics & Punctuation (exactly '+i+" character"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-'+i+'"'+((field.expected==="alphanumerics-"+i)?' selected="selected"':"")+'">Alphanumerics ('+i+" character minimum)</option>";form+='<option value="alphanumerics-'+i+'-e"'+((field.expected==="alphanumerics-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics (exactly '+i+" character"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphabetics Only">';for(i=1;i<=25;i++){form+='<option value="alphabetics-'+i+'"'+((field.expected==="alphabetics-"+i)?' selected="selected"':"")+'">Alphabetics ('+i+" character minimum)</option>";form+='<option value="alphabetics-'+i+'-e"'+((field.expected==="alphabetics-"+i+"-e")?' selected="selected"':"")+'">Alphabetics (exactly '+i+" character"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Numeric Digits Only">';for(i=1;i<=25;i++){form+='<option value="numerics-'+i+'"'+((field.expected==="numerics-"+i)?' selected="selected"':"")+'">Numeric Digits ('+i+" digit minimum)</option>";form+='<option value="numerics-'+i+'-e"'+((field.expected==="numerics-"+i+"-e")?' selected="selected"':"")+'">Numeric Digits (exactly '+i+" digit"+((i>1)?"s":"")+")</option>"}form+="</optgroup>";form+="</select><br />";form+="<small>Only Users/Members will be required to meet this criteria.</small><br />";form+="<small>* Administrators are exempt from this.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels">Applicable Membership Levels: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels">';form+='<td colspan="2">';form+='<input type="text" property="levels" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels" value="'+esc_attr(field.levels)+'" /><br />';form+="<small>Please use comma-delimited Level #'s: <code>0,1,2,3,4</code> or type: <code>all</code>.</small><br />";form+="<small>This allows you to enable this field - only at specific Membership Levels.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">Allow Profile Edits: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">';form+='<td colspan="2">';form+='<select property="editable" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">';form+='<option value="yes"'+((field.editable==="yes")?' selected="selected"':"")+'">Yes (editable)</option>';form+='<option value="no"'+((field.editable==="no")?' selected="selected"':"")+'">No (uneditable after registration)</option>';form+='<option value="no-invisible"'+((field.editable==="no-invisible")?' selected="selected"':"")+'">No (uneditable & totally invisible after registration)</option>';form+='<option value="no-always-invisible"'+((field.editable==="no-always-invisible")?' selected="selected"':"")+'">No (uneditable & totally invisible, both during & after registration)</option>';form+='<option value="yes-invisible"'+((field.editable==="yes-invisible")?' selected="selected"':"")+'">Yes (editable after registration / invisible during registration)</option>';form+="</select><br />";form+="<small>If <code>No</code>, this field will be un-editable after registration.</small><br />";form+="<small>* Administrators are exempt from this.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes">CSS Classes: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes">';form+='<td colspan="2">';form+='<input type="text" property="classes" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes" value="'+esc_attr(field.classes)+'" /><br />';form+="<small>Example: <code>my-style-1 my-style-2</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles">CSS Styles: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles">';form+='<td colspan="2">';form+='<input type="text" property="styles" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles" value="'+esc_attr(field.styles)+'" /><br />';form+="<small>Example: <code>color:#000000; background:#FFFFFF;</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs">Other Attributes: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs">';form+='<td colspan="2">';form+='<input type="text" property="attrs" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs" value="'+esc_attr(field.attrs)+'" /><br />';form+='<small>Example: <code>onkeyup="" onblur=""</code></small>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-buttons"><td colspan="2"> </td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-buttons">';form+='<td align="left">';form+='<input type="button" value="Cancel" onclick="ws_plugin__s2member_customRegFieldCancel();" />';form+="</td>";form+='<td align="right">';form+='<input type="button" value="'+((editing)?"Update This Field":"Create Registration Field")+'" onclick="'+((editing)?"ws_plugin__s2member_customRegFieldUpdate("+index+");":"ws_plugin__s2member_customRegFieldCreate();")+'" />';form+="</td>";form+="</tr>";form+="</tbody>";form+="</table>";form+="<div>";$("body").append(form);tb_show(((editing)?"Editing Registration/Profile Field":"New Custom Registration/Profile Field"),"#TB_inline?inlineId=ws-plugin--s2member-custom-reg-field-configuration-thickbox-tools-form");$("table#ws-plugin--s2member-custom-reg-field-configuration-tools-form").show()}$tools.html(html)};var buildTable=function(){var l=fields.length,i=0,html="",eo="o";html+="<tbody>";html+="<tr>";html+="<th>Order</th>";html+="<th>Field Type</th>";html+="<th>Unique ID</th>";html+="<th>Required</th>";html+="<th>Levels</th>";html+="<th>- Tools -</th>";html+="</tr>";if(fields.length>0){for(i=0;i<fields.length;i++){html+='<tr class="'+esc_attr((eo=(eo==="o")?"e":"o"))+((fields[i].section==="yes")?" s":"")+" ws-plugin--s2member-custom-reg-field-configuration-table-row-"+i+'">';html+='<td nowrap="nowrap"><a class="ws-plugin--s2member-custom-reg-field-configuration-move-up" href="#" onclick="ws_plugin__s2member_customRegFieldMoveUp('+i+'); return false;"></a><a class="ws-plugin--s2member-custom-reg-field-configuration-move-down" href="#" onclick="ws_plugin__s2member_customRegFieldMoveDown('+i+'); return false;"></a></td>';html+='<td nowrap="nowrap">'+esc_html(fieldTypeDesc(fields[i].type))+"</td>";html+='<td nowrap="nowrap">'+esc_html(fields[i].id)+"</td>";html+='<td nowrap="nowrap">'+esc_html(fields[i].required)+"</td>";html+='<td nowrap="nowrap">'+esc_html(fields[i].levels)+"</td>";html+='<td nowrap="nowrap"><a class="ws-plugin--s2member-custom-reg-field-configuration-edit" href="#" onclick="ws_plugin__s2member_customRegFieldEdit('+i+'); return false;"></a><a class="ws-plugin--s2member-custom-reg-field-configuration-delete" href="#" onclick="ws_plugin__s2member_customRegFieldDelete('+i+'); return false;"></a></td>';html+="</tr>"}}else{html+="<tr>";html+='<td colspan="6">No Custom Fields are configured.</td>';html+="</tr>"}html+="</tbody>";$table.html(html)};buildTools(),buildTable()})()}}if(location.href.match(/page\=ws-plugin--s2member-res-ops/)){$("input#ws-plugin--s2member-brute-force-restrictions-reset-button").click(function(){var $this=$(this);$this.val("one moment please ...");$.post(ajaxurl,{action:"ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax",ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-delete-reset-all-ip-restrictions-via-ajax")); ?>'},function(response){alert("s2Member's Brute Force Restriction Logs have all been reset."),$this.val("Reset Brute Force Logs")});return false});$("input#ws-plugin--s2member-ip-restrictions-reset-button").click(function(){var $this=$(this);$this.val("one moment please ...");$.post(ajaxurl,{action:"ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax",ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-delete-reset-all-ip-restrictions-via-ajax")); ?>'},function(response){alert("s2Member's IP Restriction Logs have all been reset."),$this.val("Reset IP Restriction Logs")});return false});$('div.ws-plugin--s2member-query-level-access-section input[type="checkbox"][name="ws_plugin__s2member_filter_wp_query[]"]').change(function(){var thisChange=$(this).val();$('div.ws-plugin--s2member-query-level-access-section input[type="checkbox"][name="ws_plugin__s2member_filter_wp_query[]"]').each(function(){var $this=$(this),val=$this.val(),checkboxes='input[type="checkbox"]';if(val==="all"&&this.checked){$this.nextAll(checkboxes).attr({checked:"checked",disabled:"disabled"})}else{if(val==="all"&&!this.checked){$this.nextAll(checkboxes).removeAttr("disabled");(thisChange==="all")?$this.nextAll(checkboxes).removeAttr("checked"):null}}})}).last().trigger("change")}if(location.href.match(/page\=ws-plugin--s2member-down-ops/)){var updateCloudFrontPrivateKey=function(){var $hiddenPrivateKey=$("input#ws-plugin--s2member-amazon-cf-files-private-key");var $visiblePrivateKeyEntry=$("textarea#ws-plugin--s2member-amazon-cf-files-private-key-entry");var hiddenPrivateKeyValue=$.trim($hiddenPrivateKey.val()),visiblePrivateKeyEntryValue=$.trim($visiblePrivateKeyEntry.val());if((hiddenPrivateKeyValue&&!visiblePrivateKeyEntryValue)||visiblePrivateKeyEntryValue.match(/[^\r\n\u25CF]/)){$hiddenPrivateKey.val(visiblePrivateKeyEntryValue),$visiblePrivateKeyEntry.val(visiblePrivateKeyEntryValue.replace(/[^\r\n]/g,String.fromCharCode(9679)))}};$("form#ws-plugin--s2member-options-form").submit(updateCloudFrontPrivateKey);$("textarea#ws-plugin--s2member-amazon-cf-files-private-key-entry").change(updateCloudFrontPrivateKey).trigger("change");var updateCloudFrontDistroCfgs=function(){var $hiddenPrivateKey=$("input#ws-plugin--s2member-amazon-cf-files-private-key");var $visiblePrivateKeyId=$("input#ws-plugin--s2member-amazon-cf-files-private-key-id");var $autoConfigDistros=$("input#ws-plugin--s2member-amazon-cf-files-auto-configure-distros");var $autoConfigDistrosStatus=$("input#ws-plugin--s2member-amazon-cf-files-distros-auto-config-status");var autoConfigDistrosStatusValue=$.trim($autoConfigDistrosStatus.val());var hiddenPrivateKeyValue=$.trim($hiddenPrivateKey.val()),visiblePrivateKeyIdValue=$.trim($visiblePrivateKeyId.val());var hiddenPrivateKeyPrevConfigValue=$.trim($hiddenPrivateKey.attr("data-s-prev-config-value")),visiblePrivateKeyIdPrevConfigValue=$.trim($visiblePrivateKeyId.attr("data-s-prev-config-value"));if(autoConfigDistrosStatusValue==="configured"&&((visiblePrivateKeyIdPrevConfigValue&&visiblePrivateKeyIdValue!==visiblePrivateKeyIdPrevConfigValue)||(hiddenPrivateKeyPrevConfigValue&&hiddenPrivateKeyValue!==hiddenPrivateKeyPrevConfigValue))){alert("s2Member will need to delete and re-configure your Amazon CloudFront distributions if you change this. When you're done editing, click (Save All Changes) below.");$autoConfigDistros.attr("checked","checked")}else{if(autoConfigDistrosStatusValue!=="configured"&&visiblePrivateKeyIdValue&&hiddenPrivateKeyValue){alert("s2Member will need to auto-configure your Amazon CloudFront distributions for you. When you're done editing, click (Save All Changes) below.");$autoConfigDistros.attr("checked","checked")}}};$("input#ws-plugin--s2member-amazon-cf-files-private-key-id").change(updateCloudFrontDistroCfgs);$("textarea#ws-plugin--s2member-amazon-cf-files-private-key-entry").change(updateCloudFrontDistroCfgs);$("input#ws-plugin--s2member-amazon-cf-files-auto-configure-distros-w-cnames").change(function(){var $this=$(this),thisChecked=(this.checked)?true:false;var $autoConfigDistros=$("input#ws-plugin--s2member-amazon-cf-files-auto-configure-distros");var $autoConfigDistroCnames=$("div#ws-plugin--s2member-amazon-cf-files-auto-configure-distro-cnames");(thisChecked)?$autoConfigDistroCnames.show():$autoConfigDistroCnames.hide();(thisChecked)?$autoConfigDistros.attr("checked","checked"):null}).trigger("change")}if(location.href.match(/page\=ws-plugin--s2member-paypal-ops/)){$("select#ws-plugin--s2member-auto-eot-system-enabled").change(function(){var $this=$(this),val=$this.val();var $viaCron=$("p#ws-plugin--s2member-auto-eot-system-enabled-via-cron");if(val==2){$viaCron.show()}else{$viaCron.hide()}})}if(location.href.match(/page\=ws-plugin--s2member-paypal-buttons/)){$("div.ws-menu-page select[id]").filter(function(){return this.id.match(/^ws-plugin--s2member-(level[1-9][0-9]*|modification)-term$/)}).change(function(){var button=this.id.replace(/^ws-plugin--s2member-(.+?)-term$/g,"$1");var trialDisabled=($(this).val().split("-")[2].replace(/[^0-1BN]/g,"")==="BN")?1:0;$("p#ws-plugin--s2member-"+button+"-trial-line").css("display",(trialDisabled?"none":""));$("span#ws-plugin--s2member-"+button+"-trial-then").css("display",(trialDisabled?"none":""));$("span#ws-plugin--s2member-"+button+"-20p-rule").css("display",(trialDisabled?"none":""));(trialDisabled)?$("input#ws-plugin--s2member-"+button+"-trial-period").val(0):null;(trialDisabled)?$("input#ws-plugin--s2member-"+button+"-trial-amount").val("0.00"):null});$("div.ws-menu-page input[id]").filter(function(){return this.id.match(/^ws-plugin--s2member-(level[1-9][0-9]*|modification|ccap)-ccaps$/)}).keyup(function(){var value=this.value.replace(/^(-all|-al|-a|-)[;,]*/gi,""),_all=(this.value.match(/^(-all|-al|-a|-)[;,]*/i))?"-all,":"";if(value.match(/[^a-z_0-9,]/)){this.value=_all+$.trim($.trim(value).replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase())}});ws_plugin__s2member_paypalButtonGenerate=function(button){var shortCodeTemplate='[s2Member-PayPal-Button %%attrs%% image="default" output="button" /]',shortCodeTemplateAttrs="",labels={};eval("<?php echo c_ws_plugin__s2member_utils_strings::esc_dq($labels); ?>");var shortCode=$("input#ws-plugin--s2member-"+button+"-shortcode");var code=$("textarea#ws-plugin--s2member-"+button+"-button");var modLevel=$("select#ws-plugin--s2member-modification-level");var level=(button==="modification")?modLevel.val().split(":",2)[1]:button.replace(/^level/,"");var label=labels["level"+level].replace(/"/g,"");var desc=$.trim($("input#ws-plugin--s2member-"+button+"-desc").val().replace(/"/g,""));var trialAmount=$("input#ws-plugin--s2member-"+button+"-trial-amount").val().replace(/[^0-9\.]/g,"");var trialPeriod=$("input#ws-plugin--s2member-"+button+"-trial-period").val().replace(/[^0-9]/g,"");var trialTerm=$("select#ws-plugin--s2member-"+button+"-trial-term").val().replace(/[^A-Z]/g,"");var regAmount=$("input#ws-plugin--s2member-"+button+"-amount").val().replace(/[^0-9\.]/g,"");var regPeriod=$("select#ws-plugin--s2member-"+button+"-term").val().split("-")[0].replace(/[^0-9]/g,"");var regTerm=$("select#ws-plugin--s2member-"+button+"-term").val().split("-")[1].replace(/[^A-Z]/g,"");var regRecur=$("select#ws-plugin--s2member-"+button+"-term").val().split("-")[2].replace(/[^0-1BN]/g,"");var regRecurTimes="",regRecurRetry="1";var localeCode="",digital="0",noShipping="1";var pageStyle=$.trim($("input#ws-plugin--s2member-"+button+"-page-style").val().replace(/"/g,""));var currencyCode=$("select#ws-plugin--s2member-"+button+"-currency").val().replace(/[^A-Z]/g,"");var cCaps=$.trim($.trim($("input#ws-plugin--s2member-"+button+"-ccaps").val()).replace(/^(-all|-al|-a|-)[;,]*/gi,"").replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase());cCaps=($.trim($("input#ws-plugin--s2member-"+button+"-ccaps").val()).match(/^(-all|-al|-a|-)[;,]*/i))?((cCaps)?"-all,":"-all")+cCaps.toLowerCase():cCaps.toLowerCase();trialPeriod=(regRecur==="BN")?"0":trialPeriod;trialAmount=(!trialAmount||isNaN(trialAmount)||trialAmount<0.01||trialPeriod<=0)?"0":trialAmount;var levelCcapsPer=(regRecur==="BN"&®Term!=="L")?level+":"+cCaps+":"+regPeriod+" "+regTerm:level+":"+cCaps;levelCcapsPer=levelCcapsPer.replace(/\:+$/g,"");if(trialAmount!=="0"&&(isNaN(trialAmount)||trialAmount<0)){alert("— Oops, a slight problem: —\n\nWhen provided, Trial Amount must be >= 0.00");return false}else{if(trialAmount!=="0"&&trialAmount>10000&¤cyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Trial Amount is: 10000.00");return false}else{if(trialTerm==="D"&&trialPeriod>90){alert("— Oops, a slight problem: —\n\nMaximum Trial Days is: 90.\nIf you want to offer more than 90 days, please choose Weeks or Months from the drop-down.");return false}else{if(trialTerm==="W"&&trialPeriod>52){alert("— Oops, a slight problem: —\n\nMaximum Trial Weeks is: 52.\nIf you want to offer more than 52 weeks, please choose Months from the drop-down.");return false}else{if(trialTerm==="M"&&trialPeriod>24){alert("— Oops, a slight problem: —\n\nMaximum Trial Months is: 24.\nIf you want to offer more than 24 months, please choose Years from the drop-down.");return false}else{if(trialTerm==="Y"&&trialPeriod>5){alert("— Oops, a slight problem: —\n\nMax Trial Period Years is: 5.");return false}else{if(!regAmount||isNaN(regAmount)||regAmount<0.01){alert("— Oops, a slight problem: —\n\nAmount must be >= 0.01");return false}else{if(regAmount>10000&¤cyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Amount is: 10000.00");return false}else{if(!desc){alert("— Oops, a slight problem: —\n\nPlease type a Description for this Button.");return false}}}}}}}}}code.html(code.val().replace(/ \<\!--(\<input type\="hidden" name\="(amount|src|srt|sra|a1|p1|t1|a3|p3|t3)" value\="(.*?)" \/\>)--\>/g," $1"));(parseInt(trialPeriod)<=0)?code.html(code.val().replace(/ (\<input type\="hidden" name\="(a1|p1|t1)" value\="(.*?)" \/\>)/g," <!--$1-->")):null;(regRecur==="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="cmd" value\=")(.*?)(" \/\>)/g," $1_xclick$3")):null;(regRecur==="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="(src|srt|sra|a1|p1|t1|a3|p3|t3)" value\="(.*?)" \/\>)/g," <!--$1-->")):null;(regRecur!=="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="cmd" value\=")(.*?)(" \/\>)/g," $1_xclick-subscriptions$3")):null;(regRecur!=="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="amount" value\="(.*?)" \/\>)/g," <!--$1-->")):null;shortCodeTemplateAttrs+=(button==="modification")?'modify="1" ':"";shortCodeTemplateAttrs+='level="'+esc_attr(level)+'" ccaps="'+esc_attr(cCaps)+'" desc="'+esc_attr(desc)+'" ps="'+esc_attr(pageStyle)+'" lc="'+esc_attr(localeCode)+'" cc="'+esc_attr(currencyCode)+'" dg="'+esc_attr(digital)+'" ns="'+esc_attr(noShipping)+'" custom="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"';shortCodeTemplateAttrs+=' ta="'+esc_attr(trialAmount)+'" tp="'+esc_attr(trialPeriod)+'" tt="'+esc_attr(trialTerm)+'" ra="'+esc_attr(regAmount)+'" rp="'+esc_attr(regPeriod)+'" rt="'+esc_attr(regTerm)+'" rr="'+esc_attr(regRecur)+'" rrt="'+esc_attr(regRecurTimes)+'" rra="'+esc_attr(regRecurRetry)+'"';shortCode.val(shortCodeTemplate.replace(/%%attrs%%/,shortCodeTemplateAttrs));code.html(code.val().replace(/ name\="lc" value\="(.*?)"/,' name="lc" value="'+esc_attr(localeCode)+'"'));code.html(code.val().replace(/ name\="no_shipping" value\="(.*?)"/,' name="no_shipping" value="'+esc_attr(noShipping)+'"'));code.html(code.val().replace(/ name\="item_name" value\="(.*?)"/,' name="item_name" value="'+esc_attr(desc)+'"'));code.html(code.val().replace(/ name\="item_number" value\="(.*?)"/,' name="item_number" value="'+esc_attr(levelCcapsPer)+'"'));code.html(code.val().replace(/ name\="page_style" value\="(.*?)"/,' name="page_style" value="'+esc_attr(pageStyle)+'"'));code.html(code.val().replace(/ name\="currency_code" value\="(.*?)"/,' name="currency_code" value="'+esc_attr(currencyCode)+'"'));code.html(code.val().replace(/ name\="custom" value\="(.*?)"/,' name="custom" value="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"'));code.html(code.val().replace(/ name\="modify" value\="(.*?)"/,' name="modify" value="'+((button==="modification")?"1":"0")+'"'));code.html(code.val().replace(/ name\="amount" value\="(.*?)"/,' name="amount" value="'+esc_attr(regAmount)+'"'));code.html(code.val().replace(/ name\="src" value\="(.*?)"/,' name="src" value="'+esc_attr(regRecur)+'"'));code.html(code.val().replace(/ name\="srt" value\="(.*?)"/,' name="srt" value="'+esc_attr(regRecurTimes)+'"'));code.html(code.val().replace(/ name\="sra" value\="(.*?)"/,' name="sra" value="'+esc_attr(regRecurRetry)+'"'));code.html(code.val().replace(/ name\="a1" value\="(.*?)"/,' name="a1" value="'+esc_attr(trialAmount)+'"'));code.html(code.val().replace(/ name\="p1" value\="(.*?)"/,' name="p1" value="'+esc_attr(trialPeriod)+'"'));code.html(code.val().replace(/ name\="t1" value\="(.*?)"/,' name="t1" value="'+esc_attr(trialTerm)+'"'));code.html(code.val().replace(/ name\="a3" value\="(.*?)"/,' name="a3" value="'+esc_attr(regAmount)+'"'));code.html(code.val().replace(/ name\="p3" value\="(.*?)"/,' name="p3" value="'+esc_attr(regPeriod)+'"'));code.html(code.val().replace(/ name\="t3" value\="(.*?)"/,' name="t3" value="'+esc_attr(regTerm)+'"'));$("div#ws-plugin--s2member-"+button+"-button-prev").html(code.val().replace(/\<form/,'<form target="_blank"').replace(/\<\?php echo S2MEMBER_VALUE_FOR_PP_INV\(\); \?\>/g,Math.round(new Date().getTime())+'~<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["REMOTE_ADDR"])); ?>').replace(/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0|ON1|OS1); \?\>/g,""));(button==="modification")?alert("Your Modification Button has been generated.\nPlease copy/paste the Shortcode into your Login Welcome Page, or wherever you feel it would be most appropriate.\n\n* Remember, Modification Buttons should be displayed to existing Users/Members, and they should be logged-in, BEFORE clicking this Button."):alert("Your Button has been generated.\nPlease copy/paste the Shortcode Format into your Membership Options Page.");shortCode.each(function(){this.focus(),this.select()});return false};ws_plugin__s2member_paypalCcapButtonGenerate=function(){var shortCodeTemplate='[s2Member-PayPal-Button %%attrs%% image="default" output="button" /]',shortCodeTemplateAttrs="";var shortCode=$("input#ws-plugin--s2member-ccap-shortcode");var code=$("textarea#ws-plugin--s2member-ccap-button");var desc=$.trim($("input#ws-plugin--s2member-ccap-desc").val().replace(/"/g,""));var regAmount=$("input#ws-plugin--s2member-ccap-amount").val().replace(/[^0-9\.]/g,"");var regPeriod=$("select#ws-plugin--s2member-ccap-term").val().split("-")[0].replace(/[^0-9]/g,"");var regTerm=$("select#ws-plugin--s2member-ccap-term").val().split("-")[1].replace(/[^A-Z]/g,"");var regRecur=$("select#ws-plugin--s2member-ccap-term").val().split("-")[2].replace(/[^0-1BN]/g,"");var localeCode="",digital="0",noShipping="1";var pageStyle=$.trim($("input#ws-plugin--s2member-ccap-page-style").val().replace(/"/g,""));var currencyCode=$("select#ws-plugin--s2member-ccap-currency").val().replace(/[^A-Z]/g,"");var cCaps=$.trim($.trim($("input#ws-plugin--s2member-ccap-ccaps").val()).replace(/^(-all|-al|-a|-)[;,]*/gi,"").replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase());cCaps=($.trim($("input#ws-plugin--s2member-ccap-ccaps").val()).match(/^(-all|-al|-a|-)[;,]*/i))?((cCaps)?"-all,":"-all")+cCaps.toLowerCase():cCaps.toLowerCase();var levelCcapsPer=(regRecur==="BN"&®Term!=="L")?"*:"+cCaps+":"+regPeriod+" "+regTerm:"*:"+cCaps;levelCcapsPer=levelCcapsPer.replace(/\:+$/g,"");if(!cCaps||cCaps==="-all"){alert("— Oops, a slight problem: —\n\nPlease provide at least one Custom Capability.");return false}else{if(!regAmount||isNaN(regAmount)||regAmount<0.01){alert("— Oops, a slight problem: —\n\nAmount must be >= 0.01");return false}else{if(regAmount>10000&¤cyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Amount is: 10000.00");return false}else{if(!desc){alert("— Oops, a slight problem: —\n\nPlease type a Description for this Button.");return false}}}}shortCodeTemplateAttrs+='level="*" ccaps="'+esc_attr(cCaps)+'" desc="'+esc_attr(desc)+'" ps="'+esc_attr(pageStyle)+'" lc="'+esc_attr(localeCode)+'" cc="'+esc_attr(currencyCode)+'" dg="'+esc_attr(digital)+'" ns="'+esc_attr(noShipping)+'"';shortCodeTemplateAttrs+=' custom="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>" ra="'+esc_attr(regAmount)+'" rp="'+esc_attr(regPeriod)+'" rt="'+esc_attr(regTerm)+'" rr="'+esc_attr(regRecur)+'"';shortCode.val(shortCodeTemplate.replace(/%%attrs%%/,shortCodeTemplateAttrs));code.html(code.val().replace(/ name\="lc" value\="(.*?)"/,' name="lc" value="'+esc_attr(localeCode)+'"'));code.html(code.val().replace(/ name\="no_shipping" value\="(.*?)"/,' name="no_shipping" value="'+esc_attr(noShipping)+'"'));code.html(code.val().replace(/ name\="item_name" value\="(.*?)"/,' name="item_name" value="'+esc_attr(desc)+'"'));code.html(code.val().replace(/ name\="item_number" value\="(.*?)"/,' name="item_number" value="'+esc_attr(levelCcapsPer)+'"'));code.html(code.val().replace(/ name\="page_style" value\="(.*?)"/,' name="page_style" value="'+esc_attr(pageStyle)+'"'));code.html(code.val().replace(/ name\="currency_code" value\="(.*?)"/,' name="currency_code" value="'+esc_attr(currencyCode)+'"'));code.html(code.val().replace(/ name\="custom" value\="(.*?)"/,' name="custom" value="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"'));code.html(code.val().replace(/ name\="amount" value\="(.*?)"/,' name="amount" value="'+esc_attr(regAmount)+'"'));$("div#ws-plugin--s2member-ccap-button-prev").html(code.val().replace(/\<form/,'<form target="_blank"').replace(/\<\?php echo S2MEMBER_VALUE_FOR_PP_INV\(\); \?\>/g,Math.round(new Date().getTime())+'~<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["REMOTE_ADDR"])); ?>').replace(/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0|ON1|OS1); \?\>/g,""));alert("Your Button has been generated.\nPlease copy/paste the Shortcode into your Login Welcome Page, or wherever you feel it would be most appropriate.\n\n* Remember, Independent Custom Capability Buttons should ONLY be displayed to existing Users/Members, and they MUST be logged-in, BEFORE clicking this Button.");shortCode.each(function(){this.focus(),this.select()});return false};ws_plugin__s2member_paypalSpButtonGenerate=function(){var shortCodeTemplate='[s2Member-PayPal-Button %%attrs%% image="default" output="button" /]',shortCodeTemplateAttrs="";var shortCode=$("input#ws-plugin--s2member-sp-shortcode");var code=$("textarea#ws-plugin--s2member-sp-button");var leading=$("select#ws-plugin--s2member-sp-leading-id").val().replace(/[^0-9]/g,"");var additionals=$("select#ws-plugin--s2member-sp-additional-ids").val()||[];var hours=$("select#ws-plugin--s2member-sp-hours").val().replace(/[^0-9]/g,"");var regAmount=$("input#ws-plugin--s2member-sp-amount").val().replace(/[^0-9\.]/g,"");var desc=$.trim($("input#ws-plugin--s2member-sp-desc").val().replace(/"/g,""));var localeCode="",digital="0",noShipping="1";var pageStyle=$.trim($("input#ws-plugin--s2member-sp-page-style").val().replace(/"/g,""));var currencyCode=$("select#ws-plugin--s2member-sp-currency").val().replace(/[^A-Z]/g,"");if(!leading){alert("— Oops, a slight problem: —\n\nPlease select a Leading Post/Page.\n\n*Tip* If there are no Posts/Pages in the menu, it's because you've not configured s2Member for Specific Post/Page Access yet. See: s2Member → Restriction Options → Specific Post/Page Access.");return false}else{if(!regAmount||isNaN(regAmount)||regAmount<0.01){alert("— Oops, a slight problem: —\n\nAmount must be >= 0.01");return false}else{if(regAmount>10000&¤cyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Amount is: 10000.00");return false}else{if(!desc){alert("— Oops, a slight problem: —\n\nPlease type a Description for this Button.");return false}}}}for(var i=0,ids=leading;i<additionals.length;i++){if(additionals[i]&&additionals[i]!==leading){ids+=","+additionals[i]}}var spIdsHours="sp:"+ids+":"+hours;shortCodeTemplateAttrs+='sp="1" ids="'+esc_attr(ids)+'" exp="'+esc_attr(hours)+'" desc="'+esc_attr(desc)+'" ps="'+esc_attr(pageStyle)+'" lc="'+esc_attr(localeCode)+'" cc="'+esc_attr(currencyCode)+'" dg="'+esc_attr(digital)+'" ns="'+esc_attr(noShipping)+'"';shortCodeTemplateAttrs+=' custom="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>" ra="'+esc_attr(regAmount)+'"';shortCode.val(shortCodeTemplate.replace(/%%attrs%%/,shortCodeTemplateAttrs));code.html(code.val().replace(/ name\="lc" value\="(.*?)"/,' name="lc" value="'+esc_attr(localeCode)+'"'));code.html(code.val().replace(/ name\="no_shipping" value\="(.*?)"/,' name="no_shipping" value="'+esc_attr(noShipping)+'"'));code.html(code.val().replace(/ name\="item_name" value\="(.*?)"/,' name="item_name" value="'+esc_attr(desc)+'"'));code.html(code.val().replace(/ name\="item_number" value\="(.*?)"/,' name="item_number" value="'+esc_attr(spIdsHours)+'"'));code.html(code.val().replace(/ name\="page_style" value\="(.*?)"/,' name="page_style" value="'+esc_attr(pageStyle)+'"'));code.html(code.val().replace(/ name\="currency_code" value\="(.*?)"/,' name="currency_code" value="'+esc_attr(currencyCode)+'"'));code.html(code.val().replace(/ name\="custom" value\="(.*?)"/,' name="custom" value="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"'));code.html(code.val().replace(/ name\="amount" value\="(.*?)"/,' name="amount" value="'+esc_attr(regAmount)+'"'));$("div#ws-plugin--s2member-sp-button-prev").html(code.val().replace(/\<form/,'<form target="_blank"').replace(/\<\?php echo S2MEMBER_VALUE_FOR_PP_INV\(\); \?\>/g,Math.round(new Date().getTime())+'~<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["REMOTE_ADDR"])); ?>').replace(/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0|ON1|OS1); \?\>/g,""));alert("Your Button has been generated.\nPlease copy/paste the Shortcode into your WordPress Editor.");shortCode.each(function(){this.focus(),this.select()});return false};ws_plugin__s2member_paypalRegLinkGenerate=function(){var level=$("select#ws-plugin--s2member-reg-link-level").val().replace(/[^0-9]/g,"");var subscrID=$.trim($("input#ws-plugin--s2member-reg-link-subscr-id").val());var custom=$.trim($("input#ws-plugin--s2member-reg-link-custom").val());var cCaps=$.trim($.trim($("input#ws-plugin--s2member-reg-link-ccaps").val()).replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase());var fixedTerm=$.trim($("input#ws-plugin--s2member-reg-link-fixed-term").val().replace(/[^A-Z 0-9]/gi,"").toUpperCase());var $link=$("p#ws-plugin--s2member-reg-link"),$loading=$("img#ws-plugin--s2member-reg-link-loading");var levelCcapsPer=(fixedTerm&&!fixedTerm.match(/L$/))?level+":"+cCaps+":"+fixedTerm:level+":"+cCaps;levelCcapsPer=levelCcapsPer.replace(/\:+$/g,"");if(!subscrID){alert("— Oops, a slight problem: —\n\nPaid Subscr. ID is a required value.");return false}else{if(!custom||custom.indexOf('<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq ($_SERVER["HTTP_HOST"]); ?>')!==0){alert("— Oops, a slight problem: —\n\nThe Custom Value MUST start with your domain name.");return false}else{if(fixedTerm&&!fixedTerm.match(/^[1-9]+ (D|W|M|Y|L)$/)){alert("— Oops, a slight problem: —\n\nThe Fixed Term Length is not formatted properly.");return false}}}$link.hide(),$loading.show(),$.post(ajaxurl,{action:"ws_plugin__s2member_reg_access_link_via_ajax",ws_plugin__s2member_reg_access_link_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-reg-access-link-via-ajax")); ?>',s2member_reg_access_link_subscr_gateway:"paypal",s2member_reg_access_link_subscr_id:subscrID,s2member_reg_access_link_custom:custom,s2member_reg_access_link_item_number:levelCcapsPer},function(response){$link.show().html('<a href="'+esc_attr(response)+'" target="_blank" rel="external">'+esc_html(response)+"</a>"),$loading.hide()});return false};ws_plugin__s2member_paypalSpLinkGenerate=function(){var leading=$("select#ws-plugin--s2member-sp-link-leading-id").val().replace(/[^0-9]/g,"");var additionals=$("select#ws-plugin--s2member-sp-link-additional-ids").val()||[];var hours=$("select#ws-plugin--s2member-sp-link-hours").val().replace(/[^0-9]/g,"");var $link=$("p#ws-plugin--s2member-sp-link"),$loading=$("img#ws-plugin--s2member-sp-link-loading");if(!leading){alert("— Oops, a slight problem: —\n\nPlease select a Leading Post/Page.\n\n*Tip* If there are no Posts/Pages in the menu, it's because you've not configured s2Member for Specific Post/Page Access yet. See: s2Member → Restriction Options → Specific Post/Page Access.");return false}for(var i=0,ids=leading;i<additionals.length;i++){if(additionals[i]&&additionals[i]!==leading){ids+=","+additionals[i]}}$link.hide(),$loading.show(),$.post(ajaxurl,{action:"ws_plugin__s2member_sp_access_link_via_ajax",ws_plugin__s2member_sp_access_link_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-sp-access-link-via-ajax")); ?>',s2member_sp_access_link_ids:ids,s2member_sp_access_link_hours:hours},function(response){$link.show().html('<a href="'+esc_attr(response)+'" target="_blank" rel="external">'+esc_html(response)+"</a>"),$loading.hide()});return false}}if(location.href.match(/page\=ws-plugin--s2member-els-ops/)){$("select#ws-plugin--s2member-custom-reg-opt-in").change(function(){var $this=$(this),val=$this.val();var $rows=$("tr.ws-plugin--s2member-custom-reg-opt-in-label-row");var $prevImg=$("img.ws-plugin--s2member-custom-reg-opt-in-label-prev-img");if(val<=0){$rows.css("display","none"),$prevImg.attr("src",$prevImg.attr("src").replace(/\/checked\.png$/,"/unchecked.png"))}else{if(val==1){$rows.css("display",""),$prevImg.attr("src",$prevImg.attr("src").replace(/\/unchecked\.png$/,"/checked.png"))}else{if(val==2){$rows.css("display",""),$prevImg.attr("src",$prevImg.attr("src").replace(/\/checked\.png$/,"/unchecked.png"))}}}});$('div.ws-plugin--s2member-opt-out-section input[type="checkbox"][name="ws_plugin__s2member_custom_reg_auto_opt_outs[]"]').change(function(){var thisChange=$(this).val(),checkedIndexes=[];$('div.ws-plugin--s2member-opt-out-section input[type="checkbox"][name="ws_plugin__s2member_custom_reg_auto_opt_outs[]"]').each(function(){var $this=$(this),val=$this.val(),checkboxes='input[type="checkbox"]';if(val==="removal-deletion"&&this.checked){$this.nextAll(checkboxes).slice(0,2).attr({checked:"checked",disabled:"disabled"})}else{if(val==="removal-deletion"&&!this.checked){$this.nextAll(checkboxes).slice(0,2).removeAttr("disabled");(thisChange==="removal-deletion")?$this.nextAll(checkboxes).slice(0,2).removeAttr("checked"):null}else{if(val==="modification"&&this.checked){$this.nextAll(checkboxes).slice(0,3).attr({checked:"checked",disabled:"disabled"})}else{if(val==="modification"&&!this.checked){(thisChange==="modification")?$this.nextAll(checkboxes).slice(0,3).removeAttr("checked"):null;$this.nextAll(checkboxes).slice(0,3).removeAttr("disabled")}}}}}).each(function(index){(this.checked)?checkedIndexes.push(index):null});$("select#ws-plugin--s2member-custom-reg-auto-opt-out-transitions").removeAttr("disabled");if($.inArray(3,checkedIndexes)===-1&&$.inArray(4,checkedIndexes)===-1&&$.inArray(5,checkedIndexes)===-1&&$.inArray(6,checkedIndexes)===-1){$("select#ws-plugin--s2member-custom-reg-auto-opt-out-transitions").attr("disabled","disabled")}}).last().trigger("change")}});
|
includes/menu-pages/menu-pages-s.css
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
* Core CSS for s2Member menu pages.
|
3 |
*
|
4 |
* Copyright: © 2009-2011
|
5 |
-
* {@link http://
|
6 |
* (coded in the USA)
|
7 |
*
|
8 |
* Released under the terms of the GNU General Public License.
|
2 |
* Core CSS for s2Member menu pages.
|
3 |
*
|
4 |
* Copyright: © 2009-2011
|
5 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
6 |
* (coded in the USA)
|
7 |
*
|
8 |
* Released under the terms of the GNU General Public License.
|
includes/menu-pages/menu-pages-s.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
* Core JavaScript routines for s2Member menu pages.
|
3 |
*
|
4 |
* Copyright: © 2009-2011
|
5 |
-
* {@link http://
|
6 |
* (coded in the USA)
|
7 |
*
|
8 |
* Released under the terms of the GNU General Public License.
|
@@ -161,6 +161,16 @@ jQuery(document).ready(function($)
|
|
161 |
|
162 |
}).trigger /* Fire on ready too. */('change');
|
163 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
if($('input#ws-plugin--s2member-custom-reg-fields').length && $('div#ws-plugin--s2member-custom-reg-field-configuration').length)
|
165 |
{
|
166 |
( /* Wrap these routines inside a function to keep variables within relative scope. */function()
|
2 |
* Core JavaScript routines for s2Member menu pages.
|
3 |
*
|
4 |
* Copyright: © 2009-2011
|
5 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
6 |
* (coded in the USA)
|
7 |
*
|
8 |
* Released under the terms of the GNU General Public License.
|
161 |
|
162 |
}).trigger /* Fire on ready too. */('change');
|
163 |
|
164 |
+
$('select#ws-plugin--s2member-custom-reg-password').change(function()
|
165 |
+
{
|
166 |
+
var $this = $(this), $newUserNotification = $('div#ws-plugin--s2member-new-user-email-details');
|
167 |
+
|
168 |
+
if($this.val() === '1') // Disable this section.
|
169 |
+
$newUserNotification.css('opacity', '0.5');
|
170 |
+
else $newUserNotification.css('opacity', '');
|
171 |
+
|
172 |
+
}).trigger /* Fire on ready too. */('change');
|
173 |
+
|
174 |
if($('input#ws-plugin--s2member-custom-reg-fields').length && $('div#ws-plugin--s2member-custom-reg-field-configuration').length)
|
175 |
{
|
176 |
( /* Wrap these routines inside a function to keep variables within relative scope. */function()
|
includes/menu-pages/menu-pages.css
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
* This file is included with all WordPress themes/plugins by WebSharks, Inc.
|
5 |
*
|
6 |
* Copyright: © 2009-2011
|
7 |
-
* {@link http://
|
8 |
* (coded in the USA)
|
9 |
*
|
10 |
* Released under the terms of the GNU General Public License.
|
@@ -547,6 +547,39 @@ div.ws-menu-page div.ws-menu-page-toolbox > .links a
|
|
547 |
margin : 0 10px 0 10px;
|
548 |
text-decoration : none;
|
549 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
550 |
/*
|
551 |
Specifically for the main layout table.
|
552 |
These CSS selectors address common layout styles.
|
4 |
* This file is included with all WordPress themes/plugins by WebSharks, Inc.
|
5 |
*
|
6 |
* Copyright: © 2009-2011
|
7 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
8 |
* (coded in the USA)
|
9 |
*
|
10 |
* Released under the terms of the GNU General Public License.
|
547 |
margin : 0 10px 0 10px;
|
548 |
text-decoration : none;
|
549 |
}
|
550 |
+
div.ws-menu-page div.ws-menu-page-number-button-tabs
|
551 |
+
{
|
552 |
+
font-size: 110%;
|
553 |
+
display: inline-block;
|
554 |
+
margin: 0 10px 0 10px;
|
555 |
+
}
|
556 |
+
div.ws-menu-page div.ws-menu-page-number-button-tabs > a
|
557 |
+
{
|
558 |
+
margin: 0 5px;
|
559 |
+
padding: 4px 8px;
|
560 |
+
display: inline-block;
|
561 |
+
text-decoration: none !important;
|
562 |
+
|
563 |
+
color: #D0DDAD;
|
564 |
+
background: #97a376;
|
565 |
+
border: 1px solid transparent;
|
566 |
+
border-radius: 4px;
|
567 |
+
}
|
568 |
+
div.ws-menu-page div.ws-menu-page-number-button-tabs > a:first-child
|
569 |
+
{
|
570 |
+
margin-left: 0;
|
571 |
+
}
|
572 |
+
div.ws-menu-page div.ws-menu-page-number-button-tabs > a:last-child
|
573 |
+
{
|
574 |
+
margin-right: 0;
|
575 |
+
}
|
576 |
+
div.ws-menu-page div.ws-menu-page-number-button-tabs > a:hover,
|
577 |
+
div.ws-menu-page div.ws-menu-page-number-button-tabs > a.-current
|
578 |
+
{
|
579 |
+
color: #000000;
|
580 |
+
background: #ffffff;
|
581 |
+
border: 1px solid #73797a;
|
582 |
+
}
|
583 |
/*
|
584 |
Specifically for the main layout table.
|
585 |
These CSS selectors address common layout styles.
|
includes/menu-pages/menu-pages.js
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
* This file is included with all WordPress themes/plugins by WebSharks, Inc.
|
8 |
*
|
9 |
* Copyright: © 2009-2011
|
10 |
-
* {@link http://
|
11 |
* (coded in the USA)
|
12 |
*
|
13 |
* Released under the terms of the GNU General Public License.
|
7 |
* This file is included with all WordPress themes/plugins by WebSharks, Inc.
|
8 |
*
|
9 |
* Copyright: © 2009-2011
|
10 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
11 |
* (coded in the USA)
|
12 |
*
|
13 |
* Released under the terms of the GNU General Public License.
|
includes/menu-pages/mms-ops.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Menu page for the s2Member plugin (Main Multisite Options page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Menu page for the s2Member plugin (Main Multisite Options page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/menu-pages/paypal-buttons.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Menu page for the s2Member plugin (PayPal Button Generator page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -604,7 +604,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_paypal_buttons"))
|
|
604 |
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";
|
605 |
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";
|
606 |
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, <code>1</code> = allows Customers to modify their current Subscription or sign up for a new one, <code>2</code> = allows Customers to only modify their current Subscription.</li>' . "\n";
|
607 |
-
echo '<li><code>ns="
|
608 |
echo '<li><code>output="button"</code> Output Type. Possible values: <code>button</code> = PayPal Button w/hidden inputs, <code>anchor</code> = PayPal Button ( <a> anchor tag ) URL w/ ?query string, <code>url</code> = raw URL w/ ?query string.</li>' . "\n";
|
609 |
echo '<li><code>ps="paypal"</code> PayPal checkout Page Style. Not valid when <code>cancel="1"</code>.</li>' . "\n";
|
610 |
echo '<li><code>ra="0.01"</code> Regular, Buy Now, and/or Recurring Amount. Must be >= <code>0.01</code>. Not valid when <code>cancel="1"</code>.</li>' . "\n";
|
3 |
* Menu page for the s2Member plugin (PayPal Button Generator page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
604 |
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";
|
605 |
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";
|
606 |
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, <code>1</code> = allows Customers to modify their current Subscription or sign up for a new one, <code>2</code> = allows Customers to only modify their current Subscription.</li>' . "\n";
|
607 |
+
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";
|
608 |
echo '<li><code>output="button"</code> Output Type. Possible values: <code>button</code> = PayPal Button w/hidden inputs, <code>anchor</code> = PayPal Button ( <a> anchor tag ) URL w/ ?query string, <code>url</code> = raw URL w/ ?query string.</li>' . "\n";
|
609 |
echo '<li><code>ps="paypal"</code> PayPal checkout Page Style. Not valid when <code>cancel="1"</code>.</li>' . "\n";
|
610 |
echo '<li><code>ra="0.01"</code> Regular, Buy Now, and/or Recurring Amount. Must be >= <code>0.01</code>. Not valid when <code>cancel="1"</code>.</li>' . "\n";
|
includes/menu-pages/paypal-ops.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Menu page for the s2Member plugin (PayPal Options page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Menu page for the s2Member plugin (PayPal Options page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/menu-pages/res-ops.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Menu page for the s2Member plugin (Restriction Options page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Menu page for the s2Member plugin (Restriction Options page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/menu-pages/scripting.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Menu page for the s2Member plugin (API Scripting page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Menu page for the s2Member plugin (API Scripting page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/menu-pages/start.inc.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
@@ -20,7 +20,7 @@ if(!defined('WPINC')) // MUST have WordPress.
|
|
20 |
if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
21 |
{
|
22 |
/**
|
23 |
-
*
|
24 |
*
|
25 |
* @package s2Member\Menu_Pages
|
26 |
* @since 110531
|
@@ -35,7 +35,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
35 |
c_ws_plugin__s2member_menu_pages_tb::display ();
|
36 |
echo '</div>'."\n";
|
37 |
|
38 |
-
echo '<h2>
|
39 |
|
40 |
echo '<table class="ws-menu-page-table">' . "\n";
|
41 |
echo '<tbody class="ws-menu-page-table-tbody">' . "\n";
|
@@ -44,40 +44,18 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
44 |
|
45 |
do_action("ws_plugin__s2member_during_start_page_before_left_sections", get_defined_vars ());
|
46 |
|
47 |
-
if (apply_filters("ws_plugin__s2member_during_start_page_during_left_sections_display_video_tutorials", false, get_defined_vars ()))
|
48 |
-
{
|
49 |
-
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_video_tutorials", get_defined_vars ());
|
50 |
-
|
51 |
-
echo '<div class="ws-menu-page-group" title="Video Tutorials" style="padding-top:5px;">' . "\n";
|
52 |
-
|
53 |
-
echo '<div class="ws-menu-page-section ws-plugin--s2member-registration-process-section">' . "\n";
|
54 |
-
echo '<p><iframe src="//www.youtube.com/embed/videoseries?list=PL8gPolqFnYqtBVz0nVeN2sJgRVednq0jw" width="100%" height="550" frameborder="0" allowfullscreen></iframe></p>' . "\n";
|
55 |
-
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_video_tutorials", get_defined_vars ());
|
56 |
-
echo '</div>' . "\n";
|
57 |
-
|
58 |
-
echo '<div class="ws-menu-page-section ws-plugin--s2member-registration-process-section">' . "\n";
|
59 |
-
echo '<p><iframe src="//www.youtube.com/embed/videoseries?list=PLA40AFC154461862E" width="100%" height="550" frameborder="0" allowfullscreen></iframe></p>' . "\n";
|
60 |
-
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_video_tutorials", get_defined_vars ());
|
61 |
-
echo '</div>' . "\n";
|
62 |
-
|
63 |
-
echo '</div>' . "\n";
|
64 |
-
|
65 |
-
do_action("ws_plugin__s2member_during_start_page_during_left_sections_after_video_tutorials", get_defined_vars ());
|
66 |
-
}
|
67 |
-
|
68 |
if (apply_filters("ws_plugin__s2member_during_start_page_during_left_sections_display_registration_process", true, get_defined_vars ()))
|
69 |
{
|
70 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_registration_process", get_defined_vars ());
|
71 |
|
72 |
-
echo '<div class="ws-menu-page-group" title="The Registration Process">' . "\n";
|
73 |
|
74 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-registration-process-section">' . "\n";
|
75 |
-
echo '<
|
76 |
-
echo '<p>
|
77 |
-
echo '<p>
|
78 |
-
echo '<p>
|
79 |
-
echo '<p>
|
80 |
-
echo '<p>4. Once a User has completed checkout and registered a Username & Password, they\'ll be able to log in. The first page they\'ll see after logging in, will be your Login Welcome Page <em>(which you\'ll need to configure on the s2Member General Options panel)</em>. Your Login Welcome Page can contain whatever you like. You\'ll need to design this Page in WordPress.</p>' . "\n";
|
81 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_registration_process", get_defined_vars ());
|
82 |
echo '</div>' . "\n";
|
83 |
|
@@ -90,12 +68,11 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
90 |
{
|
91 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_log_reg_form", get_defined_vars ());
|
92 |
|
93 |
-
echo '<div class="ws-menu-page-group" title="Your Login/Registration Form">' . "\n";
|
94 |
|
95 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-login-reg-form-section">' . "\n";
|
96 |
-
echo '<
|
97 |
-
echo '<p>s2Member uses the
|
98 |
-
echo '<p>Since s2Member uses the default Login/Registration system for WordPress, s2Member is also compatible with themes and other plugins <em>(such as BuddyPress)</em>. If your theme has a login form built-in already, chances are, it\'s perfectly compatible with s2Member. There are also many plugins available that are designed to place login forms into your Sidebar; and many of those are also compatible with s2Member\'s integration. If you have any trouble, please check the <a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank" rel="external">s2Member Forums</a> for assistance.</p>' . "\n";
|
99 |
echo ((is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && is_main_site ()) || c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '<div class="ws-menu-page-hr"></div>' . "\n" : '';
|
100 |
echo (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && is_main_site ()) ? '<p><em>The Main Site of a Multisite Blog Farm uses a different Registration Form. See: <strong>s2Member → General Options → Registration/Profile Fields</strong>.</em></p>' . "\n" : '';
|
101 |
echo (c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '<p><em><strong>BuddyPress:</strong> BuddyPress will use its own Registration Form. See: <strong>s2Member → General Options → Registration/Profile Fields</strong>.</em></p>' . "\n" : '';
|
@@ -111,14 +88,13 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
111 |
{
|
112 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_login_welcome_page", get_defined_vars ());
|
113 |
|
114 |
-
echo '<div class="ws-menu-page-group" title="Your Login Welcome Page">' . "\n";
|
115 |
|
116 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-login-welcome-page-section">' . "\n";
|
117 |
-
echo '<h3>Your Login Welcome Page (you create this in WordPress)</h3>' . "\n";
|
118 |
echo '<p>You create this special Page in WordPress. This is a "Page" not a Post. This is the first page Members will see after logging into your site.</p>' . "\n";
|
119 |
-
echo '<p>You should go ahead and create an empty Page now, before you start configuring everything. Title it: <code>My Login Welcome Page</code
|
120 |
-
echo '<p>Once you have all of your <strong>s2Member → General Options</strong> configured, and once you have a basic understanding of how s2Member works, go back and customize the title and content for this Page. You\'ll want to be creative with your Login Welcome Page. However, you should configure your <strong>s2Member → General Options</strong> first
|
121 |
-
echo (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? '<p><strong>See also:</strong> This KB article: <a href="http://
|
122 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_login_welcome_page", get_defined_vars ());
|
123 |
echo '</div>' . "\n";
|
124 |
|
@@ -131,13 +107,12 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
131 |
{
|
132 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_membership_options_page", get_defined_vars ());
|
133 |
|
134 |
-
echo '<div class="ws-menu-page-group" title="Your Membership Options Page">' . "\n";
|
135 |
|
136 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-membership-options-page-section">' . "\n";
|
137 |
-
echo '<h3>Your Membership Options Page (you create this in WordPress)</h3>' . "\n";
|
138 |
echo '<p>You create this special Page in WordPress. This is a "Page" not a Post. s2Member comes with a PayPal Button Generator. You will generate PayPal Buttons with s2Member, for each Membership Level that you plan to offer. Those buttons will be inserted into your Membership Options Page. If a User in the general public attempts to access an area of your site that is being protected by s2Member <em>(based on your configuration)</em>, s2Member will redirect the User to your Membership Options Page, where they can signup through PayPal and become a Member.</p>' . "\n";
|
139 |
-
echo '<p>You should go ahead and create an empty Page now, before you start configuring everything. Title it: <code>My Membership Options Page</code
|
140 |
-
echo '<p>Once you have all of your <strong>s2Member → General Options</strong> configured, and once you have a basic understanding of how s2Member works, go back and customize the title and content for this Page. You\'ll want to be creative with your Membership Options Page. However, you should configure your <strong>s2Member → General Options</strong> first
|
141 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_membership_options_page", get_defined_vars ());
|
142 |
echo '</div>' . "\n";
|
143 |
|
@@ -150,12 +125,11 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
150 |
{
|
151 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_general_options", get_defined_vars ());
|
152 |
|
153 |
-
echo '<div class="ws-menu-page-group" title="Your s2Member → General Options">' . "\n";
|
154 |
|
155 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-general-options-section">' . "\n";
|
156 |
-
echo '<
|
157 |
-
echo '<p>
|
158 |
-
echo '<p>From your s2Member General Options Panel you can setup the basics of your Membership offering. Including the design of your Login/Registration Form, any Custom Registration/Profile Fields you\'d like to create, Labels for each Membership Level, Open Registration (on/off), a Profile Editing Panel for Members, and more.</p>' . "\n";
|
159 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_general_options", get_defined_vars ());
|
160 |
echo '</div>' . "\n";
|
161 |
|
@@ -168,14 +142,13 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
168 |
{
|
169 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_restriction_options", get_defined_vars ());
|
170 |
|
171 |
-
echo '<div class="ws-menu-page-group" title="Your s2Member → Restriction Options">' . "\n";
|
172 |
|
173 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-restriction-options-section">' . "\n";
|
174 |
-
echo '<
|
175 |
-
echo '<p>
|
176 |
-
echo '<p>From your s2Member Restriction Options Panel you may restrict access to certain Posts, Pages, Tags, Categories, and/or URIs based on a Member\'s Level. The s2Member Options Panel makes it easy for you. All you do is type in the basics of what you want to restrict access to, and those sections of your site will be off limits to non-Members.</p>' . "\n";
|
177 |
echo (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? '<p>That being said, there are times when you might need to have greater control over which portions of your site can be viewed by non-Members, or Members at different Levels. This is where API Scripting with Conditionals comes in. <em>For more information, please check your Dashboard here: <strong>s2Member → API Scripting</strong></em>.</p>' . "\n" : '';
|
178 |
-
echo (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? '<p><strong>See also:</strong> This KB article: <a href="http://
|
179 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_restriction_options", get_defined_vars ());
|
180 |
echo '</div>' . "\n";
|
181 |
|
@@ -188,12 +161,11 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
188 |
{
|
189 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_automation_process", get_defined_vars ());
|
190 |
|
191 |
-
echo '<div class="ws-menu-page-group" title="Cancellations / Expirations / Terminations">' . "\n";
|
192 |
|
193 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-automation-process-section">' . "\n";
|
194 |
-
echo '<h3>Subscription Cancellations / Expirations / Terminations</h3>' . "\n";
|
195 |
echo '<p>You\'ll be happy to know that s2Member handles cancellations, expirations, failed payments, terminations <em>(e.g., refunds & chargebacks)</em> for you automatically. If you log into your PayPal account and cancel a Member\'s Subscription, or, if the Member logs into their PayPal account and cancels their own Subscription, s2Member will be notified of these important changes and react accordingly through the PayPal IPN service that runs silently behind-the-scene.</p>' . "\n";
|
196 |
-
echo '<p>The PayPal IPN service will notify s2Member whenever a Member\'s payments have been failing
|
197 |
echo '<p><em><strong>Some Hairy Details:</strong> There might be times whenever you notice that a Member\'s Subscription has been cancelled through PayPal... but, s2Member continues allowing the User access to your site as a paid Member. Please don\'t be confused by this... in 99.9% of these cases, the reason for this is legitimate. s2Member will only remove the User\'s Membership privileges when an EOT (End Of Term) is processed, a refund occurs, a chargeback occurs, or when a cancellation occurs; which would later result in a delayed Auto-EOT by s2Member.</em></p>' . "\n";
|
198 |
echo '<p><em>s2Member will not process an EOT until the User has completely used up the time they paid for. In other words, if a User signs up for a monthly Subscription on Jan 1st, and then cancels their Subscription on Jan 15th; technically, they should still be allowed to access the site for another 15 days, and then on Feb 1st, the time they paid for has completely elapsed. At that time, s2Member will remove their Membership privileges; by either demoting them to a Free Subscriber, or deleting their account from the system (based on your configuration). s2Member also calculates one extra day (24 hours) into its equation, just to make sure access is not removed sooner than a Customer might expect.</em></p>' . "\n";
|
199 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_automation_process", get_defined_vars ());
|
@@ -208,12 +180,11 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
208 |
{
|
209 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_upgrading_downgrading", get_defined_vars ());
|
210 |
|
211 |
-
echo '<div class="ws-menu-page-group" title="Upgrading/Downgrading Accounts">' . "\n";
|
212 |
|
213 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-upgrading-downgrading-section">' . "\n";
|
214 |
-
echo '<h3>Upgrading and/or Downgrading User Accounts</h3>' . "\n";
|
215 |
echo '<p>s2Member builds upon existing functionality offered through WordPress Roles and Capabilities. From your WordPress Dashboard, go to: <code>Users</code>. You can use bulk actions to modify Member Access Levels all at once, or click on an individual Member account to modify only their specific Access Level. If you want to temporarily demote a Member so they cannot access Membership privileges, set their Role to Subscriber. When you\'re ready to give them their Membership privileges back, change their Role back to one of the s2Member Levels.</p>' . "\n";
|
216 |
-
echo '<p>All financial details, such as pricing, trial periods, subscription lengths, refunds, and other Customer service issues
|
217 |
echo '<p>That being said, if you log into your WordPress Dashboard and delete a Member\'s account, you will still need to log into PayPal and cancel billing for the account you deleted. In other words, s2Member can be notified automatically about actions you take inside PayPal\'s interface, but PayPal cannot be notified of actions you take inside your WordPress Dashboard. At least, not in an automated fashion, as that would create a security issue for PayPal. Thus, automation works seamlessly from PayPal » s2Member, but not the other way around.</p>' . "\n";
|
218 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_upgrading_downgrading", get_defined_vars ());
|
219 |
echo '</div>' . "\n";
|
@@ -237,15 +208,14 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
237 |
{
|
238 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_reg_before_checkout", get_defined_vars ());
|
239 |
|
240 |
-
echo '<div class="ws-menu-page-group" title="Registration Before Checkout?">' . "\n";
|
241 |
|
242 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-reg-before-checkout-section">' . "\n";
|
243 |
-
echo '<
|
244 |
-
echo '<p>
|
245 |
-
echo '<p>That being said, we believe the <em>ideal</em> approach is a <em>combined Checkout/Registration process</em>; in just one simple step <em>(available with <a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Add-on / Prices")) . '" target="_blank" rel="external">s2Member Pro</a> using Stripe™ (most popular), PayPal Pro integration, or through Authorize.Net integration)</em>. However, even with PayPal Standard Buttons, there is a way to accomplish Registration Before Checkout, thereby reversing the process—if you prefer it that way.</p>'."\n";
|
246 |
echo '<p>With PayPal Standard Buttons, Registration before Checkout is accomplished by turning Open Registration <code>(on)</code>, and then making a PayPal Button available to Free Subscribers at Level #0. In other words, you can let Visitors register for free at Level #0 <em>(where they have access to very little perhaps)</em>, and then charge them for access to higher Member Levels [1-4]. For further details, please check your WordPress Dashboard here: <strong>s2Member → General Options → Open Registration</strong>.</p>' . "\n";
|
247 |
-
echo '<p><em>s2Member\'s Simple Conditionals can help you
|
248 |
-
echo (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? '<p><strong>See also:</strong> This KB article: <a href="http://
|
249 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_reg_before_checkout", get_defined_vars ());
|
250 |
echo '</div>' . "\n";
|
251 |
|
@@ -258,11 +228,10 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
258 |
{
|
259 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_themes", get_defined_vars ());
|
260 |
|
261 |
-
echo '<div class="ws-menu-page-group" title="Choosing The Perfect WordPress Theme">' . "\n";
|
262 |
|
263 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-themes">' . "\n";
|
264 |
-
echo '<
|
265 |
-
echo '<p>We recommend <a href="http://www.s2member.com/r/themeforest/" target="_blank" rel="external">ThemeForest</a>. This is a great place to find the perfect theme for your installation of WordPress—at very affordable prices.</p>' . "\n";
|
266 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_themes", get_defined_vars ());
|
267 |
echo '</div>' . "\n";
|
268 |
echo '</div>' . "\n";
|
@@ -274,12 +243,12 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
274 |
{
|
275 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_pro", get_defined_vars ());
|
276 |
|
277 |
-
echo '<div class="ws-menu-page-group" title="Upgrading to s2Member Pro<em>!</em>">' . "\n";
|
278 |
|
279 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-pro">' . "\n";
|
280 |
echo '<h3>s2Member Pro—A Recommended Upgrade</h3>' . "\n";
|
281 |
-
echo '<p>Among many other features/enhancements, <a href="http://
|
282 |
-
echo '<p><strong>Learn more here:</strong> <a href="http://
|
283 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_pro", get_defined_vars ());
|
284 |
echo '</div>' . "\n";
|
285 |
|
@@ -292,17 +261,16 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
292 |
{
|
293 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_help", get_defined_vars ());
|
294 |
|
295 |
-
echo '<div class="ws-menu-page-group" title="Getting Help w/ s2Member">' . "\n";
|
296 |
|
297 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-help">' . "\n";
|
298 |
-
echo '<
|
299 |
-
echo '<p>
|
300 |
-
echo '<p><strong>See also:</strong> <a href="http://www.s2member.com/kb/common-troubleshooting-tips/" target="_blank" rel="external">s2Member Troubleshooting Guide</a> (please read this first if you\'re having trouble).</p>'."\n";
|
301 |
|
302 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
303 |
|
304 |
echo '<h3 style="margin-bottom:0;">Testing Server Compatibility</h3>'."\n";
|
305 |
-
echo '<p>Please download the <a href="http://
|
306 |
|
307 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
308 |
|
@@ -311,9 +279,9 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
311 |
|
312 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
313 |
|
314 |
-
echo '<h3 style="margin-bottom:0;">Search s2Member KB Articles
|
315 |
-
echo '<form method="get" action="http://
|
316 |
-
echo '<p><input type="text" name="
|
317 |
echo '</form>'."\n";
|
318 |
|
319 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_help", get_defined_vars ());
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Getting Started.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
20 |
if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
21 |
{
|
22 |
/**
|
23 |
+
* Getting Started.
|
24 |
*
|
25 |
* @package s2Member\Menu_Pages
|
26 |
* @since 110531
|
35 |
c_ws_plugin__s2member_menu_pages_tb::display ();
|
36 |
echo '</div>'."\n";
|
37 |
|
38 |
+
echo '<h2>Getting Started w/ s2Member®</h2>' . "\n";
|
39 |
|
40 |
echo '<table class="ws-menu-page-table">' . "\n";
|
41 |
echo '<tbody class="ws-menu-page-table-tbody">' . "\n";
|
44 |
|
45 |
do_action("ws_plugin__s2member_during_start_page_before_left_sections", get_defined_vars ());
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
if (apply_filters("ws_plugin__s2member_during_start_page_during_left_sections_display_registration_process", true, get_defined_vars ()))
|
48 |
{
|
49 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_registration_process", get_defined_vars ());
|
50 |
|
51 |
+
echo '<div class="ws-menu-page-group" title="The Registration Process" default-state="open">' . "\n";
|
52 |
|
53 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-registration-process-section">' . "\n";
|
54 |
+
echo '<p>1. Users will go to your Membership Options Page (which you may configure; see: <em><strong>Dashboard → s2Member → General Options → Membership Options Page</strong></em>). On this Membership Options Page (that you create in WordPress) you\'ll insert the PayPal Subscription Buttons that were generated for you by s2Member.</p>' . "\n";
|
55 |
+
echo '<p>2. A User will click on a PayPal Subscription Button from your Membership Options Page. They will be transferred over to PayPal in order to agree to your Membership terms and pricing. You can customize the Checkout Page Style, Pricing, Payment Periods, and more, whenever you generate your PayPal Buttons through s2Member.</p>' . "\n";
|
56 |
+
echo '<p>3. Once a User has completed the Subscription Signup Process at PayPal, they\'ll be returned to your site, where they\'ll be activated by s2Member instantly, and given the opportunity to register a Username & Password for their Membership. <em>(Note: they\'ll be allowed to register a Username & Password even if you\'ve set \'Anyone Can Register\' to `Off` in your General WordPress options, because s2Member identifies the User as having paid for Membership access through PayPal)</em>.</p>' . "\n";
|
57 |
+
echo '<p>s2Member will also send the User an email with instructions on how to register their Username & Password, just in case they missed anything after checkout. That email will be sent to their PayPal email address. Much of this is handled through the PayPal IPN service behind-the-scenes, where PayPal and s2Member communicate with each other.</p>' . "\n";
|
58 |
+
echo '<p>4. Once a User has completed checkout and registered a Username & Password, they\'ll be able to log in. The first page they\'ll see after logging in will be your Login Welcome Page <em>(which you\'ll need to configure in the s2Member General Options panel)</em>. Your Login Welcome Page can contain whatever you like. You can design this Page in WordPress.</p>' . "\n";
|
|
|
59 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_registration_process", get_defined_vars ());
|
60 |
echo '</div>' . "\n";
|
61 |
|
68 |
{
|
69 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_log_reg_form", get_defined_vars ());
|
70 |
|
71 |
+
echo '<div class="ws-menu-page-group" title="Your Login/Registration Form" default-state="open">' . "\n";
|
72 |
|
73 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-login-reg-form-section">' . "\n";
|
74 |
+
echo '<p>s2Member uses the existing WordPress Login/Registration system. This is the same Login/Registration Form that you use to access your WP Dashboard. However, with s2Member installed, your Login/Registration Forms can be customized <em>(i.e., re-branded)</em>. <em>See: <strong>s2Member → General Options → Login/Registration Design</strong>.</em> You can make the default Login/Registration Forms match your WordPress theme design by changing the background color/image, your logo image, add Custom Fields, and more<em>!</em></p>' . "\n";
|
75 |
+
echo '<p>Since s2Member uses the default Login/Registration system for WordPress, s2Member is also compatible with themes and other plugins <em>(such as BuddyPress)</em>. If your theme has a login form built-in already, chances are, it\'s perfectly compatible with s2Member. There are also many plugins available that are designed to place login forms into your Sidebar. Many of those are also compatible with s2Member\'s integration. If you have any trouble, please check the <a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank" rel="external">s2Member Forums</a> for assistance.</p>' . "\n";
|
|
|
76 |
echo ((is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && is_main_site ()) || c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '<div class="ws-menu-page-hr"></div>' . "\n" : '';
|
77 |
echo (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && is_main_site ()) ? '<p><em>The Main Site of a Multisite Blog Farm uses a different Registration Form. See: <strong>s2Member → General Options → Registration/Profile Fields</strong>.</em></p>' . "\n" : '';
|
78 |
echo (c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '<p><em><strong>BuddyPress:</strong> BuddyPress will use its own Registration Form. See: <strong>s2Member → General Options → Registration/Profile Fields</strong>.</em></p>' . "\n" : '';
|
88 |
{
|
89 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_login_welcome_page", get_defined_vars ());
|
90 |
|
91 |
+
echo '<div class="ws-menu-page-group" title="Your Login Welcome Page" default-state="open">' . "\n";
|
92 |
|
93 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-login-welcome-page-section">' . "\n";
|
|
|
94 |
echo '<p>You create this special Page in WordPress. This is a "Page" not a Post. This is the first page Members will see after logging into your site.</p>' . "\n";
|
95 |
+
echo '<p>You should go ahead and create an empty Page now, before you start configuring everything. Title it: <code>My Login Welcome Page</code> and click Publish.</p>' . "\n";
|
96 |
+
echo '<p>Once you have all of your <strong>s2Member → General Options</strong> configured, and once you have a basic understanding of how s2Member works, go back and customize the title and content for this Page. You\'ll want to be creative with your Login Welcome Page. However, you should configure your <strong>s2Member → General Options</strong> first and test things out. That way you\'ll understand why this Page is important.</p>' . "\n";
|
97 |
+
echo (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? '<p><strong>See also:</strong> This KB article: <a href="http://s2member.com/r/customizing-login-welcome-page/" target="_blank" rel="external">Customizing Your Login Welcome Page</a>.</p>'."\n" : '';
|
98 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_login_welcome_page", get_defined_vars ());
|
99 |
echo '</div>' . "\n";
|
100 |
|
107 |
{
|
108 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_membership_options_page", get_defined_vars ());
|
109 |
|
110 |
+
echo '<div class="ws-menu-page-group" title="Your Membership Options Page" default-state="open">' . "\n";
|
111 |
|
112 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-membership-options-page-section">' . "\n";
|
|
|
113 |
echo '<p>You create this special Page in WordPress. This is a "Page" not a Post. s2Member comes with a PayPal Button Generator. You will generate PayPal Buttons with s2Member, for each Membership Level that you plan to offer. Those buttons will be inserted into your Membership Options Page. If a User in the general public attempts to access an area of your site that is being protected by s2Member <em>(based on your configuration)</em>, s2Member will redirect the User to your Membership Options Page, where they can signup through PayPal and become a Member.</p>' . "\n";
|
114 |
+
echo '<p>You should go ahead and create an empty Page now, before you start configuring everything. Title it: <code>My Membership Options Page</code> and click Publish.</p>' . "\n";
|
115 |
+
echo '<p>Once you have all of your <strong>s2Member → General Options</strong> configured, and once you have a basic understanding of how s2Member works, go back and customize the title and content for this Page. You\'ll want to be creative with your Membership Options Page. However, you should configure your <strong>s2Member → General Options</strong> first and test things out. That way you\'ll understand why this Page is important.</p>' . "\n";
|
116 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_membership_options_page", get_defined_vars ());
|
117 |
echo '</div>' . "\n";
|
118 |
|
125 |
{
|
126 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_general_options", get_defined_vars ());
|
127 |
|
128 |
+
echo '<div class="ws-menu-page-group" title="Your s2Member → General Options" default-state="open">' . "\n";
|
129 |
|
130 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-general-options-section">' . "\n";
|
131 |
+
echo '<p>Once you have a Login Welcome Page and a Membership Options Page. Go to: <strong>s2Member → General Options</strong></p>' . "\n";
|
132 |
+
echo '<p>From the s2Member General Options Panel you can setup your Membership offering. Including the design of your Login/Registration Form, any Custom Registration/Profile Fields you\'d like to create, Labels for each Membership Level, Open Registration (on/off), a Profile Editing Panel for Members, and more.</p>' . "\n";
|
|
|
133 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_general_options", get_defined_vars ());
|
134 |
echo '</div>' . "\n";
|
135 |
|
142 |
{
|
143 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_restriction_options", get_defined_vars ());
|
144 |
|
145 |
+
echo '<div class="ws-menu-page-group" title="Your s2Member → Restriction Options" default-state="open">' . "\n";
|
146 |
|
147 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-restriction-options-section">' . "\n";
|
148 |
+
echo '<p>Once you have a Login Welcome Page and a Membership Options Page. Go to: <strong>s2Member → Restriction Options</strong></p>' . "\n";
|
149 |
+
echo '<p>From the s2Member Restriction Options Panel you may restrict access to certain Posts, Pages, Tags, Categories, and/or URIs based on a Member\'s Level. The s2Member Options Panel makes it easy for you. All you do is type in the basics of what you want to restrict access to and those sections of your site will be off limits to non-Members.</p>' . "\n";
|
|
|
150 |
echo (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? '<p>That being said, there are times when you might need to have greater control over which portions of your site can be viewed by non-Members, or Members at different Levels. This is where API Scripting with Conditionals comes in. <em>For more information, please check your Dashboard here: <strong>s2Member → API Scripting</strong></em>.</p>' . "\n" : '';
|
151 |
+
echo (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? '<p><strong>See also:</strong> This KB article: <a href="http://s2member.com/r/simple-shortcode-conditionals/" target="_blank" rel="external">Simple Shortcode Conditionals</a>.</p>'."\n" : '';
|
152 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_restriction_options", get_defined_vars ());
|
153 |
echo '</div>' . "\n";
|
154 |
|
161 |
{
|
162 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_automation_process", get_defined_vars ());
|
163 |
|
164 |
+
echo '<div class="ws-menu-page-group" title="Cancellations / Expirations / Terminations" default-state="open">' . "\n";
|
165 |
|
166 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-automation-process-section">' . "\n";
|
|
|
167 |
echo '<p>You\'ll be happy to know that s2Member handles cancellations, expirations, failed payments, terminations <em>(e.g., refunds & chargebacks)</em> for you automatically. If you log into your PayPal account and cancel a Member\'s Subscription, or, if the Member logs into their PayPal account and cancels their own Subscription, s2Member will be notified of these important changes and react accordingly through the PayPal IPN service that runs silently behind-the-scene.</p>' . "\n";
|
168 |
+
echo '<p>The PayPal IPN service will notify s2Member whenever a Member\'s payments have been failing and/or whenever a Member\'s Subscription has expired for any reason. Even refunds & chargeback reversals are supported through the IPN service. If you issue a refund to an unhappy Customer through PayPal, s2Member will be notified and the account for that Customer will either be demoted to a Free Subscriber or deleted automatically <em>(based on your configuration)</em>. The communication from PayPal → s2Member is seamless.</p>' . "\n";
|
169 |
echo '<p><em><strong>Some Hairy Details:</strong> There might be times whenever you notice that a Member\'s Subscription has been cancelled through PayPal... but, s2Member continues allowing the User access to your site as a paid Member. Please don\'t be confused by this... in 99.9% of these cases, the reason for this is legitimate. s2Member will only remove the User\'s Membership privileges when an EOT (End Of Term) is processed, a refund occurs, a chargeback occurs, or when a cancellation occurs; which would later result in a delayed Auto-EOT by s2Member.</em></p>' . "\n";
|
170 |
echo '<p><em>s2Member will not process an EOT until the User has completely used up the time they paid for. In other words, if a User signs up for a monthly Subscription on Jan 1st, and then cancels their Subscription on Jan 15th; technically, they should still be allowed to access the site for another 15 days, and then on Feb 1st, the time they paid for has completely elapsed. At that time, s2Member will remove their Membership privileges; by either demoting them to a Free Subscriber, or deleting their account from the system (based on your configuration). s2Member also calculates one extra day (24 hours) into its equation, just to make sure access is not removed sooner than a Customer might expect.</em></p>' . "\n";
|
171 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_automation_process", get_defined_vars ());
|
180 |
{
|
181 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_upgrading_downgrading", get_defined_vars ());
|
182 |
|
183 |
+
echo '<div class="ws-menu-page-group" title="Upgrading/Downgrading Accounts" default-state="open">' . "\n";
|
184 |
|
185 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-upgrading-downgrading-section">' . "\n";
|
|
|
186 |
echo '<p>s2Member builds upon existing functionality offered through WordPress Roles and Capabilities. From your WordPress Dashboard, go to: <code>Users</code>. You can use bulk actions to modify Member Access Levels all at once, or click on an individual Member account to modify only their specific Access Level. If you want to temporarily demote a Member so they cannot access Membership privileges, set their Role to Subscriber. When you\'re ready to give them their Membership privileges back, change their Role back to one of the s2Member Levels.</p>' . "\n";
|
187 |
+
echo '<p>All financial details, such as pricing, trial periods, subscription lengths, refunds, and other Customer service issues, should be handled by you—through your PayPal account; not through WordPress. Feel free to modify your Members\' Subscriptions via PayPal as often as you like. s2Member will be notified through the PayPal IPN service behind-the-scenes automatically. For example, if you log into PayPal and cancel a Member\'s paid Subscription, s2Member will be notified by PayPal behind-the-scenes, and s2Member will remove their Membership privileges at the correct point in time.</p>' . "\n";
|
188 |
echo '<p>That being said, if you log into your WordPress Dashboard and delete a Member\'s account, you will still need to log into PayPal and cancel billing for the account you deleted. In other words, s2Member can be notified automatically about actions you take inside PayPal\'s interface, but PayPal cannot be notified of actions you take inside your WordPress Dashboard. At least, not in an automated fashion, as that would create a security issue for PayPal. Thus, automation works seamlessly from PayPal » s2Member, but not the other way around.</p>' . "\n";
|
189 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_upgrading_downgrading", get_defined_vars ());
|
190 |
echo '</div>' . "\n";
|
208 |
{
|
209 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_reg_before_checkout", get_defined_vars ());
|
210 |
|
211 |
+
echo '<div class="ws-menu-page-group" title="Registration Before Checkout?" default-state="open">' . "\n";
|
212 |
|
213 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-reg-before-checkout-section">' . "\n";
|
214 |
+
echo '<p>By default, s2Member will send a Customer directly to PayPal, and only after checkout is completed does the Customer have the ability to register a Username/Password for access to your site. This process works very well in most cases, and it has the benefit of increasing conversion rates, because there are fewer obstacles for the Customer on their way to the actual checkout process at PayPal.</p>' . "\n";
|
215 |
+
echo '<p>That being said, we believe the <em>ideal</em> approach is a <em>combined</em> Checkout/Registration process; in just one simple step <em>(available with <a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Add-on / Prices")) . '" target="_blank" rel="external">s2Member Pro</a> using Stripe™ (most popular), PayPal Pro integration, or through Authorize.Net)</em>. However, even with PayPal Standard Buttons, there is a way to accomplish Registration Before Checkout, thereby reversing the process—if you prefer it that way.</p>'."\n";
|
|
|
216 |
echo '<p>With PayPal Standard Buttons, Registration before Checkout is accomplished by turning Open Registration <code>(on)</code>, and then making a PayPal Button available to Free Subscribers at Level #0. In other words, you can let Visitors register for free at Level #0 <em>(where they have access to very little perhaps)</em>, and then charge them for access to higher Member Levels [1-4]. For further details, please check your WordPress Dashboard here: <strong>s2Member → General Options → Open Registration</strong>.</p>' . "\n";
|
217 |
+
echo '<p><em>s2Member\'s Simple Conditionals can help with you too. For instance, you could integrate a special PayPal Button on your Login Welcome Page that will only be seen by Free Subscribers at Level #0. Please check your WordPress Dashboard under: <strong>s2Member → Restriction Options → Simple Shortcode Conditionals</strong>. We also suggest reading over the documentation on PayPal Modification Buttons. See: <strong>s2Member → PayPal Buttons → Subscr. Modification Buttons</strong>.</em></p>' . "\n";
|
218 |
+
echo (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? '<p><strong>See also:</strong> This KB article: <a href="http://s2member.com/r/simple-shortcode-conditionals/" target="_blank" rel="external">Simple Shortcode Conditionals</a>.</p>'."\n" : '';
|
219 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_reg_before_checkout", get_defined_vars ());
|
220 |
echo '</div>' . "\n";
|
221 |
|
228 |
{
|
229 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_themes", get_defined_vars ());
|
230 |
|
231 |
+
echo '<div class="ws-menu-page-group" title="Choosing The Perfect WordPress Theme" default-state="open">' . "\n";
|
232 |
|
233 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-themes">' . "\n";
|
234 |
+
echo '<p>We recommend <a href="http://s2member.com/r/themeforest/" target="_blank" rel="external">ThemeForest</a>. This is a great place to find the perfect theme for your installation of WordPress—at very affordable prices.</p>' . "\n";
|
|
|
235 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_themes", get_defined_vars ());
|
236 |
echo '</div>' . "\n";
|
237 |
echo '</div>' . "\n";
|
243 |
{
|
244 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_pro", get_defined_vars ());
|
245 |
|
246 |
+
echo '<div class="ws-menu-page-group" title="Upgrading to s2Member Pro<em>!</em>" default-state="open">' . "\n";
|
247 |
|
248 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-pro">' . "\n";
|
249 |
echo '<h3>s2Member Pro—A Recommended Upgrade</h3>' . "\n";
|
250 |
+
echo '<p>Among many other features/enhancements, <a href="http://s2member.com/" target="_blank" rel="external">s2Member Pro</a> comes pre-integrated with additional payment gateways that work with s2Member Pro-Forms (a powerful s2Member Pro feature). For instance, Stripe (most popular; also supports Bitcoin), PayPal Payments Pro, and Authorize.Net. Each of these payment gateways allow you to accept most major credit cards on-site; i.e., customers never leave your site! s2Member Pro-Forms also support PayPal Express Checkout (if you integrate with PayPal Pro); for customers who actually prefer to pay with PayPal.</p>' . "\n";
|
251 |
+
echo '<p><strong>Learn more here:</strong> <a href="http://s2member.com/features/" target="_blank" rel="external">s2Member Pro Features</a></p>'."\n";
|
252 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_pro", get_defined_vars ());
|
253 |
echo '</div>' . "\n";
|
254 |
|
261 |
{
|
262 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_help", get_defined_vars ());
|
263 |
|
264 |
+
echo '<div class="ws-menu-page-group" title="Getting Help w/ s2Member" default-state="open">' . "\n";
|
265 |
|
266 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-help">' . "\n";
|
267 |
+
echo '<p>s2Member is pretty easy to setup and install initially. Most of the official documentation is right here in your Dashboard (i.e., there is a lot of inline documentation built into the software). That being said, it can take some time to master everything there is to know about s2Member\'s advanced features. If you need assistance with s2Member, please search the <a href="http://s2member.com/kb/" target="_blank" rel="external">s2Member Knowledge Base</a>, <a href="http://s2member.com/videos/" target="_blank" rel="external">Video Tutorials</a>, <a href="http://s2member.com/forums/" target="_blank" rel="external">Forums</a> and <a href="http://s2member.com/r/codex/" target="_blank" rel="external">Codex</a>. If you are planning to do something creative with s2Member, you might want to <a href="http://jobs.wordpress.net" target="_blank" rel="external">hire a freelance developer</a> to assist you.</p>' . "\n";
|
268 |
+
echo '<p><strong>See also:</strong> <a href="http://s2member.com/r/common-troubleshooting-tips/" target="_blank" rel="external">s2Member Troubleshooting Guide</a> (please read this first if you\'re having trouble).</p>'."\n";
|
|
|
269 |
|
270 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
271 |
|
272 |
echo '<h3 style="margin-bottom:0;">Testing Server Compatibility</h3>'."\n";
|
273 |
+
echo '<p>Please download the <a href="http://s2member.com/r/server-scanner-info/">s2Member Server Scanner</a>. Unzip, upload via FTP; then open in a browser for a full report.</p>'."\n";
|
274 |
|
275 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
276 |
|
279 |
|
280 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
281 |
|
282 |
+
echo '<h3 style="margin-bottom:0;">Search s2Member KB Articles<em>!</em></h3>'."\n";
|
283 |
+
echo '<form method="get" action="http://s2member.com/kb/" target="_blank" onsubmit="if(this.q.value === \'enter search terms...\') this.q.value = \'\';" autocomplete="off">'."\n";
|
284 |
+
echo '<p><input type="text" name="kb_q" value="enter search terms..." style="width:60%;" onfocus="if(this.value === \'enter search terms...\') this.value = \'\';" onblur="if(this.value === \'\') this.value = \'enter search terms...\';" /> <input type="submit" value="Search" style="font-size:120%; font-weight:normal;" /></p>'."\n";
|
285 |
echo '</form>'."\n";
|
286 |
|
287 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_help", get_defined_vars ());
|
includes/menu-pages/trk-ops.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Menu page for the s2Member plugin (API Tracking page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Menu page for the s2Member plugin (API Tracking page).
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/menu-pages/updates.inc.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Newsletter/Updates for Menu Pages.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* Newsletter/Updates for Menu Pages.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
includes/s2member.css
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
* Core CSS stylesheet for the s2Member plugin.
|
3 |
*
|
4 |
* Copyright: © 2009-2011
|
5 |
-
* {@link http://
|
6 |
* (coded in the USA)
|
7 |
*
|
8 |
* Released under the terms of the GNU General Public License.
|
2 |
* Core CSS stylesheet for the s2Member plugin.
|
3 |
*
|
4 |
* Copyright: © 2009-2011
|
5 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
6 |
* (coded in the USA)
|
7 |
*
|
8 |
* Released under the terms of the GNU General Public License.
|
includes/s2member.js
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Which ultimately produces s2member-min.js.
|
6 |
*
|
7 |
* Copyright: © 2009-2011
|
8 |
-
* {@link http://
|
9 |
* (coded in the USA)
|
10 |
*
|
11 |
* Released under the terms of the GNU General Public License.
|
5 |
* Which ultimately produces s2member-min.js.
|
6 |
*
|
7 |
* Copyright: © 2009-2011
|
8 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
9 |
* (coded in the USA)
|
10 |
*
|
11 |
* Released under the terms of the GNU General Public License.
|
includes/syscon.inc.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
* Instead, use the plugin options panel in WordPress to override these settings.
|
7 |
*
|
8 |
* Copyright: © 2009-2011
|
9 |
-
* {@link http://
|
10 |
* (coded in the USA)
|
11 |
*
|
12 |
* Released under the terms of the GNU General Public License.
|
6 |
* Instead, use the plugin options panel in WordPress to override these settings.
|
7 |
*
|
8 |
* Copyright: © 2009-2011
|
9 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
10 |
* (coded in the USA)
|
11 |
*
|
12 |
* Released under the terms of the GNU General Public License.
|
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: 2015-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -290,7 +290,7 @@ msgctxt "s2member-front"
|
|
290 |
msgid "as a Member"
|
291 |
msgstr ""
|
292 |
|
293 |
-
#: s2member/includes/classes/email-configs.inc.php:
|
294 |
#: s2member/includes/syscon.inc.php:215
|
295 |
msgctxt "s2member-front"
|
296 |
msgid ""
|
@@ -1138,217 +1138,197 @@ msgctxt "s2member-front"
|
|
1138 |
msgid "(for this site)"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1142 |
msgctxt "s2member-front"
|
1143 |
msgid "less than a minute"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1147 |
msgctxt "s2member-front"
|
1148 |
-
msgid "1 minute"
|
1149 |
msgstr ""
|
1150 |
|
1151 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1152 |
msgctxt "s2member-front"
|
1153 |
-
msgid "%s minute"
|
1154 |
-
msgid_plural "%s minutes"
|
1155 |
msgstr[0] ""
|
1156 |
msgstr[1] ""
|
1157 |
|
1158 |
-
#: s2member/includes/classes/utils-time.inc.php:58
|
1159 |
-
msgctxt "s2member-front"
|
1160 |
-
msgid "about 1 hour"
|
1161 |
-
msgstr ""
|
1162 |
-
|
1163 |
#: s2member/includes/classes/utils-time.inc.php:64
|
|
|
1164 |
msgctxt "s2member-front"
|
1165 |
-
msgid "1 hour"
|
1166 |
msgstr ""
|
1167 |
|
1168 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1169 |
msgctxt "s2member-front"
|
1170 |
-
msgid "%s hour"
|
1171 |
-
msgid_plural "%s hours"
|
1172 |
msgstr[0] ""
|
1173 |
msgstr[1] ""
|
1174 |
|
1175 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
|
|
1176 |
msgctxt "s2member-front"
|
1177 |
msgid "about 1 day"
|
1178 |
msgstr ""
|
1179 |
|
1180 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1181 |
-
msgctxt "s2member-front"
|
1182 |
-
msgid "1 day"
|
1183 |
-
msgstr ""
|
1184 |
-
|
1185 |
-
#: s2member/includes/classes/utils-time.inc.php:73
|
1186 |
msgctxt "s2member-front"
|
1187 |
-
msgid "%s day"
|
1188 |
-
msgid_plural "%s days"
|
1189 |
msgstr[0] ""
|
1190 |
msgstr[1] ""
|
1191 |
|
1192 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
|
|
1193 |
msgctxt "s2member-front"
|
1194 |
msgid "about 1 week"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1198 |
msgctxt "s2member-front"
|
1199 |
-
msgid "
|
1200 |
-
|
1201 |
-
|
1202 |
-
#: s2member/includes/classes/utils-time.inc.php:81
|
1203 |
-
msgctxt "s2member-front"
|
1204 |
-
msgid "%s week"
|
1205 |
-
msgid_plural "%s weeks"
|
1206 |
msgstr[0] ""
|
1207 |
msgstr[1] ""
|
1208 |
|
1209 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
|
|
1210 |
msgctxt "s2member-front"
|
1211 |
msgid "about 1 month"
|
1212 |
msgstr ""
|
1213 |
|
1214 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1215 |
-
msgctxt "s2member-front"
|
1216 |
-
msgid "1 month"
|
1217 |
-
msgstr ""
|
1218 |
-
|
1219 |
-
#: s2member/includes/classes/utils-time.inc.php:89
|
1220 |
msgctxt "s2member-front"
|
1221 |
-
msgid "%s month"
|
1222 |
-
msgid_plural "%s months"
|
1223 |
msgstr[0] ""
|
1224 |
msgstr[1] ""
|
1225 |
|
1226 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
|
|
1227 |
msgctxt "s2member-front"
|
1228 |
msgid "about 1 year"
|
1229 |
msgstr ""
|
1230 |
|
1231 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1232 |
msgctxt "s2member-front"
|
1233 |
-
msgid "
|
1234 |
-
|
1235 |
-
|
1236 |
-
#: s2member/includes/classes/utils-time.inc.php:97
|
1237 |
-
msgctxt "s2member-front"
|
1238 |
-
msgid "%s year"
|
1239 |
-
msgid_plural "%s years"
|
1240 |
msgstr[0] ""
|
1241 |
msgstr[1] ""
|
1242 |
|
1243 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1244 |
msgctxt "s2member-front"
|
1245 |
msgid "Daily"
|
1246 |
msgstr ""
|
1247 |
|
1248 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1249 |
msgctxt "s2member-front"
|
1250 |
msgid "Weekly"
|
1251 |
msgstr ""
|
1252 |
|
1253 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1254 |
msgctxt "s2member-front"
|
1255 |
msgid "Monthly"
|
1256 |
msgstr ""
|
1257 |
|
1258 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1259 |
msgctxt "s2member-front"
|
1260 |
msgid "Yearly"
|
1261 |
msgstr ""
|
1262 |
|
1263 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1264 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1265 |
msgctxt "s2member-front"
|
1266 |
msgid "Lifetime"
|
1267 |
msgstr ""
|
1268 |
|
1269 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1270 |
msgctxt "s2member-front"
|
1271 |
msgid "Bi-Weekly"
|
1272 |
msgstr ""
|
1273 |
|
1274 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1275 |
msgctxt "s2member-front"
|
1276 |
msgid "Bi-Monthly"
|
1277 |
msgstr ""
|
1278 |
|
1279 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1280 |
msgctxt "s2member-front"
|
1281 |
msgid "Quarterly"
|
1282 |
msgstr ""
|
1283 |
|
1284 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1285 |
msgctxt "s2member-front"
|
1286 |
msgid "Semi-Yearly"
|
1287 |
msgstr ""
|
1288 |
|
1289 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1290 |
msgctxt "s2member-front"
|
1291 |
msgid "Day"
|
1292 |
msgstr ""
|
1293 |
|
1294 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1295 |
msgctxt "s2member-front"
|
1296 |
msgid "Week"
|
1297 |
msgstr ""
|
1298 |
|
1299 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1300 |
msgctxt "s2member-front"
|
1301 |
msgid "Month"
|
1302 |
msgstr ""
|
1303 |
|
1304 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1305 |
msgctxt "s2member-front"
|
1306 |
msgid "Year"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1310 |
msgctxt "s2member-front"
|
1311 |
msgid "Days"
|
1312 |
msgstr ""
|
1313 |
|
1314 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1315 |
msgctxt "s2member-front"
|
1316 |
msgid "Weeks"
|
1317 |
msgstr ""
|
1318 |
|
1319 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1320 |
msgctxt "s2member-front"
|
1321 |
msgid "Months"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1325 |
msgctxt "s2member-front"
|
1326 |
msgid "Years"
|
1327 |
msgstr ""
|
1328 |
|
1329 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1330 |
msgctxt "s2member-front"
|
1331 |
msgid "Lifetimes"
|
1332 |
msgstr ""
|
1333 |
|
1334 |
#. translators: Each cycle ( i.e., `each day/week/month` or `every 2
|
1335 |
#. days/weeks/months`, etc. ). Cycles are translated elsewhere.
|
1336 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1337 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1338 |
msgctxt "s2member-front"
|
1339 |
msgid "each %2$s"
|
1340 |
msgid_plural "every %1$s %3$s"
|
1341 |
msgstr[0] ""
|
1342 |
msgstr[1] ""
|
1343 |
|
1344 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1345 |
msgctxt "s2member-front"
|
1346 |
msgid "lifetime"
|
1347 |
msgstr ""
|
1348 |
|
1349 |
#. translators: Membership cycle ( i.e., `1 day/week/month` or `2
|
1350 |
#. days/weeks/months`, etc. ). Most of this is translated elsewhere.
|
1351 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1352 |
msgctxt "s2member-front"
|
1353 |
msgid "%1$s %2$s"
|
1354 |
msgid_plural "%1$s %3$s"
|
@@ -1357,7 +1337,7 @@ msgstr[1] ""
|
|
1357 |
|
1358 |
#. translators: Cycle ( i.e., `for 1 day/week/month` or `for 2
|
1359 |
#. days/weeks/months`, etc. ). Most of this is translated elsewhere.
|
1360 |
-
#: s2member/includes/classes/utils-time.inc.php:
|
1361 |
msgctxt "s2member-front"
|
1362 |
msgid "for %1$s %2$s"
|
1363 |
msgid_plural "for %1$s %3$s"
|
@@ -1540,13 +1520,13 @@ msgstr ""
|
|
1540 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:197
|
1541 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:202
|
1542 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:207
|
1543 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
1544 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
1545 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
1546 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
1547 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
1548 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
1549 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
1550 |
msgctxt "s2member-front"
|
1551 |
msgid "— Oops, you missed something: —"
|
1552 |
msgstr ""
|
@@ -1561,7 +1541,7 @@ msgstr ""
|
|
1561 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:899
|
1562 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
1563 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:192
|
1564 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
1565 |
msgctxt "s2member-front"
|
1566 |
msgid "Passwords do not match up. Please try again."
|
1567 |
msgstr ""
|
@@ -1576,7 +1556,7 @@ msgstr ""
|
|
1576 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:906
|
1577 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
1578 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:197
|
1579 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
1580 |
msgctxt "s2member-front"
|
1581 |
msgid "Password MUST be at least %s characters. Please try again."
|
1582 |
msgstr ""
|
@@ -1591,7 +1571,7 @@ msgstr ""
|
|
1591 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:911
|
1592 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
1593 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:202
|
1594 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
1595 |
msgctxt "s2member-front"
|
1596 |
msgid "Password strength MUST be %s. Please try again."
|
1597 |
msgstr ""
|
@@ -2685,7 +2665,7 @@ msgstr ""
|
|
2685 |
#: s2member-pro/s2member-pro/includes/classes/coupons.inc.php:240
|
2686 |
#: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:669
|
2687 |
#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:311
|
2688 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:
|
2689 |
msgctxt "s2member-front percentage-symbol"
|
2690 |
msgid "%"
|
2691 |
msgstr ""
|
@@ -2890,11 +2870,11 @@ msgstr ""
|
|
2890 |
#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:431
|
2891 |
#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:571
|
2892 |
#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:784
|
2893 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:
|
2894 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:
|
2895 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:
|
2896 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:
|
2897 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:
|
2898 |
msgctxt "s2member-front"
|
2899 |
msgid "Security Verification"
|
2900 |
msgstr ""
|
@@ -2903,8 +2883,8 @@ msgstr ""
|
|
2903 |
#: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-form-in.inc.php:743
|
2904 |
#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:246
|
2905 |
#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:752
|
2906 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:
|
2907 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:
|
2908 |
msgctxt "s2member-front"
|
2909 |
msgid "Additional Info"
|
2910 |
msgstr ""
|
@@ -4195,37 +4175,37 @@ msgctxt "s2member-front"
|
|
4195 |
msgid "<strong>Oops.</strong> No Customer|Subscr. ID. Please contact Support for assistance."
|
4196 |
msgstr ""
|
4197 |
|
4198 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:
|
4199 |
msgctxt "s2member-front"
|
4200 |
msgid "Error: <strong>prepaid</strong> cards not accepted at this time. Please use a different card and try again."
|
4201 |
msgstr ""
|
4202 |
|
4203 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:
|
4204 |
msgctxt "s2member-front"
|
4205 |
msgid "Error code: <code>%1$s</code>. %2$s."
|
4206 |
msgstr ""
|
4207 |
|
4208 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:
|
4209 |
msgctxt "s2member-front"
|
4210 |
msgid "Invalid parameters to Stripe; please contact the site owner."
|
4211 |
msgstr ""
|
4212 |
|
4213 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:
|
4214 |
msgctxt "s2member-front"
|
4215 |
msgid "Invalid Stripe API keys; please contact the site owner."
|
4216 |
msgstr ""
|
4217 |
|
4218 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:
|
4219 |
msgctxt "s2member-front"
|
4220 |
msgid "Network communication failure with Stripe; please try again."
|
4221 |
msgstr ""
|
4222 |
|
4223 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:
|
4224 |
msgctxt "s2member-front"
|
4225 |
msgid "Stripe API error; please try again."
|
4226 |
msgstr ""
|
4227 |
|
4228 |
-
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:
|
4229 |
msgctxt "s2member-front"
|
4230 |
msgid "Stripe error; please try again."
|
4231 |
msgstr ""
|
@@ -4285,6 +4265,10 @@ msgctxt "s2member-front"
|
|
4285 |
msgid "My Profile Summary"
|
4286 |
msgstr ""
|
4287 |
|
|
|
|
|
|
|
|
|
4288 |
#: s2member-pro/s2member-pro/includes/classes/sc-gift-codes-in.inc.php:126
|
4289 |
msgctxt "s2member-front"
|
4290 |
msgid "Redemption Code"
|
@@ -4330,8 +4314,8 @@ msgstr ""
|
|
4330 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4331 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:106
|
4332 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:207
|
4333 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
4334 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
4335 |
msgctxt "s2member-front"
|
4336 |
msgid "Security Verification missing. Please try again."
|
4337 |
msgstr ""
|
@@ -4363,7 +4347,7 @@ msgstr ""
|
|
4363 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:354
|
4364 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:654
|
4365 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4366 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
4367 |
msgctxt "s2member-front"
|
4368 |
msgid "calculating sales tax..."
|
4369 |
msgstr ""
|
@@ -4375,7 +4359,7 @@ msgstr ""
|
|
4375 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:365
|
4376 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:665
|
4377 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4378 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
4379 |
msgctxt "s2member-front"
|
4380 |
msgid "<strong>Sales Tax%s:</strong> %s<br /><strong>— Total%s:</strong> %s"
|
4381 |
msgstr ""
|
@@ -4387,7 +4371,7 @@ msgstr ""
|
|
4387 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:365
|
4388 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:665
|
4389 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4390 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
4391 |
msgctxt "s2member-front"
|
4392 |
msgid "Today"
|
4393 |
msgstr ""
|
@@ -4397,7 +4381,7 @@ msgstr ""
|
|
4397 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
4398 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:727
|
4399 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4400 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
4401 |
#: s2member-pro/s2member-pro/includes/templates/forms/authnet-checkout-form.php:59
|
4402 |
#: s2member-pro/s2member-pro/includes/templates/forms/authnet-registration-form.php:43
|
4403 |
#: s2member-pro/s2member-pro/includes/templates/forms/paypal-checkout-form.php:59
|
@@ -4413,7 +4397,7 @@ msgstr ""
|
|
4413 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
4414 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:728
|
4415 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4416 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
4417 |
msgctxt "s2member-front"
|
4418 |
msgid "Your Profile"
|
4419 |
msgstr ""
|
@@ -4449,15 +4433,15 @@ msgid "Submit Form"
|
|
4449 |
msgstr ""
|
4450 |
|
4451 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4452 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
4453 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
4454 |
msgctxt "s2member-front"
|
4455 |
msgid "Add"
|
4456 |
msgstr ""
|
4457 |
|
4458 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4459 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
4460 |
-
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:
|
4461 |
msgctxt "s2member-front"
|
4462 |
msgid "No Billing Method; please try again."
|
4463 |
msgstr ""
|
@@ -4499,7 +4483,28 @@ msgid ""
|
|
4499 |
"%s"
|
4500 |
msgstr ""
|
4501 |
|
4502 |
-
#: s2member-pro/s2member-pro/includes/syscon.inc.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4503 |
msgctxt "s2member-front"
|
4504 |
msgid "<div><small style=\"font-size:70%;\">ClickBank is the retailer of products on this site. CLICKBANK® is a registered trademark of Click Sales, Inc., a Delaware corporation located at 917 S. Lusk Street, Suite 200, Boise Idaho, 83706, USA and used by permission. ClickBank's role as retailer does not constitute an endorsement, approval or review of these products or any claim, statement or opinion used in promotion of these products.</small></div><p>%1$s <strong><em>says…</em></strong></p>"
|
4505 |
msgstr ""
|
@@ -4757,22 +4762,22 @@ msgctxt "s2member-front"
|
|
4757 |
msgid "Search"
|
4758 |
msgstr ""
|
4759 |
|
4760 |
-
#: s2member-pro/s2member-pro/includes/templates/members/member-list.php:
|
4761 |
msgctxt "s2member-front"
|
4762 |
msgid "Page:"
|
4763 |
msgstr ""
|
4764 |
|
4765 |
-
#: s2member-pro/s2member-pro/includes/templates/members/member-list.php:
|
4766 |
msgctxt "s2member-front"
|
4767 |
msgid "Sorry, your search returned 0 results."
|
4768 |
msgstr ""
|
4769 |
|
4770 |
-
#: s2member-pro/s2member-pro/includes/templates/members/member-list.php:
|
4771 |
msgctxt "s2member-front"
|
4772 |
-
msgid "Sorry, search is not allowed here. The shortcode attribute
|
4773 |
msgstr ""
|
4774 |
|
4775 |
-
#: s2member-pro/s2member-pro/includes/templates/members/member-list.php:
|
4776 |
msgctxt "s2member-front"
|
4777 |
msgid "Sorry, there are no users to list at this time."
|
4778 |
msgstr ""
|
2 |
# This file is distributed under the same license as the package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: 151210\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
|
7 |
+
"POT-Creation-Date: 2015-12-10 11:40:46+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
290 |
msgid "as a Member"
|
291 |
msgstr ""
|
292 |
|
293 |
+
#: s2member/includes/classes/email-configs.inc.php:253
|
294 |
#: s2member/includes/syscon.inc.php:215
|
295 |
msgctxt "s2member-front"
|
296 |
msgid ""
|
1138 |
msgid "(for this site)"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
+
#: s2member/includes/classes/utils-time.inc.php:61
|
1142 |
msgctxt "s2member-front"
|
1143 |
msgid "less than a minute"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
+
#: s2member/includes/classes/utils-time.inc.php:62
|
1147 |
msgctxt "s2member-front"
|
1148 |
+
msgid "about 1 minute"
|
1149 |
msgstr ""
|
1150 |
|
1151 |
+
#: s2member/includes/classes/utils-time.inc.php:63
|
1152 |
msgctxt "s2member-front"
|
1153 |
+
msgid "about %s minute"
|
1154 |
+
msgid_plural "about %s minutes"
|
1155 |
msgstr[0] ""
|
1156 |
msgstr[1] ""
|
1157 |
|
|
|
|
|
|
|
|
|
|
|
1158 |
#: s2member/includes/classes/utils-time.inc.php:64
|
1159 |
+
#: s2member/includes/classes/utils-time.inc.php:75
|
1160 |
msgctxt "s2member-front"
|
1161 |
+
msgid "about 1 hour"
|
1162 |
msgstr ""
|
1163 |
|
1164 |
+
#: s2member/includes/classes/utils-time.inc.php:76
|
1165 |
msgctxt "s2member-front"
|
1166 |
+
msgid "about %s hour"
|
1167 |
+
msgid_plural "about %s hours"
|
1168 |
msgstr[0] ""
|
1169 |
msgstr[1] ""
|
1170 |
|
1171 |
+
#: s2member/includes/classes/utils-time.inc.php:77
|
1172 |
+
#: s2member/includes/classes/utils-time.inc.php:88
|
1173 |
msgctxt "s2member-front"
|
1174 |
msgid "about 1 day"
|
1175 |
msgstr ""
|
1176 |
|
1177 |
+
#: s2member/includes/classes/utils-time.inc.php:89
|
|
|
|
|
|
|
|
|
|
|
1178 |
msgctxt "s2member-front"
|
1179 |
+
msgid "about %s day"
|
1180 |
+
msgid_plural "about %s days"
|
1181 |
msgstr[0] ""
|
1182 |
msgstr[1] ""
|
1183 |
|
1184 |
+
#: s2member/includes/classes/utils-time.inc.php:90
|
1185 |
+
#: s2member/includes/classes/utils-time.inc.php:101
|
1186 |
msgctxt "s2member-front"
|
1187 |
msgid "about 1 week"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
+
#: s2member/includes/classes/utils-time.inc.php:102
|
1191 |
msgctxt "s2member-front"
|
1192 |
+
msgid "about %s week"
|
1193 |
+
msgid_plural "about %s weeks"
|
|
|
|
|
|
|
|
|
|
|
1194 |
msgstr[0] ""
|
1195 |
msgstr[1] ""
|
1196 |
|
1197 |
+
#: s2member/includes/classes/utils-time.inc.php:103
|
1198 |
+
#: s2member/includes/classes/utils-time.inc.php:114
|
1199 |
msgctxt "s2member-front"
|
1200 |
msgid "about 1 month"
|
1201 |
msgstr ""
|
1202 |
|
1203 |
+
#: s2member/includes/classes/utils-time.inc.php:115
|
|
|
|
|
|
|
|
|
|
|
1204 |
msgctxt "s2member-front"
|
1205 |
+
msgid "about %s month"
|
1206 |
+
msgid_plural "about %s months"
|
1207 |
msgstr[0] ""
|
1208 |
msgstr[1] ""
|
1209 |
|
1210 |
+
#: s2member/includes/classes/utils-time.inc.php:116
|
1211 |
+
#: s2member/includes/classes/utils-time.inc.php:127
|
1212 |
msgctxt "s2member-front"
|
1213 |
msgid "about 1 year"
|
1214 |
msgstr ""
|
1215 |
|
1216 |
+
#: s2member/includes/classes/utils-time.inc.php:128
|
1217 |
msgctxt "s2member-front"
|
1218 |
+
msgid "about %s year"
|
1219 |
+
msgid_plural "about %s years"
|
|
|
|
|
|
|
|
|
|
|
1220 |
msgstr[0] ""
|
1221 |
msgstr[1] ""
|
1222 |
|
1223 |
+
#: s2member/includes/classes/utils-time.inc.php:276
|
1224 |
msgctxt "s2member-front"
|
1225 |
msgid "Daily"
|
1226 |
msgstr ""
|
1227 |
|
1228 |
+
#: s2member/includes/classes/utils-time.inc.php:276
|
1229 |
msgctxt "s2member-front"
|
1230 |
msgid "Weekly"
|
1231 |
msgstr ""
|
1232 |
|
1233 |
+
#: s2member/includes/classes/utils-time.inc.php:276
|
1234 |
msgctxt "s2member-front"
|
1235 |
msgid "Monthly"
|
1236 |
msgstr ""
|
1237 |
|
1238 |
+
#: s2member/includes/classes/utils-time.inc.php:276
|
1239 |
msgctxt "s2member-front"
|
1240 |
msgid "Yearly"
|
1241 |
msgstr ""
|
1242 |
|
1243 |
+
#: s2member/includes/classes/utils-time.inc.php:276
|
1244 |
+
#: s2member/includes/classes/utils-time.inc.php:287
|
1245 |
msgctxt "s2member-front"
|
1246 |
msgid "Lifetime"
|
1247 |
msgstr ""
|
1248 |
|
1249 |
+
#: s2member/includes/classes/utils-time.inc.php:280
|
1250 |
msgctxt "s2member-front"
|
1251 |
msgid "Bi-Weekly"
|
1252 |
msgstr ""
|
1253 |
|
1254 |
+
#: s2member/includes/classes/utils-time.inc.php:281
|
1255 |
msgctxt "s2member-front"
|
1256 |
msgid "Bi-Monthly"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
+
#: s2member/includes/classes/utils-time.inc.php:282
|
1260 |
msgctxt "s2member-front"
|
1261 |
msgid "Quarterly"
|
1262 |
msgstr ""
|
1263 |
|
1264 |
+
#: s2member/includes/classes/utils-time.inc.php:283
|
1265 |
msgctxt "s2member-front"
|
1266 |
msgid "Semi-Yearly"
|
1267 |
msgstr ""
|
1268 |
|
1269 |
+
#: s2member/includes/classes/utils-time.inc.php:287
|
1270 |
msgctxt "s2member-front"
|
1271 |
msgid "Day"
|
1272 |
msgstr ""
|
1273 |
|
1274 |
+
#: s2member/includes/classes/utils-time.inc.php:287
|
1275 |
msgctxt "s2member-front"
|
1276 |
msgid "Week"
|
1277 |
msgstr ""
|
1278 |
|
1279 |
+
#: s2member/includes/classes/utils-time.inc.php:287
|
1280 |
msgctxt "s2member-front"
|
1281 |
msgid "Month"
|
1282 |
msgstr ""
|
1283 |
|
1284 |
+
#: s2member/includes/classes/utils-time.inc.php:287
|
1285 |
msgctxt "s2member-front"
|
1286 |
msgid "Year"
|
1287 |
msgstr ""
|
1288 |
|
1289 |
+
#: s2member/includes/classes/utils-time.inc.php:293
|
1290 |
msgctxt "s2member-front"
|
1291 |
msgid "Days"
|
1292 |
msgstr ""
|
1293 |
|
1294 |
+
#: s2member/includes/classes/utils-time.inc.php:293
|
1295 |
msgctxt "s2member-front"
|
1296 |
msgid "Weeks"
|
1297 |
msgstr ""
|
1298 |
|
1299 |
+
#: s2member/includes/classes/utils-time.inc.php:293
|
1300 |
msgctxt "s2member-front"
|
1301 |
msgid "Months"
|
1302 |
msgstr ""
|
1303 |
|
1304 |
+
#: s2member/includes/classes/utils-time.inc.php:293
|
1305 |
msgctxt "s2member-front"
|
1306 |
msgid "Years"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: s2member/includes/classes/utils-time.inc.php:293
|
1310 |
msgctxt "s2member-front"
|
1311 |
msgid "Lifetimes"
|
1312 |
msgstr ""
|
1313 |
|
1314 |
#. translators: Each cycle ( i.e., `each day/week/month` or `every 2
|
1315 |
#. days/weeks/months`, etc. ). Cycles are translated elsewhere.
|
1316 |
+
#: s2member/includes/classes/utils-time.inc.php:330
|
1317 |
+
#: s2member/includes/classes/utils-time.inc.php:373
|
1318 |
msgctxt "s2member-front"
|
1319 |
msgid "each %2$s"
|
1320 |
msgid_plural "every %1$s %3$s"
|
1321 |
msgstr[0] ""
|
1322 |
msgstr[1] ""
|
1323 |
|
1324 |
+
#: s2member/includes/classes/utils-time.inc.php:333
|
1325 |
msgctxt "s2member-front"
|
1326 |
msgid "lifetime"
|
1327 |
msgstr ""
|
1328 |
|
1329 |
#. translators: Membership cycle ( i.e., `1 day/week/month` or `2
|
1330 |
#. days/weeks/months`, etc. ). Most of this is translated elsewhere.
|
1331 |
+
#: s2member/includes/classes/utils-time.inc.php:337
|
1332 |
msgctxt "s2member-front"
|
1333 |
msgid "%1$s %2$s"
|
1334 |
msgid_plural "%1$s %3$s"
|
1337 |
|
1338 |
#. translators: Cycle ( i.e., `for 1 day/week/month` or `for 2
|
1339 |
#. days/weeks/months`, etc. ). Most of this is translated elsewhere.
|
1340 |
+
#: s2member/includes/classes/utils-time.inc.php:380
|
1341 |
msgctxt "s2member-front"
|
1342 |
msgid "for %1$s %2$s"
|
1343 |
msgid_plural "for %1$s %3$s"
|
1520 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:197
|
1521 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:202
|
1522 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:207
|
1523 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:328
|
1524 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:333
|
1525 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:638
|
1526 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:643
|
1527 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:648
|
1528 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:653
|
1529 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:658
|
1530 |
msgctxt "s2member-front"
|
1531 |
msgid "— Oops, you missed something: —"
|
1532 |
msgstr ""
|
1541 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:899
|
1542 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
1543 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:192
|
1544 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:643
|
1545 |
msgctxt "s2member-front"
|
1546 |
msgid "Passwords do not match up. Please try again."
|
1547 |
msgstr ""
|
1556 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:906
|
1557 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
1558 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:197
|
1559 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:648
|
1560 |
msgctxt "s2member-front"
|
1561 |
msgid "Password MUST be at least %s characters. Please try again."
|
1562 |
msgstr ""
|
1571 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:911
|
1572 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
1573 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:202
|
1574 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:653
|
1575 |
msgctxt "s2member-front"
|
1576 |
msgid "Password strength MUST be %s. Please try again."
|
1577 |
msgstr ""
|
2665 |
#: s2member-pro/s2member-pro/includes/classes/coupons.inc.php:240
|
2666 |
#: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:669
|
2667 |
#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:311
|
2668 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:899
|
2669 |
msgctxt "s2member-front percentage-symbol"
|
2670 |
msgid "%"
|
2671 |
msgstr ""
|
2870 |
#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:431
|
2871 |
#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:571
|
2872 |
#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:784
|
2873 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:196
|
2874 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:277
|
2875 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:350
|
2876 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:437
|
2877 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:594
|
2878 |
msgctxt "s2member-front"
|
2879 |
msgid "Security Verification"
|
2880 |
msgstr ""
|
2883 |
#: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-form-in.inc.php:743
|
2884 |
#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:246
|
2885 |
#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:752
|
2886 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:250
|
2887 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-form-in.inc.php:567
|
2888 |
msgctxt "s2member-front"
|
2889 |
msgid "Additional Info"
|
2890 |
msgstr ""
|
4175 |
msgid "<strong>Oops.</strong> No Customer|Subscr. ID. Please contact Support for assistance."
|
4176 |
msgstr ""
|
4177 |
|
4178 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:195
|
4179 |
msgctxt "s2member-front"
|
4180 |
msgid "Error: <strong>prepaid</strong> cards not accepted at this time. Please use a different card and try again."
|
4181 |
msgstr ""
|
4182 |
|
4183 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:671
|
4184 |
msgctxt "s2member-front"
|
4185 |
msgid "Error code: <code>%1$s</code>. %2$s."
|
4186 |
msgstr ""
|
4187 |
|
4188 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:675
|
4189 |
msgctxt "s2member-front"
|
4190 |
msgid "Invalid parameters to Stripe; please contact the site owner."
|
4191 |
msgstr ""
|
4192 |
|
4193 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:678
|
4194 |
msgctxt "s2member-front"
|
4195 |
msgid "Invalid Stripe API keys; please contact the site owner."
|
4196 |
msgstr ""
|
4197 |
|
4198 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:681
|
4199 |
msgctxt "s2member-front"
|
4200 |
msgid "Network communication failure with Stripe; please try again."
|
4201 |
msgstr ""
|
4202 |
|
4203 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:684
|
4204 |
msgctxt "s2member-front"
|
4205 |
msgid "Stripe API error; please try again."
|
4206 |
msgstr ""
|
4207 |
|
4208 |
+
#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:686
|
4209 |
msgctxt "s2member-front"
|
4210 |
msgid "Stripe error; please try again."
|
4211 |
msgstr ""
|
4265 |
msgid "My Profile Summary"
|
4266 |
msgstr ""
|
4267 |
|
4268 |
+
#: s2member-pro/s2member-pro/includes/classes/reminders.inc.php:232
|
4269 |
+
msgid "0 / non-recurring"
|
4270 |
+
msgstr ""
|
4271 |
+
|
4272 |
#: s2member-pro/s2member-pro/includes/classes/sc-gift-codes-in.inc.php:126
|
4273 |
msgctxt "s2member-front"
|
4274 |
msgid "Redemption Code"
|
4314 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4315 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:106
|
4316 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:207
|
4317 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:333
|
4318 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:658
|
4319 |
msgctxt "s2member-front"
|
4320 |
msgid "Security Verification missing. Please try again."
|
4321 |
msgstr ""
|
4347 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:354
|
4348 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:654
|
4349 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4350 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:488
|
4351 |
msgctxt "s2member-front"
|
4352 |
msgid "calculating sales tax..."
|
4353 |
msgstr ""
|
4359 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:365
|
4360 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:665
|
4361 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4362 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:505
|
4363 |
msgctxt "s2member-front"
|
4364 |
msgid "<strong>Sales Tax%s:</strong> %s<br /><strong>— Total%s:</strong> %s"
|
4365 |
msgstr ""
|
4371 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:365
|
4372 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:665
|
4373 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4374 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:505
|
4375 |
msgctxt "s2member-front"
|
4376 |
msgid "Today"
|
4377 |
msgstr ""
|
4381 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
4382 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:727
|
4383 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4384 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:432
|
4385 |
#: s2member-pro/s2member-pro/includes/templates/forms/authnet-checkout-form.php:59
|
4386 |
#: s2member-pro/s2member-pro/includes/templates/forms/authnet-registration-form.php:43
|
4387 |
#: s2member-pro/s2member-pro/includes/templates/forms/paypal-checkout-form.php:59
|
4397 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
4398 |
#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:728
|
4399 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4400 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:433
|
4401 |
msgctxt "s2member-front"
|
4402 |
msgid "Your Profile"
|
4403 |
msgstr ""
|
4433 |
msgstr ""
|
4434 |
|
4435 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4436 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:292
|
4437 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:599
|
4438 |
msgctxt "s2member-front"
|
4439 |
msgid "Add"
|
4440 |
msgstr ""
|
4441 |
|
4442 |
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1
|
4443 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:312
|
4444 |
+
#: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:623
|
4445 |
msgctxt "s2member-front"
|
4446 |
msgid "No Billing Method; please try again."
|
4447 |
msgstr ""
|
4483 |
"%s"
|
4484 |
msgstr ""
|
4485 |
|
4486 |
+
#: s2member-pro/s2member-pro/includes/syscon.inc.php:106
|
4487 |
+
msgctxt "s2member-front"
|
4488 |
+
msgid "Renewal Reminder (Account Expires in %%%%eot_descriptive_time%%%%)"
|
4489 |
+
msgstr ""
|
4490 |
+
|
4491 |
+
#: s2member-pro/s2member-pro/includes/syscon.inc.php:107
|
4492 |
+
msgctxt "s2member-front"
|
4493 |
+
msgid ""
|
4494 |
+
"Hi %%%%first_name%%%%!\n"
|
4495 |
+
"\n"
|
4496 |
+
"Just a reminder that your account access will expire: %%%%eot_date_time_tz%%%% (%%%%eot_descriptive_time%%%% from now).\n"
|
4497 |
+
"\n"
|
4498 |
+
"Please log in if you'd like to renew:\n"
|
4499 |
+
"%s\n"
|
4500 |
+
"\n"
|
4501 |
+
"If you have any trouble, feel free to contact us.\n"
|
4502 |
+
"\n"
|
4503 |
+
"Best Regards,\n"
|
4504 |
+
"%s"
|
4505 |
+
msgstr ""
|
4506 |
+
|
4507 |
+
#: s2member-pro/s2member-pro/includes/syscon.inc.php:136
|
4508 |
msgctxt "s2member-front"
|
4509 |
msgid "<div><small style=\"font-size:70%;\">ClickBank is the retailer of products on this site. CLICKBANK® is a registered trademark of Click Sales, Inc., a Delaware corporation located at 917 S. Lusk Street, Suite 200, Boise Idaho, 83706, USA and used by permission. ClickBank's role as retailer does not constitute an endorsement, approval or review of these products or any claim, statement or opinion used in promotion of these products.</small></div><p>%1$s <strong><em>says…</em></strong></p>"
|
4510 |
msgstr ""
|
4762 |
msgid "Search"
|
4763 |
msgstr ""
|
4764 |
|
4765 |
+
#: s2member-pro/s2member-pro/includes/templates/members/member-list.php:99
|
4766 |
msgctxt "s2member-front"
|
4767 |
msgid "Page:"
|
4768 |
msgstr ""
|
4769 |
|
4770 |
+
#: s2member-pro/s2member-pro/includes/templates/members/member-list.php:107
|
4771 |
msgctxt "s2member-front"
|
4772 |
msgid "Sorry, your search returned 0 results."
|
4773 |
msgstr ""
|
4774 |
|
4775 |
+
#: s2member-pro/s2member-pro/includes/templates/members/member-list.php:110
|
4776 |
msgctxt "s2member-front"
|
4777 |
+
msgid "Sorry, search is not allowed here. The shortcode attribute <code>enable_list_search</code> was not enabled by the site owner."
|
4778 |
msgstr ""
|
4779 |
|
4780 |
+
#: s2member-pro/s2member-pro/includes/templates/members/member-list.php:113
|
4781 |
msgctxt "s2member-front"
|
4782 |
msgid "Sorry, there are no users to list at this time."
|
4783 |
msgstr ""
|
readme.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
=== s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
|
2 |
|
3 |
-
Version:
|
4 |
-
Stable tag:
|
5 |
|
6 |
SSL Compatible: yes
|
7 |
bbPress® Compatible: yes
|
@@ -17,37 +17,37 @@ Authorize.Net® Compatible: yes w/s2Member® Pro
|
|
17 |
Google® Checkout Compatible: yes w/s2Member® Pro
|
18 |
ClickBank® Compatible: yes w/s2Member® Pro
|
19 |
|
20 |
-
Tested up to: 4.4
|
21 |
Requires at least: 4.2
|
22 |
|
23 |
Requires PHP: 5.2+
|
24 |
-
Tested up to PHP:
|
25 |
|
26 |
Copyright: © 2009 WebSharks, Inc.
|
27 |
License: GNU General Public License v2 or later.
|
28 |
Contributors: WebSharks, JasWSInc, anguz, raamdev, sitegeek, kristineds
|
29 |
|
30 |
Author: s2Member® / WebSharks, Inc.
|
31 |
-
Author URI: http://
|
32 |
-
Donate link: http://
|
33 |
-
Beta link: http://
|
34 |
|
35 |
Text Domain: s2member
|
36 |
Domain Path: /includes/translations
|
37 |
|
38 |
Plugin Name: s2Member® Framework
|
39 |
-
Forum URI: http://
|
40 |
-
Plugin URI: http://
|
41 |
-
Privacy URI: http://
|
42 |
-
Changelog URI: http://
|
43 |
-
Video Tutorials: http://
|
44 |
-
Knowledge Base: http://
|
45 |
-
Newsletter: http://
|
46 |
-
Pro Add-on / Home Page: http://
|
47 |
-
Pro Add-on / Prices: http://
|
48 |
Pro Add-on / Auto-Update URL: https://www.s2member.com/
|
49 |
-
PayPal Pro Integration: http://
|
50 |
-
Professional Installation URI: http://
|
51 |
|
52 |
Description: s2Member®—a powerful (free) membership plugin for WordPress®. Protect members only content with roles/capabilities.
|
53 |
Tags: s2, s2member, s2 member, membership, users, user, members, member, subscribers, subscriber, members only, roles, capabilities, capability, register, signup, stripe, bitcoin, paypal, paypal pro, pay pal, authorize, authorize.net, google wallet, clickbank, click bank, buddypress, buddy press, bbpress, bb press, shopping cart, cart, checkout, ecommerce
|
@@ -117,15 +117,15 @@ Yes. s2Member and s2Member Pro, are also both compatible with Multisite Networki
|
|
117 |
|
118 |
= Please Check the Following s2Member® Resources =
|
119 |
|
120 |
-
* s2Member® FAQs: <http://
|
121 |
-
* Knowledge Base: <http://
|
122 |
-
* Video Tutorials: <http://
|
123 |
-
* Community: <http://
|
124 |
-
* Codex: <http://
|
125 |
|
126 |
= Translating s2Member® =
|
127 |
|
128 |
-
Please see
|
129 |
|
130 |
== License ==
|
131 |
|
@@ -169,12 +169,84 @@ Released under the terms of the [GNU General Public License](http://www.gnu.org/
|
|
169 |
|
170 |
== Upgrade Notice ==
|
171 |
|
172 |
-
=
|
173 |
|
174 |
(Maintenance Release) Upgrade immediately.
|
175 |
|
176 |
== Changelog ==
|
177 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
= v150925 =
|
179 |
|
180 |
- (s2Member/s2Member Pro) **WP v4.3 Compat.** This release corrects a minor backward compatibility issue with versions of WordPress before v4.3, and for installations of s2Member that still use the `%%user_pass%%` Replacement Code in their New User Email notification. See [this GitHub issue](https://github.com/websharks/s2member/issues/710) if you'd like additional details.
|
1 |
=== s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
|
2 |
|
3 |
+
Version: 151210
|
4 |
+
Stable tag: 151210
|
5 |
|
6 |
SSL Compatible: yes
|
7 |
bbPress® Compatible: yes
|
17 |
Google® Checkout Compatible: yes w/s2Member® Pro
|
18 |
ClickBank® Compatible: yes w/s2Member® Pro
|
19 |
|
20 |
+
Tested up to: 4.4
|
21 |
Requires at least: 4.2
|
22 |
|
23 |
Requires PHP: 5.2+
|
24 |
+
Tested up to PHP: 7.0
|
25 |
|
26 |
Copyright: © 2009 WebSharks, Inc.
|
27 |
License: GNU General Public License v2 or later.
|
28 |
Contributors: WebSharks, JasWSInc, anguz, raamdev, sitegeek, kristineds
|
29 |
|
30 |
Author: s2Member® / WebSharks, Inc.
|
31 |
+
Author URI: http://s2member.com/
|
32 |
+
Donate link: http://s2member.com/donate/
|
33 |
+
Beta link: http://s2member.com/beta-testers/
|
34 |
|
35 |
Text Domain: s2member
|
36 |
Domain Path: /includes/translations
|
37 |
|
38 |
Plugin Name: s2Member® Framework
|
39 |
+
Forum URI: http://s2member.com/forums/
|
40 |
+
Plugin URI: http://s2member.com/
|
41 |
+
Privacy URI: http://s2member.com/privacy-policy/
|
42 |
+
Changelog URI: http://s2member.com/changelog/
|
43 |
+
Video Tutorials: http://s2member.com/videos/
|
44 |
+
Knowledge Base: http://s2member.com/kb/
|
45 |
+
Newsletter: http://s2member.com/r/subscribe/
|
46 |
+
Pro Add-on / Home Page: http://s2member.com/
|
47 |
+
Pro Add-on / Prices: http://s2member.com/prices/
|
48 |
Pro Add-on / Auto-Update URL: https://www.s2member.com/
|
49 |
+
PayPal Pro Integration: http://s2member.com/r/pp-account-types/
|
50 |
+
Professional Installation URI: http://s2member.com/r/professional-installation/
|
51 |
|
52 |
Description: s2Member®—a powerful (free) membership plugin for WordPress®. Protect members only content with roles/capabilities.
|
53 |
Tags: s2, s2member, s2 member, membership, users, user, members, member, subscribers, subscriber, members only, roles, capabilities, capability, register, signup, stripe, bitcoin, paypal, paypal pro, pay pal, authorize, authorize.net, google wallet, clickbank, click bank, buddypress, buddy press, bbpress, bb press, shopping cart, cart, checkout, ecommerce
|
117 |
|
118 |
= Please Check the Following s2Member® Resources =
|
119 |
|
120 |
+
* s2Member® FAQs: <http://s2member.com/faqs/>
|
121 |
+
* Knowledge Base: <http://s2member.com/kb/>
|
122 |
+
* Video Tutorials: <http://s2member.com/videos/>
|
123 |
+
* Community: <http://s2member.com/forums/>
|
124 |
+
* Codex: <http://s2member.com/codex/>
|
125 |
|
126 |
= Translating s2Member® =
|
127 |
|
128 |
+
Please see: <http://s2member.com/r/translations/>
|
129 |
|
130 |
== License ==
|
131 |
|
169 |
|
170 |
== Upgrade Notice ==
|
171 |
|
172 |
+
= v151210 =
|
173 |
|
174 |
(Maintenance Release) Upgrade immediately.
|
175 |
|
176 |
== Changelog ==
|
177 |
|
178 |
+
= v151210 =
|
179 |
+
|
180 |
+
- (s2Member/s2Member Pro) **WP/PHP Compat:** Updated for compatibility with WordPress 4.4 and PHP v7.0. Note that s2Member and s2Member Pro also remain compatible with WordPress 4.3 and PHP 5.2. However, PHP 5.5+ is strongly recommended.
|
181 |
+
|
182 |
+
- (s2Member Pro) **New Feature! EOT Renewal/Reminder Email Notifications:** This release adds a long-awaited feature which allows you to configure & send EOT Renewal/Reminder Email notifications to your customers; to let them know their account with you will expire soon.
|
183 |
+
|
184 |
+
It's possible to configure one or more notifications, each with a different set of recipients, and a different subject and message body. Notifications can be sent out X days before the EOT occurs, _the day_ of the EOT, or X days after the EOT has already occurred; e.g., to encourage renewals.
|
185 |
+
|
186 |
+
See: **Dashboard → s2Member → Stripe Options → EOT Renewal/Reminder Email(s)**
|
187 |
+
_Also works with PayPal Pro, Authorize.Net, and ClickBank._
|
188 |
+
|
189 |
+
Props @clavaque @KTS915 @raamdev @patdumond @kristineds @pagelab @chronicelite @csexplorer17 @radven, and all of our great supporters. See [this GitHub issue](https://github.com/websharks/s2member/issues/122#issuecomment-161531763).
|
190 |
+
|
191 |
+
- (s2Member/s2Member Pro) **Cleanup:** This release improves the list of Other Gateways; moving deprecated payment gateways to the bottom of the list and improving the display of the list overall. Props @kristineds @clavaque. For further details, see [this GitHub issue](https://github.com/websharks/s2member/issues/715).
|
192 |
+
|
193 |
+
- (s2Member/s2Member Pro) **Bug Fix:** This release corrects an "Insecure Content Warning" that may have appeared in certain portions of the s2Member Dashboard panels whenever you accessed your Dashboard over the `https` protocol. The issue was seen in Google Chrome and it was simply a `<form>` tag that referenced the s2Member mailing list. This is now hidden by default if you access the Dashboard over SSL, in order to avoid this warning. Props @patdumond for reporting. Props @renzms for fixing. See also [this GitHub issue](https://github.com/websharks/s2member/issues/678) if you'd like additional details.
|
194 |
+
|
195 |
+
- (s2Member Pro) **Stripe Locale:** This release adjusts the Stripe overlay so that it will automatically display in the language associated with a visitor's country. This was accomplished by setting the Stripe Checkout variable `locale: 'auto'` as suggested in [this GitHub issue](https://github.com/websharks/s2member/issues/728). Props @renzms
|
196 |
+
|
197 |
+
- (s2Member Pro) **Stripe Bug Fix:** This release improves the way Stripe Image Branding and Stripe Statement Descriptions are applied whenever you intentionally leave them empty. It also changes the default value of Stripe Image Branding to an empty string; which will tell Stripe to use the account-level default value that you configured in your Stripe Dashboard in favor of that which you configure with s2Member. The choice is still yours, but this release sets what others have told us are better default values. See also [this GitHub issue](https://github.com/websharks/s2member/issues/666) if you'd like additional details.
|
198 |
+
|
199 |
+
- (s2Member Pro) **Stripe Enhancement:** This release makes it possible to configure the Stripe "Remember Me" functionality with s2Member; i.e., it is now possible to turn this on/off if you so desire. See also [this GitHub issue](https://github.com/websharks/s2member/issues/357) for details.
|
200 |
+
|
201 |
+
- (s2Member Pro) **Stripe Enhancement:** This release makes it possible for you to tell Stripe to collect a customer's full Billing Address and/or full Shipping Address. See [this GitHub issue](https://github.com/websharks/s2member/issues/667) for additional details.
|
202 |
+
|
203 |
+
- (s2Member/s2Member Pro) **UI Clarity:** This release improves the way the New User Email Notification panel behaves whenever you also have Custom Passwords enabled with s2Member. The New User Email Notification is only sent when Custom Passwords are off, so this panel should disable itself whenever that is the case. Fixed in this release. Props @raamdev See also: [this GitHub issue](https://github.com/websharks/s2member/issues/739) if you'd like additional details.
|
204 |
+
|
205 |
+
- (s2Member/s2Member Pro) **Bug Fix:** This release resolves a minor issue for developers running Vagrant and VVV with symlink plugins. Props @magbicaleman ~ See [this GitHub issue](https://github.com/websharks/s2member/issues/717) for further details.
|
206 |
+
|
207 |
+
- (s2Member Pro) **Conflict Resolution:** This release resolves a conflict with the WP Full Stripe plugin and any other plugins that already load an existing copy of the Stripe SDK at runtime; in concert with s2Member Pro. See [this GitHub issue](https://github.com/websharks/s2member/issues/750) if you'd like additional details.
|
208 |
+
|
209 |
+
- (s2Member/s2Member Pro) **New Log File:** This release of s2Member adds a new log file that keeps track of all automatic EOTs that occur through the underlying CRON job. The new log file is named: `auto-eot-system.log` and you can learn more about this file and view it from: **Dashboard → s2Member → Log Files (Debug) → Log Viewer**. Props @raamdev ~ See [this GitHub issue](https://github.com/websharks/s2member/issues/759) if you'd like additional details.
|
210 |
+
|
211 |
+
- (s2Member Pro) **`[s2Member-List /]` Bug Fix:** This release resolves a problem in the `[s2Member-List /]` shortcode whenever it is configured to search Custom Fields generated with s2Member. Props @patdumond @renzms. See [this GitHub issue](https://github.com/websharks/s2member/issues/765) if you'd like additional details.
|
212 |
+
|
213 |
+
- (s2Member Pro) **Stripe Enhancement:** This release updates s2Member's Stripe integration so that any Buy Now transaction spawns a Stripe popup with the amount and full description filled within the popup itself as well. Props @raamdev. See [this GitHub issue](https://github.com/websharks/s2member/issues/749) for further details.
|
214 |
+
|
215 |
+
- (s2Member/s2Member Pro) **WP v4.3 Compat.** This release addresses a minor conflict between functionality provided by s2Member and that of the WordPress core itself. Whenever you change a user's password by editing their account, you can choose to send them an email about this change (or not). Since WordPress v4.3, the WordPress core will _also_ send a more vague email to notify the user of a password change, which is not customizable. This release disables that default email notification in favor of the more helpful and customizable email message that can be sent by s2Member. Simply tick the "Reset Password & Resend New User Email Notification" checkbox whenever you are editing a user. Props @patdumond for reporting. See also [this GitHub issue](https://github.com/websharks/s2member/issues/777) if you'd like additional details.
|
216 |
+
|
217 |
+
- (s2Member/s2Member Pro) **PayPal Compat.** This release resolves a conflict between s2Member and a nasty bug at PayPal.com that came to light recently. In some cases, customers reported that clicking the "Continue" button at PayPal.com simply reloaded the page and gave no response. We found that this was attributed to a bug on the PayPal side (see [792](https://github.com/websharks/s2member/issues/792)). To work around this bug, we are using a new default value for the `ns="1"` shortcode attribute in PayPal Pro-Forms and PayPal Buttons. The new default value is `ns="0"`, which seems to work around this bug for the time being. Props @patdumond @raamdev for reporting and testing this fix. See also [full report here](https://github.com/websharks/s2member/issues/792).
|
218 |
+
|
219 |
+
- `ns="0"` (**new default**) = prompt for a shipping address, but do not require one
|
220 |
+
- `ns="1"` (old default) = do not prompt for a shipping address whatsoever
|
221 |
+
|
222 |
+
See also: **Dashboard → s2Member → PayPal Pro-Forms → PayPal Shortcode Attributes (Explained)**
|
223 |
+
|
224 |
+
- (s2Member/s2Member Pro) **Getting Started:** The old Quick Start Guide was renamed to "Getting Started" in this release. It was also cleaned up and improved a bit; i.e., brought up-to-date. In addition, there is a new welcome message for first-time users of the software that invites them to read over the Getting Started page before they begin. Props @raamdev. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/655).
|
225 |
+
|
226 |
+
- (s2Member Pro) **Stripe Bug Fix:** This release corrects a problem with Stripe refund and chargeback notification handling. s2Member Pro will now receive and handle Stripe refund and/or chargeback events (through your existing Webhook) as expected.
|
227 |
+
|
228 |
+
See: **Dashboard → s2Member → Stripe Options → Automatic EOT Behavior** for options that allow you to control the way in which s2Member should respond whenever a refund is processed, or when a dispute (chargeback) occurs at Stripe.
|
229 |
+
|
230 |
+
Props @ElizWS and @tubiz w/ AffiliateWP. See also [this GitHub issue](https://github.com/websharks/s2member/issues/706).
|
231 |
+
|
232 |
+
- (s2Member Pro) **`[s2Member-List /]`** Added the ability to search usermeta data too. For instance, you can now search `first_name`, `last_name`, `nickname`, `description`, `s2member_subscr_id`, `s2member_custom`, etc, etc. See [this GitHub issue](https://github.com/websharks/s2member/issues/596).
|
233 |
+
|
234 |
+
_**Note:** The `first_name`, `last_name`, and `nickname` columns are now a part of the default value for the `search_columns=""` attribute in the `[s2Member-List /]` shortcode. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/596). Props @patdumond for her ideas._
|
235 |
+
|
236 |
+
- (s2Member Pro) **`[s2Member-List /]`** There are some new `orderby=""` options. You may now choose to order the list by: `first_name`, `last_name`, or `nickname`.
|
237 |
+
|
238 |
+
- (s2Member Pro) **`[s2Member-List /]`** It is now possible to search through s2Member Custom Registration/Profile Fields that may contain an array of values; i.e., you can now search _any_ Custom Registration/Profile Field in s2Member. For instance, if a field is designed to accept multiple selections, or you provide a set of multiple checkbox options. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/555).
|
239 |
+
|
240 |
+
- (s2Member Pro) **`[s2Member-List /]` Bug Fix:** Meta fields that contained a timestamp were being displayed by the `date_i18n()` function in WP core. However, the time offset calculation was wrong; i.e., not a match to the local time configured by your installation of WordPress. Fixed in this release.
|
241 |
+
|
242 |
+
- (s2Member Pro) **`[s2Member-List /]` Bug Fix:** Minor formatting corrections for replacement codes made available for the `link_*=""` attributes in the `[s2Member-List /]` shortcode.
|
243 |
+
|
244 |
+
- (s2Member Pro) **`[s2Member-List /]`:** It is now possible to search for an exact match by surrounding your search query with double quotes; e.g., `"john doe"` (in quotes, for an exact match), instead of the default behavior, which is `*john doe*` behind-the-scenes; i.e., a fuzzy match.
|
245 |
+
|
246 |
+
- (s2Member Pro) **`[s2Member-List /]`:** Several behind-the-scenes performance enhancements.
|
247 |
+
|
248 |
+
- (s2Member/s2Member Pro) **PHP 7 Compat.** This release of s2Member removes its use of the `/e` modifier in calls to `preg_replace()`, which was deprecated in PHP 5.5 and has been removed in PHP 7. Props @bridgeport. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/415).
|
249 |
+
|
250 |
= v150925 =
|
251 |
|
252 |
- (s2Member/s2Member Pro) **WP v4.3 Compat.** This release corrects a minor backward compatibility issue with versions of WordPress before v4.3, and for installations of s2Member that still use the `%%user_pass%%` Replacement Code in their New User Email notification. See [this GitHub issue](https://github.com/websharks/s2member/issues/710) if you'd like additional details.
|
s2member-o.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* WordPress with s2Member only.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
-
* {@link http://
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
3 |
* WordPress with s2Member only.
|
4 |
*
|
5 |
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
* (coded in the USA)
|
8 |
*
|
9 |
* Released under the terms of the GNU General Public License.
|
s2member.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
* PHP, WordPress and other compatibility requirements.
|
7 |
*
|
8 |
* Copyright: © 2009-2011
|
9 |
-
* {@link http://
|
10 |
* (coded in the USA)
|
11 |
*
|
12 |
* Released under the terms of the GNU General Public License.
|
@@ -19,8 +19,8 @@
|
|
19 |
*/
|
20 |
/* -- This section for WordPress parsing. ------------------------------------------------------------------------------
|
21 |
|
22 |
-
Version:
|
23 |
-
Stable tag:
|
24 |
|
25 |
SSL Compatible: yes
|
26 |
bbPress Compatible: yes
|
@@ -35,31 +35,36 @@ Authorize.Net Compatible: yes w/s2Member Pro
|
|
35 |
Google Wallet Compatible: yes w/s2Member Pro
|
36 |
ClickBank Compatible: yes w/s2Member Pro
|
37 |
|
38 |
-
Tested up to: 4.4
|
39 |
Requires at least: 4.2
|
40 |
|
|
|
|
|
|
|
41 |
Copyright: © 2009 WebSharks, Inc.
|
42 |
License: GNU General Public License
|
43 |
Contributors: WebSharks, JasWSInc, anguz, raamdev, bruce-caldwell
|
44 |
|
45 |
Author: s2Member / WebSharks, Inc.
|
46 |
-
Author URI: http://
|
47 |
-
Donate link: http://
|
48 |
|
49 |
Text Domain: s2member
|
50 |
Domain Path: /includes/translations
|
51 |
|
52 |
Plugin Name: s2Member Framework
|
53 |
-
Forum URI: http://
|
54 |
-
Plugin URI: http://
|
55 |
-
Privacy URI: http://
|
56 |
-
Changelog URI: http://
|
57 |
-
Video Tutorials: http://
|
58 |
-
|
59 |
-
|
60 |
-
Pro Add-on /
|
61 |
-
|
62 |
-
|
|
|
|
|
63 |
|
64 |
Description: s2Member, a powerful (free) membership plugin for WordPress. Protect/secure members only content with roles/capabilities.
|
65 |
Tags: s2, s2member, s2 member, membership, users, user, members, member, subscribers, subscriber, members only, roles, capabilities, capability, register, signup, paypal, paypal pro, pay pal, authorize, authorize.net, google wallet, clickbank, click bank, buddypress, buddy press, bbpress, bb press, shopping cart, cart, checkout, ecommerce
|
@@ -76,7 +81,7 @@ if(!defined('WPINC')) // MUST have WordPress.
|
|
76 |
* @var string
|
77 |
*/
|
78 |
if(!defined('WS_PLUGIN__S2MEMBER_VERSION'))
|
79 |
-
define('WS_PLUGIN__S2MEMBER_VERSION', '
|
80 |
/**
|
81 |
* Minimum PHP version required to run s2Member.
|
82 |
*
|
@@ -106,7 +111,7 @@ if(!defined('WS_PLUGIN__S2MEMBER_MIN_WP_VERSION'))
|
|
106 |
* @var string
|
107 |
*/
|
108 |
if(!defined('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION'))
|
109 |
-
define('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION', '
|
110 |
/*
|
111 |
Several compatibility checks.
|
112 |
If all pass, load the s2Member plugin.
|
6 |
* PHP, WordPress and other compatibility requirements.
|
7 |
*
|
8 |
* Copyright: © 2009-2011
|
9 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
10 |
* (coded in the USA)
|
11 |
*
|
12 |
* Released under the terms of the GNU General Public License.
|
19 |
*/
|
20 |
/* -- This section for WordPress parsing. ------------------------------------------------------------------------------
|
21 |
|
22 |
+
Version: 151210
|
23 |
+
Stable tag: 151210
|
24 |
|
25 |
SSL Compatible: yes
|
26 |
bbPress Compatible: yes
|
35 |
Google Wallet Compatible: yes w/s2Member Pro
|
36 |
ClickBank Compatible: yes w/s2Member Pro
|
37 |
|
38 |
+
Tested up to: 4.4
|
39 |
Requires at least: 4.2
|
40 |
|
41 |
+
Requires PHP: 5.2+
|
42 |
+
Tested up to PHP: 7.0
|
43 |
+
|
44 |
Copyright: © 2009 WebSharks, Inc.
|
45 |
License: GNU General Public License
|
46 |
Contributors: WebSharks, JasWSInc, anguz, raamdev, bruce-caldwell
|
47 |
|
48 |
Author: s2Member / WebSharks, Inc.
|
49 |
+
Author URI: http://s2member.com/
|
50 |
+
Donate link: http://s2member.com/donate/
|
51 |
|
52 |
Text Domain: s2member
|
53 |
Domain Path: /includes/translations
|
54 |
|
55 |
Plugin Name: s2Member Framework
|
56 |
+
Forum URI: http://s2member.com/forums/
|
57 |
+
Plugin URI: http://s2member.com/
|
58 |
+
Privacy URI: http://s2member.com/privacy-policy/
|
59 |
+
Changelog URI: http://s2member.com/changelog/
|
60 |
+
Video Tutorials: http://s2member.com/videos/
|
61 |
+
Knowledge Base: http://s2member.com/kb/
|
62 |
+
Newsletter: http://s2member.com/r/subscribe/
|
63 |
+
Pro Add-on / Home Page: http://s2member.com/
|
64 |
+
Pro Add-on / Prices: http://s2member.com/prices/
|
65 |
+
Pro Add-on / Auto-Update URL: https://www.s2member.com/
|
66 |
+
PayPal Pro Integration: http://s2member.com/r/pp-account-types/
|
67 |
+
Professional Installation URI: http://s2member.com/r/professional-installation/
|
68 |
|
69 |
Description: s2Member, a powerful (free) membership plugin for WordPress. Protect/secure members only content with roles/capabilities.
|
70 |
Tags: s2, s2member, s2 member, membership, users, user, members, member, subscribers, subscriber, members only, roles, capabilities, capability, register, signup, paypal, paypal pro, pay pal, authorize, authorize.net, google wallet, clickbank, click bank, buddypress, buddy press, bbpress, bb press, shopping cart, cart, checkout, ecommerce
|
81 |
* @var string
|
82 |
*/
|
83 |
if(!defined('WS_PLUGIN__S2MEMBER_VERSION'))
|
84 |
+
define('WS_PLUGIN__S2MEMBER_VERSION', '151210' /* !#distro-version#! */);
|
85 |
/**
|
86 |
* Minimum PHP version required to run s2Member.
|
87 |
*
|
111 |
* @var string
|
112 |
*/
|
113 |
if(!defined('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION'))
|
114 |
+
define('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION', '151210' /* !#distro-version#! */);
|
115 |
/*
|
116 |
Several compatibility checks.
|
117 |
If all pass, load the s2Member plugin.
|