Version Description
-
(s2Member). Bug fix. The Shortcode version of s2Member's Profile Editing Panel ( i.e.
[s2Member-Profile /]
) was not validating input fields properly. This bug was has been resolved in v3.5.8+. -
(s2Member). Compatibility. s2Member now requires PHP v5.2.3+ instead of just PHP v5.2+. This is because
call_user_func_array()
in early versions of PHP 5.2 did not support static class methods with a scope resolution operator. If you've had trouble getting s2Member v3.5+ to run on your server, this is likely the cause. Please make sure you're running PHP v5.2.3+. -
(s2Member). Bug fix. PayPal Button Encryption was failing under some circumstances, because the PayPal API Method
BMCreateButton
requires two decimal places at all times. The bug fix in this release does NOT require any changes to your Shortcode attributes. Rather, the encryption routine will now automatically convert numeric dollar amounts during encryption. - (s2Member Pro). Compatibility. Starting with s2Member Pro v3.5.8+, Pro Cancellation Forms will automatically detect Customers that may have signed up with a Standard PayPal Button, and provide the Customer with a link & instructions about how to cancel their "Subscription" via PayPal. This makes it possible for site owners upgrading to s2Member Pro, to provide their Customers with just ONE Cancellation Form, which has the ability to consider both PayPal Standard "Subscriptions", and also "Recurring Profiles"; which are used by s2Member Pro Forms.
Download this release
Release Info
Developer | PriMoThemes |
Plugin | s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) |
Version | 3.5.8 |
Comparing to | |
See all releases |
Code changes from version 3.5.7 to 3.5.8
- images/brand-tools.fla +0 -0
- images/brand-tools.png +0 -0
- images/brand-videos.fla +0 -0
- images/brand-videos.png +0 -0
- includes/classes/files-in.inc.php +2 -2
- includes/classes/paypal-return-in.inc.php +48 -22
- includes/classes/readmes.inc.php +13 -1
- includes/classes/sc-paypal-button-e.inc.php +8 -1
- includes/classes/utils-strings.inc.php +2 -2
- includes/dropins/bridges/_s2member-bbpress-bridge.php +1 -1
- includes/menu-pages/api-ops.inc.php +1 -0
- includes/menu-pages/bridges.inc.php +1 -0
- includes/menu-pages/down-ops.inc.php +1 -0
- includes/menu-pages/els-ops.inc.php +1 -0
- includes/menu-pages/info.inc.php +1 -0
- includes/menu-pages/menu-pages.css +2 -0
- includes/menu-pages/mms-options.inc.php +1 -0
- includes/menu-pages/options.inc.php +1 -0
- includes/menu-pages/paypal-buttons.inc.php +1 -0
- includes/menu-pages/paypal-ops.inc.php +1 -0
- includes/menu-pages/scripting.inc.php +1 -0
- includes/menu-pages/start.inc.php +17 -0
- includes/menu-pages/trk-ops.inc.php +1 -0
- includes/s2member-min.js +1 -1
- includes/s2member.js +131 -126
- includes/syscon.inc.php +1 -1
- licensing/license.txt +4 -0
- readme.txt +23 -23
- s2member.php +8 -7
images/brand-tools.fla
CHANGED
Binary file
|
images/brand-tools.png
CHANGED
Binary file
|
images/brand-videos.fla
ADDED
Binary file
|
images/brand-videos.png
ADDED
Binary file
|
includes/classes/files-in.inc.php
CHANGED
@@ -64,7 +64,7 @@ if (!class_exists ("c_ws_plugin__s2member_files_in"))
|
|
64 |
&& wp_redirect (add_query_arg (urlencode_deep (array ("s2member_seeking" => "file-" . $_GET["s2member_file_download"])), get_page_link ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["file_download_limit_exceeded_page"])), apply_filters ("ws_plugin__s2member_content_redirect_status", 301, get_defined_vars ())) !== "nill")
|
65 |
exit ();
|
66 |
/**/
|
67 |
-
else if (preg_match ("/^access[_\-]s2member[_\-]level([0-
|
68 |
{
|
69 |
$level_req = $m[1]; /* Which Level does this require? */
|
70 |
if (!$user->has_cap ("access_s2member_level" . $level_req) /* Does the User have access to this Level? */
|
@@ -168,7 +168,7 @@ if (!class_exists ("c_ws_plugin__s2member_files_in"))
|
|
168 |
while (!feof ($stream) && ($chunk_size = strlen ($data = fread ($stream, 2097152))))
|
169 |
eval ('echo dechex ($chunk_size) . "\r\n". $data . "\r\n"; @flush ();');
|
170 |
/**/
|
171 |
-
fclose
|
172 |
/**/
|
173 |
exit ("0\r\n\r\n");
|
174 |
}
|
64 |
&& wp_redirect (add_query_arg (urlencode_deep (array ("s2member_seeking" => "file-" . $_GET["s2member_file_download"])), get_page_link ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["file_download_limit_exceeded_page"])), apply_filters ("ws_plugin__s2member_content_redirect_status", 301, get_defined_vars ())) !== "nill")
|
65 |
exit ();
|
66 |
/**/
|
67 |
+
else if (preg_match ("/^access[_\-]s2member[_\-]level([0-9]+)\//", $_GET["s2member_file_download"], $m))
|
68 |
{
|
69 |
$level_req = $m[1]; /* Which Level does this require? */
|
70 |
if (!$user->has_cap ("access_s2member_level" . $level_req) /* Does the User have access to this Level? */
|
168 |
while (!feof ($stream) && ($chunk_size = strlen ($data = fread ($stream, 2097152))))
|
169 |
eval ('echo dechex ($chunk_size) . "\r\n". $data . "\r\n"; @flush ();');
|
170 |
/**/
|
171 |
+
fclose($stream);
|
172 |
/**/
|
173 |
exit ("0\r\n\r\n");
|
174 |
}
|
includes/classes/paypal-return-in.inc.php
CHANGED
@@ -37,11 +37,11 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in"))
|
|
37 |
/**/
|
38 |
$paypal["subscr_gateway"] = ($_GET["s2member_paypal_proxy"]) ? $_GET["s2member_paypal_proxy"] : "paypal";
|
39 |
/**/
|
40 |
-
if (!$_GET["s2member_paypal_proxy"] || !preg_match ("/ty-email/"
|
41 |
{
|
42 |
$payment_status_issues = "/^(failed|denied|expired|refunded|partially_refunded|reversed|reversal|canceled_reversal|voided)$/i";
|
43 |
/**/
|
44 |
-
if (preg_match ("/^" . preg_quote (preg_replace ("/\:([0-9]+)$/", "", $_SERVER["HTTP_HOST"]), "/") . "/i"
|
45 |
{ /* The business address validation was removed from this routine, because PayPal® always fills that with the primary
|
46 |
email address. In cases where an alternate PayPal® address is being paid, validation was not possible. */
|
47 |
$paypal["s2member_log"][] = "s2Member originating domain ( _SERVER[HTTP_HOST] ) validated.";
|
@@ -55,9 +55,9 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in"))
|
|
55 |
/*
|
56 |
Specific Post/Page Access ~ Sales.
|
57 |
*/
|
58 |
-
if (/**/(preg_match ("/^web_accept$/i"
|
59 |
-
&& (preg_match ("/^sp\:[0-9,]+\:[0-9]+$/"
|
60 |
-
&& (!preg_match ($payment_status_issues
|
61 |
&& ($paypal["txn_id"])/**/)
|
62 |
{
|
63 |
eval ('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
|
@@ -123,10 +123,10 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in"))
|
|
123 |
With Auto-Return URLs via PDT, PayPal® will send subscr_payment instead of subscr_signup.
|
124 |
So we need to look for (web_accept|subscr_signup|subscr_payment), and treat the same.
|
125 |
*/
|
126 |
-
else if (/**/(preg_match ("/^(web_accept|subscr_signup|subscr_payment)$/i"
|
127 |
-
&& (preg_match ("/^[1-4](\:|$)([\+a-z_0-9,]+)?(\:)?([0-9]+ [A-Z])?$/"
|
128 |
&& ($paypal["subscr_id"] || ($paypal["subscr_id"] = $paypal["txn_id"]))/**/
|
129 |
-
&& (!preg_match ($payment_status_issues
|
130 |
{
|
131 |
eval ('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
|
132 |
do_action ("ws_plugin__s2member_during_paypal_return_before_subscr_signup", get_defined_vars ());
|
@@ -138,7 +138,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in"))
|
|
138 |
/*
|
139 |
New Subscription with advanced update vars ( option_name1, option_selection1 ).
|
140 |
*/
|
141 |
-
if (preg_match ("/(updat|upgrad)/i"
|
142 |
/* This advanced method is required whenever a Subscription that is already completed, or was never setup to recur in the first place needs to be modified. PayPal® will not allow the
|
143 |
modify=2 parameter to be used in those scenarios, because technically there is nothing to update. The only thing to be updated is the account. */
|
144 |
{
|
@@ -202,7 +202,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in"))
|
|
202 |
/**/
|
203 |
if ($redirection_url_after_modification = apply_filters ("ws_plugin__s2member_redirection_url_after_modification", false, get_defined_vars ()))
|
204 |
{
|
205 |
-
$paypal["s2member_log"][] = "Redirecting
|
206 |
/**/
|
207 |
echo '<script type="text/javascript">' . "\n";
|
208 |
echo "alert('Thank you! You\\'ve been updated to:\\n\\n" . esc_js ($paypal["item_name"]) . "');" . "\n";
|
@@ -271,21 +271,47 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in"))
|
|
271 |
do_action ("ws_plugin__s2member_during_paypal_return_during_subscr_signup_wo_update_vars", get_defined_vars ());
|
272 |
unset ($__refs, $__v); /* Unset defined __refs, __v. */
|
273 |
/**/
|
274 |
-
$paypal["s2member_log"][] = "Redirecting Customer to Registration Page. They need to Register now.";
|
275 |
-
/**/
|
276 |
if (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && is_main_site ())
|
277 |
{
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
282 |
}
|
283 |
else /* Otherwise, this is NOT a Multisite install. Or it is, but the Super Administrator is NOT selling Blog creation. */
|
284 |
{
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
289 |
}
|
290 |
/**/
|
291 |
eval ('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
|
@@ -300,8 +326,8 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in"))
|
|
300 |
/*
|
301 |
Subscription modifications.
|
302 |
*/
|
303 |
-
else if (/**/(preg_match ("/^subscr_modify$/i"
|
304 |
-
&& (preg_match ("/^[1-4](\:|$)([\+a-z_0-9,]+)?(\:)?([0-9]+ [A-Z])?$/"
|
305 |
&& ($paypal["subscr_id"])/**/)
|
306 |
{
|
307 |
eval ('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
|
37 |
/**/
|
38 |
$paypal["subscr_gateway"] = ($_GET["s2member_paypal_proxy"]) ? $_GET["s2member_paypal_proxy"] : "paypal";
|
39 |
/**/
|
40 |
+
if (!$_GET["s2member_paypal_proxy"] || !preg_match ("/ty-email/", $_GET["s2member_paypal_proxy_use"]))
|
41 |
{
|
42 |
$payment_status_issues = "/^(failed|denied|expired|refunded|partially_refunded|reversed|reversal|canceled_reversal|voided)$/i";
|
43 |
/**/
|
44 |
+
if (preg_match ("/^" . preg_quote (preg_replace ("/\:([0-9]+)$/", "", $_SERVER["HTTP_HOST"]), "/") . "/i", $paypal["custom"]))
|
45 |
{ /* The business address validation was removed from this routine, because PayPal® always fills that with the primary
|
46 |
email address. In cases where an alternate PayPal® address is being paid, validation was not possible. */
|
47 |
$paypal["s2member_log"][] = "s2Member originating domain ( _SERVER[HTTP_HOST] ) validated.";
|
55 |
/*
|
56 |
Specific Post/Page Access ~ Sales.
|
57 |
*/
|
58 |
+
if (/**/(preg_match ("/^web_accept$/i", $paypal["txn_type"]))/**/
|
59 |
+
&& (preg_match ("/^sp\:[0-9,]+\:[0-9]+$/", $paypal["item_number"]))/**/
|
60 |
+
&& (!preg_match ($payment_status_issues, $paypal["payment_status"]))/**/
|
61 |
&& ($paypal["txn_id"])/**/)
|
62 |
{
|
63 |
eval ('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
|
123 |
With Auto-Return URLs via PDT, PayPal® will send subscr_payment instead of subscr_signup.
|
124 |
So we need to look for (web_accept|subscr_signup|subscr_payment), and treat the same.
|
125 |
*/
|
126 |
+
else if (/**/(preg_match ("/^(web_accept|subscr_signup|subscr_payment)$/i", $paypal["txn_type"]))/**/
|
127 |
+
&& (preg_match ("/^[1-4](\:|$)([\+a-z_0-9,]+)?(\:)?([0-9]+ [A-Z])?$/", $paypal["item_number"]))/**/
|
128 |
&& ($paypal["subscr_id"] || ($paypal["subscr_id"] = $paypal["txn_id"]))/**/
|
129 |
+
&& (!preg_match ($payment_status_issues, $paypal["payment_status"]))/**/)
|
130 |
{
|
131 |
eval ('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
|
132 |
do_action ("ws_plugin__s2member_during_paypal_return_before_subscr_signup", get_defined_vars ());
|
138 |
/*
|
139 |
New Subscription with advanced update vars ( option_name1, option_selection1 ).
|
140 |
*/
|
141 |
+
if (preg_match ("/(updat|upgrad)/i", $paypal["option_name1"]) && $paypal["option_selection1"]) /* Advanced Subscription update modifications. */
|
142 |
/* This advanced method is required whenever a Subscription that is already completed, or was never setup to recur in the first place needs to be modified. PayPal® will not allow the
|
143 |
modify=2 parameter to be used in those scenarios, because technically there is nothing to update. The only thing to be updated is the account. */
|
144 |
{
|
202 |
/**/
|
203 |
if ($redirection_url_after_modification = apply_filters ("ws_plugin__s2member_redirection_url_after_modification", false, get_defined_vars ()))
|
204 |
{
|
205 |
+
$paypal["s2member_log"][] = "Redirecting Customer to a custom URL after modification: " . $redirection_url_after_modification;
|
206 |
/**/
|
207 |
echo '<script type="text/javascript">' . "\n";
|
208 |
echo "alert('Thank you! You\\'ve been updated to:\\n\\n" . esc_js ($paypal["item_name"]) . "');" . "\n";
|
271 |
do_action ("ws_plugin__s2member_during_paypal_return_during_subscr_signup_wo_update_vars", get_defined_vars ());
|
272 |
unset ($__refs, $__v); /* Unset defined __refs, __v. */
|
273 |
/**/
|
|
|
|
|
274 |
if (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && is_main_site ())
|
275 |
{
|
276 |
+
if ($redirection_url_after_mms_farm_signup = apply_filters ("ws_plugin__s2member_redirection_url_after_mms_farm_signup", false, get_defined_vars ()))
|
277 |
+
{
|
278 |
+
$paypal["s2member_log"][] = "Redirecting Customer to a custom URL after signup: " . $redirection_url_after_mms_farm_signup;
|
279 |
+
/**/
|
280 |
+
echo '<script type="text/javascript">' . "\n";
|
281 |
+
echo "alert('Thank you! Your account has been approved.\\nPlease click OK to continue.');" . "\n";
|
282 |
+
echo "window.location = '" . esc_js ($redirection_url_after_mms_farm_signup) . "';" . "\n";
|
283 |
+
echo '</script>' . "\n";
|
284 |
+
}
|
285 |
+
else /* Else, use standard/default handling in this scenario. Have the Customer register a Username. */
|
286 |
+
{
|
287 |
+
$paypal["s2member_log"][] = "Redirecting Customer to Signup Page. They need to Signup/Register now.";
|
288 |
+
/**/
|
289 |
+
echo '<script type="text/javascript">' . "\n"; /* Can be Filtered w/ `wp_signup_location`. */
|
290 |
+
echo "alert('Thank you! Your account has been approved.\\nThe next step is to Register.\\n\\nPlease click OK to Register now.');" . "\n";
|
291 |
+
echo "window.location = '" . esc_js (c_ws_plugin__s2member_utils_urls::wp_signup_url ()) . "';" . "\n";
|
292 |
+
echo '</script>' . "\n";
|
293 |
+
}
|
294 |
}
|
295 |
else /* Otherwise, this is NOT a Multisite install. Or it is, but the Super Administrator is NOT selling Blog creation. */
|
296 |
{
|
297 |
+
if ($redirection_url_after_signup = apply_filters ("ws_plugin__s2member_redirection_url_after_signup", false, get_defined_vars ()))
|
298 |
+
{
|
299 |
+
$paypal["s2member_log"][] = "Redirecting Customer to a custom URL after signup: " . $redirection_url_after_signup;
|
300 |
+
/**/
|
301 |
+
echo '<script type="text/javascript">' . "\n";
|
302 |
+
echo "alert('Thank you! Your account has been approved.\\nPlease click OK to continue.');" . "\n";
|
303 |
+
echo "window.location = '" . esc_js ($redirection_url_after_signup) . "';" . "\n";
|
304 |
+
echo '</script>' . "\n";
|
305 |
+
}
|
306 |
+
else /* Else, use standard/default handling in this scenario. Have the Customer register a Username. */
|
307 |
+
{
|
308 |
+
$paypal["s2member_log"][] = "Redirecting Customer to Registration Page. They need to Register now.";
|
309 |
+
/**/
|
310 |
+
echo '<script type="text/javascript">' . "\n"; /* This location can be Filtered with: `wp_register_location`. */
|
311 |
+
echo "alert('Thank you! Your account has been approved.\\nThe next step is to Register a Username.\\n\\nPlease click OK to Register now.');" . "\n";
|
312 |
+
echo "window.location = '" . esc_js (c_ws_plugin__s2member_utils_urls::wp_register_url ()) . "';" . "\n";
|
313 |
+
echo '</script>' . "\n";
|
314 |
+
}
|
315 |
}
|
316 |
/**/
|
317 |
eval ('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
|
326 |
/*
|
327 |
Subscription modifications.
|
328 |
*/
|
329 |
+
else if (/**/(preg_match ("/^subscr_modify$/i", $paypal["txn_type"]))/**/
|
330 |
+
&& (preg_match ("/^[1-4](\:|$)([\+a-z_0-9,]+)?(\:)?([0-9]+ [A-Z])?$/", $paypal["item_number"]))/**/
|
331 |
&& ($paypal["subscr_id"])/**/)
|
332 |
{
|
333 |
eval ('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
|
includes/classes/readmes.inc.php
CHANGED
@@ -61,9 +61,15 @@ if (!class_exists ("c_ws_plugin__s2member_readmes"))
|
|
61 |
$rm = preg_replace ("/(\=\=)( )(.+?)( )(\=\=)/", "<h4>$3</h4>", $rm);
|
62 |
$rm = preg_replace ("/(\=)( )(.+?)( )(\=)/", "<h6>$3</h6>", $rm);
|
63 |
/**/
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
$rm = NC_Markdown ($rm); /* Parse out the Markdown syntax. */
|
65 |
/**/
|
66 |
-
$r1 = "/(\<a)( href)/i"; /* Modify all links. Assume
|
67 |
/**/
|
68 |
if ($_blank_targets) /* Modify all links. Always nofollow. ( with _blank targets ? ). */
|
69 |
$rm = preg_replace ($r1, "$1" . ' target="_blank" rel="nofollow external"' . "$2", $rm);
|
@@ -98,6 +104,12 @@ if (!class_exists ("c_ws_plugin__s2member_readmes"))
|
|
98 |
$rm = preg_replace ("/(\=\=)( )(.+?)( )(\=\=)/", "<h2>$3</h2>", $rm);
|
99 |
$rm = preg_replace ("/(\=)( )(.+?)( )(\=)/", "<h3>$3</h3>", $rm);
|
100 |
/**/
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
$rm = NC_Markdown ($rm); /* Parse out the Markdown syntax. */
|
102 |
/**/
|
103 |
$r1 = "/(\<h2(.*?)\>)(.+?)(\<\/h2\>)(.+?)(\<h2(.*?)\>|$)/si";
|
61 |
$rm = preg_replace ("/(\=\=)( )(.+?)( )(\=\=)/", "<h4>$3</h4>", $rm);
|
62 |
$rm = preg_replace ("/(\=)( )(.+?)( )(\=)/", "<h6>$3</h6>", $rm);
|
63 |
/**/
|
64 |
+
$y1 = "/\[youtube http\:\/\/www\.youtube\.com\/view_play_list\?p\=(.+?)[\s\/]*?\]/i";
|
65 |
+
$y2 = "/\[youtube http\:\/\/www\.youtube\.com\/watch\?v\=(.+?)[\s\/]*?\]/i";
|
66 |
+
/**/
|
67 |
+
$rm = preg_replace ($y1, '<embed type="application/x-shockwave-flash" src="//www.youtube.com/p/$1?version=3&hd=1&fs=1&rel=0" style="width:320px; height:210px; float:right; margin:0 0 15px 15px;" allowscriptaccess="always" allowfullscreen="true"></embed>', $rm);
|
68 |
+
$rm = preg_replace ($y2, '<embed type="application/x-shockwave-flash" src="//www.youtube.com/v/$1?version=3&hd=1&fs=1&rel=0" style="width:320px; height:210px; float:right; margin:0 0 15px 15px;" allowscriptaccess="always" allowfullscreen="true"></embed>', $rm);
|
69 |
+
/**/
|
70 |
$rm = NC_Markdown ($rm); /* Parse out the Markdown syntax. */
|
71 |
/**/
|
72 |
+
$r1 = "/(\<a)( href)/i"; /* Modify all links. Assume nofollow. */
|
73 |
/**/
|
74 |
if ($_blank_targets) /* Modify all links. Always nofollow. ( with _blank targets ? ). */
|
75 |
$rm = preg_replace ($r1, "$1" . ' target="_blank" rel="nofollow external"' . "$2", $rm);
|
104 |
$rm = preg_replace ("/(\=\=)( )(.+?)( )(\=\=)/", "<h2>$3</h2>", $rm);
|
105 |
$rm = preg_replace ("/(\=)( )(.+?)( )(\=)/", "<h3>$3</h3>", $rm);
|
106 |
/**/
|
107 |
+
$y1 = "/\[youtube http\:\/\/www\.youtube\.com\/view_play_list\?p\=(.+?)[\s\/]*?\]/i";
|
108 |
+
$y2 = "/\[youtube http\:\/\/www\.youtube\.com\/watch\?v\=(.+?)[\s\/]*?\]/i";
|
109 |
+
/**/
|
110 |
+
$rm = preg_replace ($y1, '<embed type="application/x-shockwave-flash" src="//www.youtube.com/p/$1?version=3&hd=1&fs=1&rel=0" style="width:320px; height:210px; float:right; margin:0 0 15px 15px;" allowscriptaccess="always" allowfullscreen="true"></embed>', $rm);
|
111 |
+
$rm = preg_replace ($y2, '<embed type="application/x-shockwave-flash" src="//www.youtube.com/v/$1?version=3&hd=1&fs=1&rel=0" style="width:320px; height:210px; float:right; margin:0 0 15px 15px;" allowscriptaccess="always" allowfullscreen="true"></embed>', $rm);
|
112 |
+
/**/
|
113 |
$rm = NC_Markdown ($rm); /* Parse out the Markdown syntax. */
|
114 |
/**/
|
115 |
$r1 = "/(\<h2(.*?)\>)(.+?)(\<\/h2\>)(.+?)(\<h2(.*?)\>|$)/si";
|
includes/classes/sc-paypal-button-e.inc.php
CHANGED
@@ -45,7 +45,14 @@ if (!class_exists ("c_ws_plugin__s2member_sc_paypal_button_e"))
|
|
45 |
$i = 0; /* Initialize incremental variable counter. PayPal® wants these numbered using L_BUTTONVAR{n}; where {n} starts at zero. */
|
46 |
foreach ($inputs as $input => $value) /* Now run through each of the input variables that we parsed from the Full Button Code */
|
47 |
if (!preg_match ("/^cmd$/i", $input)) /* Don't include the `cmd` var; it will produce major errors in the API response. */
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
/**/
|
50 |
if (($paypal = c_ws_plugin__s2member_paypal_utilities::paypal_api_response ($paypal)) && !$paypal["__error"] && $paypal["WEBSITECODE"] && ($code = $paypal["WEBSITECODE"]))
|
51 |
/* Only proceed if we DID get a valid response from the PayPal® API. This works as a nice fallback; just in case the API connection fails. */
|
45 |
$i = 0; /* Initialize incremental variable counter. PayPal® wants these numbered using L_BUTTONVAR{n}; where {n} starts at zero. */
|
46 |
foreach ($inputs as $input => $value) /* Now run through each of the input variables that we parsed from the Full Button Code */
|
47 |
if (!preg_match ("/^cmd$/i", $input)) /* Don't include the `cmd` var; it will produce major errors in the API response. */
|
48 |
+
{
|
49 |
+
/* The PayPal® API method `BMCreateButton` expects (amount|a1|a3) to include 2 decimal places. */
|
50 |
+
if (preg_match ("/^(amount|a1|a3)$/i", $input))
|
51 |
+
$value = number_format ($value, 2, ".", "");
|
52 |
+
/**/
|
53 |
+
$paypal["L_BUTTONVAR" . $i] = $input . "=" . $value;
|
54 |
+
$i++; /* Increment variable counter. */
|
55 |
+
}
|
56 |
/**/
|
57 |
if (($paypal = c_ws_plugin__s2member_paypal_utilities::paypal_api_response ($paypal)) && !$paypal["__error"] && $paypal["WEBSITECODE"] && ($code = $paypal["WEBSITECODE"]))
|
58 |
/* Only proceed if we DID get a valid response from the PayPal® API. This works as a nice fallback; just in case the API connection fails. */
|
includes/classes/utils-strings.inc.php
CHANGED
@@ -40,7 +40,7 @@ if (!class_exists ("c_ws_plugin__s2member_utils_strings"))
|
|
40 |
return preg_replace ('/\$/', '\\\$', $string);
|
41 |
}
|
42 |
/*
|
43 |
-
|
44 |
This allows all characters that appears on a standard computer keyboard.
|
45 |
*/
|
46 |
public static function keyboard_chars_only ($string = FALSE)
|
@@ -82,7 +82,7 @@ if (!class_exists ("c_ws_plugin__s2member_utils_strings"))
|
|
82 |
for ($i = 0, $random_str = ""; $i < $length; $i++)
|
83 |
$random_str .= substr ($chars, mt_rand (0, strlen ($chars) - 1), 1);
|
84 |
/**/
|
85 |
-
return$random_str;
|
86 |
}
|
87 |
/*
|
88 |
Functions that highlights PHP, and also Shortcodes.
|
40 |
return preg_replace ('/\$/', '\\\$', $string);
|
41 |
}
|
42 |
/*
|
43 |
+
Sanitizes a string; by removing non-standard characters.
|
44 |
This allows all characters that appears on a standard computer keyboard.
|
45 |
*/
|
46 |
public static function keyboard_chars_only ($string = FALSE)
|
82 |
for ($i = 0, $random_str = ""; $i < $length; $i++)
|
83 |
$random_str .= substr ($chars, mt_rand (0, strlen ($chars) - 1), 1);
|
84 |
/**/
|
85 |
+
return $random_str;
|
86 |
}
|
87 |
/*
|
88 |
Functions that highlights PHP, and also Shortcodes.
|
includes/dropins/bridges/_s2member-bbpress-bridge.php
CHANGED
@@ -6,7 +6,7 @@ Framework: WS-BB-DIP-1.0
|
|
6 |
|
7 |
Tested up to: 1.0.3
|
8 |
Requires at least: 1.0.3
|
9 |
-
Requires: s2Member 3.5.
|
10 |
|
11 |
Copyright: © 2009 WebSharks, Inc.
|
12 |
License: GNU General Public License
|
6 |
|
7 |
Tested up to: 1.0.3
|
8 |
Requires at least: 1.0.3
|
9 |
+
Requires: s2Member 3.5.7+, bbPress® 1.0.3+
|
10 |
|
11 |
Copyright: © 2009 WebSharks, Inc.
|
12 |
License: GNU General Public License
|
includes/menu-pages/api-ops.inc.php
CHANGED
@@ -916,6 +916,7 @@ do_action ("ws_plugin__s2member_during_menu_pages_before_right_sections", get_de
|
|
916 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
917 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
918 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
|
|
919 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
920 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
921 |
/**/
|
916 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
917 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
918 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
919 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["videos"]) ? '<div class="ws-menu-page-videos"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Video Tutorials")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-videos.png" alt="." /></a></div>' . "\n" : '';
|
920 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
921 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
922 |
/**/
|
includes/menu-pages/bridges.inc.php
CHANGED
@@ -133,6 +133,7 @@ do_action ("ws_plugin__s2member_during_menu_pages_before_right_sections", get_de
|
|
133 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
134 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
135 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
|
|
136 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
137 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
138 |
/**/
|
133 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
134 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
135 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
136 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["videos"]) ? '<div class="ws-menu-page-videos"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Video Tutorials")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-videos.png" alt="." /></a></div>' . "\n" : '';
|
137 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
138 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
139 |
/**/
|
includes/menu-pages/down-ops.inc.php
CHANGED
@@ -298,6 +298,7 @@ do_action ("ws_plugin__s2member_during_menu_pages_before_right_sections", get_de
|
|
298 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
299 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
300 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
|
|
301 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
302 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
303 |
/**/
|
298 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
299 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
300 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
301 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["videos"]) ? '<div class="ws-menu-page-videos"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Video Tutorials")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-videos.png" alt="." /></a></div>' . "\n" : '';
|
302 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
303 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
304 |
/**/
|
includes/menu-pages/els-ops.inc.php
CHANGED
@@ -411,6 +411,7 @@ do_action ("ws_plugin__s2member_during_menu_pages_before_right_sections", get_de
|
|
411 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
412 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
413 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
|
|
414 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
415 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
416 |
/**/
|
411 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
412 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
413 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
414 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["videos"]) ? '<div class="ws-menu-page-videos"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Video Tutorials")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-videos.png" alt="." /></a></div>' . "\n" : '';
|
415 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
416 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
417 |
/**/
|
includes/menu-pages/info.inc.php
CHANGED
@@ -58,6 +58,7 @@ do_action ("ws_plugin__s2member_during_menu_pages_before_right_sections", get_de
|
|
58 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
59 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
60 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
|
|
61 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
62 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
63 |
/**/
|
58 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
59 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
60 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
61 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["videos"]) ? '<div class="ws-menu-page-videos"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Video Tutorials")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-videos.png" alt="." /></a></div>' . "\n" : '';
|
62 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
63 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
64 |
/**/
|
includes/menu-pages/menu-pages.css
CHANGED
@@ -436,6 +436,7 @@ div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table
|
|
436 |
}
|
437 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-installation,
|
438 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-tools,
|
|
|
439 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-support,
|
440 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-donations,
|
441 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-others
|
@@ -444,6 +445,7 @@ div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table
|
|
444 |
}
|
445 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-installation img,
|
446 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-tools img,
|
|
|
447 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-support img,
|
448 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-donations img,
|
449 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-others img
|
436 |
}
|
437 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-installation,
|
438 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-tools,
|
439 |
+
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-videos,
|
440 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-support,
|
441 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-donations,
|
442 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-others
|
445 |
}
|
446 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-installation img,
|
447 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-tools img,
|
448 |
+
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-videos img,
|
449 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-support img,
|
450 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-donations img,
|
451 |
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-r div.ws-menu-page-others img
|
includes/menu-pages/mms-options.inc.php
CHANGED
@@ -358,6 +358,7 @@ do_action ("ws_plugin__s2member_during_menu_pages_before_right_sections", get_de
|
|
358 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
359 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
360 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
|
|
361 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
362 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
363 |
/**/
|
358 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
359 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
360 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
361 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["videos"]) ? '<div class="ws-menu-page-videos"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Video Tutorials")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-videos.png" alt="." /></a></div>' . "\n" : '';
|
362 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
363 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
364 |
/**/
|
includes/menu-pages/options.inc.php
CHANGED
@@ -1704,6 +1704,7 @@ do_action ("ws_plugin__s2member_during_menu_pages_before_right_sections", get_de
|
|
1704 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
1705 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
1706 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
|
|
1707 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
1708 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
1709 |
/**/
|
1704 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
1705 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
1706 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
1707 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["videos"]) ? '<div class="ws-menu-page-videos"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Video Tutorials")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-videos.png" alt="." /></a></div>' . "\n" : '';
|
1708 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
1709 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
1710 |
/**/
|
includes/menu-pages/paypal-buttons.inc.php
CHANGED
@@ -772,6 +772,7 @@ do_action ("ws_plugin__s2member_during_menu_pages_before_right_sections", get_de
|
|
772 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
773 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
774 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
|
|
775 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
776 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
777 |
/**/
|
772 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
773 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
774 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
775 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["videos"]) ? '<div class="ws-menu-page-videos"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Video Tutorials")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-videos.png" alt="." /></a></div>' . "\n" : '';
|
776 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
777 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
778 |
/**/
|
includes/menu-pages/paypal-ops.inc.php
CHANGED
@@ -616,6 +616,7 @@ do_action ("ws_plugin__s2member_during_menu_pages_before_right_sections", get_de
|
|
616 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
617 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
618 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
|
|
619 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
620 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
621 |
/**/
|
616 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
617 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
618 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
619 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["videos"]) ? '<div class="ws-menu-page-videos"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Video Tutorials")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-videos.png" alt="." /></a></div>' . "\n" : '';
|
620 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
621 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
622 |
/**/
|
includes/menu-pages/scripting.inc.php
CHANGED
@@ -1094,6 +1094,7 @@ do_action ("ws_plugin__s2member_during_menu_pages_before_right_sections", get_de
|
|
1094 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
1095 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
1096 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
|
|
1097 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
1098 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
1099 |
/**/
|
1094 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
1095 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
1096 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
1097 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["videos"]) ? '<div class="ws-menu-page-videos"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Video Tutorials")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-videos.png" alt="." /></a></div>' . "\n" : '';
|
1098 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
1099 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
1100 |
/**/
|
includes/menu-pages/start.inc.php
CHANGED
@@ -30,6 +30,22 @@ echo '<td class="ws-menu-page-table-l">' . "\n";
|
|
30 |
/**/
|
31 |
do_action ("ws_plugin__s2member_during_start_page_before_left_sections", get_defined_vars ());
|
32 |
/**/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
if (apply_filters ("ws_plugin__s2member_during_start_page_during_left_sections_display_registration_process", true, get_defined_vars ()))
|
34 |
{
|
35 |
do_action ("ws_plugin__s2member_during_start_page_during_left_sections_before_registration_process", get_defined_vars ());
|
@@ -199,6 +215,7 @@ do_action ("ws_plugin__s2member_during_menu_pages_before_right_sections", get_de
|
|
199 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
200 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
201 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
|
|
202 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
203 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
204 |
/**/
|
30 |
/**/
|
31 |
do_action ("ws_plugin__s2member_during_start_page_before_left_sections", get_defined_vars ());
|
32 |
/**/
|
33 |
+
if (apply_filters ("ws_plugin__s2member_during_start_page_during_left_sections_display_video_tutorials", true, get_defined_vars ()))
|
34 |
+
{
|
35 |
+
do_action ("ws_plugin__s2member_during_start_page_during_left_sections_before_video_tutorials", get_defined_vars ());
|
36 |
+
/**/
|
37 |
+
echo '<div class="ws-menu-page-group" title="Video Tutorials ( recommended )" style="padding-top:5px;">' . "\n";
|
38 |
+
/**/
|
39 |
+
echo '<div class="ws-menu-page-section ws-plugin--s2member-registration-process-section">' . "\n";
|
40 |
+
echo '<p><embed type="application/x-shockwave-flash" src="//www.youtube.com/p/A40AFC154461862E?version=3&hd=1&fs=1&rel=0" width="100%" height="550" allowscriptaccess="always" allowfullscreen="true"></embed></p>' . "\n";
|
41 |
+
do_action ("ws_plugin__s2member_during_start_page_during_left_sections_during_video_tutorials", get_defined_vars ());
|
42 |
+
echo '</div>' . "\n";
|
43 |
+
/**/
|
44 |
+
echo '</div>' . "\n";
|
45 |
+
/**/
|
46 |
+
do_action ("ws_plugin__s2member_during_start_page_during_left_sections_after_video_tutorials", get_defined_vars ());
|
47 |
+
}
|
48 |
+
/**/
|
49 |
if (apply_filters ("ws_plugin__s2member_during_start_page_during_left_sections_display_registration_process", true, get_defined_vars ()))
|
50 |
{
|
51 |
do_action ("ws_plugin__s2member_during_start_page_during_left_sections_before_registration_process", get_defined_vars ());
|
215 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
216 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
217 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
218 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["videos"]) ? '<div class="ws-menu-page-videos"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Video Tutorials")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-videos.png" alt="." /></a></div>' . "\n" : '';
|
219 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
220 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
221 |
/**/
|
includes/menu-pages/trk-ops.inc.php
CHANGED
@@ -274,6 +274,7 @@ do_action ("ws_plugin__s2member_during_menu_pages_before_right_sections", get_de
|
|
274 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
275 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
276 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
|
|
277 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
278 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
279 |
/**/
|
274 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["upsell-pro"]) ? '<div class="ws-menu-page-others"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-upsell-pro.png" alt="." /></a></div>' . "\n" : '';
|
275 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Professional Installation URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-installation.png" alt="." /></a></div>' . "\n" : '';
|
276 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
277 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["videos"]) ? '<div class="ws-menu-page-videos"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Video Tutorials")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-videos.png" alt="." /></a></div>' . "\n" : '';
|
278 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Forum URI")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
279 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Donate link")) . '" target="_blank"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
280 |
/**/
|
includes/s2member-min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(a){ws_plugin__s2member_uniqueFilesDownloaded=[];if(S2MEMBER_CURRENT_USER_IS_LOGGED_IN&&S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY<S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED){a('a[href*="s2member_file_download"]').click(function(){if(!this.href.match(/s2member_file_download_key\=(.+)/i)){var b="** Please Confirm This File Download **\n\n";b+="You've downloaded "+S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY+" protected file"+((S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY<1||S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY>1)?"s":"")+" in the last "+S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS+" days.\n\n";b+="You're entitled to "+((S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED)?"UNLIMITED downloads though ( so, no worries ).":S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED+" unique downloads every "+S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS+" day period.");if(this.href.match(/s2member_skip_confirmation/i)||confirm(b)){if(a.inArray(this.href,ws_plugin__s2member_uniqueFilesDownloaded)===-1){ws_plugin__s2member_uniqueFilesDownloaded.push(this.href),S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY++}return true}else{return false}}else{return true}})}if(location.href.match(/\/wp-signup\.php/)){a("div#content > div.mu_register > form#setupform").submit(function(){var d=this,c="",b="",e="";a("input#user_name, input#user_email, input#blogname, input#blog_title",d).each(function(){if((c=a.trim(a(this).prev("label").text().replace(/[\r\n\t]+/g," ")))){if(b=ws_plugin__s2member_validationErrors(c,this,d,true)){e+=b+"\n\n"}}else{if((c=a.trim(a(this).prev("span.prefix_address").prev("label").text().replace(/[\r\n\t]+/g," ")))){if(b=ws_plugin__s2member_validationErrors(c,this,d,true)){e+=b+"\n\n"}}}});a(":input",d).each(function(){if((c=a.trim(a(this).prev("label").text().replace(/[\r\n\t]+/g," ")))){if(b=ws_plugin__s2member_validationErrors(c,this,d)){e+=b+"\n\n"}}});if(e=a.trim(e)){alert("Oops, you missed something:\n\n"+e);return false}return true})}else{if(location.href.match(/\/wp-login\.php/)){a("div#login > form#registerform").submit(function(){var d=this,c="",b="",e="";a("input#user_login, input#user_email",d).each(function(){if((c=a.trim(a(this).parent("label").text().replace(/[\r\n\t]+/g," ")))){if(b=ws_plugin__s2member_validationErrors(c,this,d,true)){e+=b+"\n\n"}}});a(":input",d).each(function(){if((c=a.trim(a(this).parent("label").children("span").slice(0,1).text().replace(/[\r\n\t]+/g," ")))){if(b=ws_plugin__s2member_validationErrors(c,this,d)){e+=b+"\n\n"}}});if(e=a.trim(e)){alert("Oops, you missed something:\n\n"+e);return false}return true})}else{if(location.href.match(
|
1 |
+
jQuery(document).ready(function(a){ws_plugin__s2member_uniqueFilesDownloaded=[];if(S2MEMBER_CURRENT_USER_IS_LOGGED_IN&&S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY<S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED){a('a[href*="s2member_file_download"]').click(function(){if(!this.href.match(/s2member_file_download_key\=(.+)/i)){var b="** Please Confirm This File Download **\n\n";b+="You've downloaded "+S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY+" protected file"+((S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY<1||S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY>1)?"s":"")+" in the last "+S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS+" days.\n\n";b+="You're entitled to "+((S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED)?"UNLIMITED downloads though ( so, no worries ).":S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED+" unique downloads every "+S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS+" day period.");if(this.href.match(/s2member_skip_confirmation/i)||confirm(b)){if(a.inArray(this.href,ws_plugin__s2member_uniqueFilesDownloaded)===-1){ws_plugin__s2member_uniqueFilesDownloaded.push(this.href),S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY++}return true}else{return false}}else{return true}})}a("form#ws-plugin--s2member-profile").submit(function(){var e=this,d="",c="",g="";var b=a("input#ws-plugin--s2member-profile-password");var f=a("input#ws-plugin--s2member-profile-password-confirmation");a(":input",e).each(function(){if((d=a.trim(a(this).parent("label").children("strong").slice(0,1).text().replace(/[\r\n\t]+/g," ")))){if(c=ws_plugin__s2member_validationErrors(d,this,e)){g+=c+"\n\n"}}});if(g=a.trim(g)){alert("Oops, you missed something:\n\n"+g);return false}else{if(a.trim(b.val())&&a.trim(b.val())!==a.trim(f.val())){alert("Oops, you missed something:\n\nPasswords do not match up. Please try again.");return false}}return true});if(location.href.match(/\/wp-signup\.php/)){a("div#content > div.mu_register > form#setupform").submit(function(){var d=this,c="",b="",e="";a("input#user_name, input#user_email, input#blogname, input#blog_title",d).each(function(){if((c=a.trim(a(this).prev("label").text().replace(/[\r\n\t]+/g," ")))){if(b=ws_plugin__s2member_validationErrors(c,this,d,true)){e+=b+"\n\n"}}else{if((c=a.trim(a(this).prev("span.prefix_address").prev("label").text().replace(/[\r\n\t]+/g," ")))){if(b=ws_plugin__s2member_validationErrors(c,this,d,true)){e+=b+"\n\n"}}}});a(":input",d).each(function(){if((c=a.trim(a(this).prev("label").text().replace(/[\r\n\t]+/g," ")))){if(b=ws_plugin__s2member_validationErrors(c,this,d)){e+=b+"\n\n"}}});if(e=a.trim(e)){alert("Oops, you missed something:\n\n"+e);return false}return true})}else{if(location.href.match(/\/wp-login\.php/)){a("div#login > form#registerform input#wp-submit").attr("tabindex","1000");a("div#login > form#registerform").submit(function(){var d=this,c="",b="",e="";a("input#user_login, input#user_email",d).each(function(){if((c=a.trim(a(this).parent("label").text().replace(/[\r\n\t]+/g," ")))){if(b=ws_plugin__s2member_validationErrors(c,this,d,true)){e+=b+"\n\n"}}});a(":input",d).each(function(){if((c=a.trim(a(this).parent("label").children("span").slice(0,1).text().replace(/[\r\n\t]+/g," ")))){if(b=ws_plugin__s2member_validationErrors(c,this,d)){e+=b+"\n\n"}}});if(e=a.trim(e)){alert("Oops, you missed something:\n\n"+e);return false}return true})}else{if(location.href.match(/\/wp-admin\/(user\/)?profile\.php/)){a("form#your-profile").submit(function(){var d=this,c="",b="",e="";a(':input[id^="ws-plugin--s2member-profile-"]',d).each(function(){if((c=a.trim(a(this).parent("td").prev("th").children("label").slice(0,1).text().replace(/[\r\n\t]+/g," ")))){if(b=ws_plugin__s2member_validationErrors(c,this,d)){e+=b+"\n\n"}}});if(e=a.trim(e)){alert("Oops, you missed something:\n\n"+e);return false}return true})}}}ws_plugin__s2member_validationErrors=function(l,k,c,g,f){if(typeof l==="string"&&l&&typeof k==="object"&&typeof c==="object"){if(typeof k.tagName==="string"&&k.tagName.match(/^(input|textarea|select)$/i)&&!k.disabled){var n=k.tagName.toLowerCase(),j=a(k),i=String(j.attr("type")).toLowerCase(),b=String(j.attr("name")),m=j.val();var g=(typeof g==="boolean")?g:(j.attr("aria-required")==="true"),f=(typeof f==="string")?f:j.attr("data-expected");if(n==="input"&&i==="checkbox"&&b.match(/\[\]$/)){if(typeof k.id==="string"&&k.id.match(/-0$/)){if(g&&!a('input[name="'+b.replace(/([\[\]])/g,"$1")+'"]:checked',c).length){return l+"\nPlease check at least one of the boxes."}}}else{if(n==="input"&&i==="checkbox"){if(g&&!k.checked){return l+"\nRequired. This box must be checked."}}else{if(n==="input"&&i==="radio"){if(typeof k.id==="string"&&k.id.match(/-0$/)){if(g&&!a('input[name="'+b.replace(/([\[\]])/g,"$1")+'"]:checked',c).length){return l+"\nPlease select one of the options."}}}else{if(n==="select"&&j.attr("multiple")){if(g&&(!(m instanceof Array)||!m.length)){return l+"\nPlease select at least one of the options."}}else{if(typeof m!=="string"||(g&&!(m=a.trim(m)).length)){return l+"\nThis is a required field, please try again."}else{if((m=a.trim(m)).length&&((n==="input"&&i.match(/^(text|password)$/i))||n==="textarea")&&typeof f==="string"&&f.length){if(f==="numeric-wp-commas"&&(!m.match(/^[0-9\.,]+$/)||isNaN(m.replace(/,/g,"")))){return l+"\nMust be numeric ( with or without decimals, commas allowed )."}else{if(f==="numeric"&&(!m.match(/^[0-9\.]+$/)||isNaN(m))){return l+"\nMust be numeric ( with or without decimals, no commas )."}else{if(f==="integer"&&(!m.match(/^[0-9]+$/)||isNaN(m))){return l+"\nMust be an integer ( a whole number, without any decimals )."}else{if(f==="integer-gt-0"&&(!m.match(/^[0-9]+$/)||isNaN(m)||m<=0)){return l+"\nMust be an integer > 0 ( whole number, no decimals, greater than 0 )."}else{if(f==="float"&&(!m.match(/^[0-9\.]+$/)||!m.match(/[0-9]/)||!m.match(/\./)||isNaN(m))){return l+"\nMust be a float ( floating point number, decimals required )."}else{if(f==="float-gt-0"&&(!m.match(/^[0-9\.]+$/)||!m.match(/[0-9]/)||!m.match(/\./)||isNaN(m)||m<=0)){return l+"\nMust be a float > 0 ( floating point number, decimals required, greater than 0 )."}else{if(f==="date"&&!m.match(/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/)){return l+"\nMust be a date ( required date format: dd/mm/yyyy )."}else{if(f==="email"&&!m.match(/^([a-z_~0-9\+\-]+)(((\.?)([a-z_~0-9\+\-]+))*)(@)([a-z0-9]+)(((-*)([a-z0-9]+))*)(((\.)([a-z0-9]+)(((-*)([a-z0-9]+))*))*)(\.)([a-z]{2,6})$/i)){return l+"\nMust be a valid email address."}else{if(f==="url"&&!m.match(/^http(s?)\:\/\/(.{5,})$/i)){return l+"\nMust be a full URL ( starting with http or https )."}else{if(f==="domain"&&!m.match(/^([a-z0-9]+)(((-*)([a-z0-9]+))*)(((\.)([a-z0-9]+)(((-*)([a-z0-9]+))*))*)(\.)([a-z]{2,6})$/i)){return l+"\nMust be a domain name ( domain name only, without http )."}else{if(f==="phone"&&(!m.match(/^[0-9 \(\)\-]+$/)||m.replace(/[^0-9]/g,"").length!==10)){return l+"\nMust be a phone # ( 10 digits w/possible hyphens,spaces,brackets )."}else{if(f==="uszip"&&!m.match(/^[0-9]{5}(-[0-9]{4})?$/)){return l+"\nMust be a US zipcode ( 5-9 digits w/possible hyphen )."}else{if(f==="cazip"&&!m.match(/^[0-9A-Z]{3}( ?)[0-9A-Z]{3}$/i)){return l+"\nMust be a Canadian zipcode ( 6 alpha-numerics w/possible space )."}else{if(f==="uczip"&&!m.match(/^[0-9]{5}(-[0-9]{4})?$/)&&!m.match(/^[0-9A-Z]{3}( ?)[0-9A-Z]{3}$/i)){return l+"\nMust be a zipcode ( either a US or Canadian zipcode )."}else{if(f.match(/^alphanumerics-spaces-punctuation-([0-9]+)(-e)?$/)&&!m.match(/^[a-z 0-9,\.\/\?\:;"'\{\}\[\]\|\\\+\=_\-\(\)\*&\^%\$#@\!`~]+$/i)){return l+"\nPlease use alphanumerics, spaces & punctuation only."}else{if(f.match(/^alphanumerics-spaces-([0-9]+)(-e)?$/)&&!m.match(/^[a-z 0-9]+$/i)){return l+"\nPlease use alphanumerics & spaces only."}else{if(f.match(/^alphanumerics-punctuation-([0-9]+)(-e)?$/)&&!m.match(/^[a-z0-9,\.\/\?\:;"'\{\}\[\]\|\\\+\=_\-\(\)\*&\^%\$#@\!`~]+$/i)){return l+"\nPlease use alphanumerics & punctuation only ( no spaces )."}else{if(f.match(/^alphanumerics-([0-9]+)(-e)?$/)&&!m.match(/^[a-z0-9]+$/i)){return l+"\nPlease use alphanumerics only ( no spaces/punctuation )."}else{if(f.match(/^alphabetics-([0-9]+)(-e)?$/)&&!m.match(/^[a-z]+$/i)){return l+"\nPlease use alphabetics only ( no digits/spaces/punctuation )."}else{if(f.match(/^numerics-([0-9]+)(-e)?$/)&&!m.match(/^[0-9]+$/i)){return l+"\nPlease use numeric digits only."}else{if(f.match(/^(any|alphanumerics-spaces-punctuation|alphanumerics-spaces|alphanumerics-punctuation|alphanumerics|alphabetics|numerics)-([0-9]+)(-e)?$/)){var h=f.split("-"),d=Number(h[1]),e=(h.length>2)?Number(h[2]):"";if(e&&m.length!==d){return l+"\nMust be exactly "+d+" "+((h[0]==="numerics")?"digit":"character")+((d>1)?"s":"")+"."}else{if(m.length<d){return l+"\nMust be at least "+d+" "+((h[0]==="numerics")?"digit":"character")+((d>1)?"s":"")+"."}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return""}});
|
includes/s2member.js
CHANGED
@@ -10,20 +10,20 @@ If not, see: <http://www.gnu.org/licenses/>.
|
|
10 |
/*
|
11 |
Scripting routines handled on document ready state.
|
12 |
*/
|
13 |
-
jQuery(document).ready (function($)
|
14 |
{
|
15 |
ws_plugin__s2member_uniqueFilesDownloaded = []; /* Real-time counts. */
|
16 |
/* This is used in case a user downloads multiple files from a single page. */
|
17 |
/**/
|
18 |
if (S2MEMBER_CURRENT_USER_IS_LOGGED_IN && S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY < S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED)
|
19 |
{
|
20 |
-
$('a[href*="s2member_file_download"]').click (function()
|
21 |
{
|
22 |
if (!this.href.match (/s2member_file_download_key\=(.+)/i))
|
23 |
{
|
24 |
var c = '** Please Confirm This File Download **\n\n';
|
25 |
-
c += 'You\'ve downloaded ' + S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY + ' protected file' + ((S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY < 1 || S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY > 1) ? 's' : '') + ' in the last ' + S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS + ' days.\n\n';
|
26 |
-
c += 'You\'re entitled to ' + ((S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED) ? 'UNLIMITED downloads though ( so, no worries ).' : S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED + ' unique downloads every ' + S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS + ' day period.');
|
27 |
/**/
|
28 |
if (this.href.match (/s2member_skip_confirmation/i) || confirm (c))
|
29 |
{
|
@@ -39,132 +39,137 @@ jQuery(document).ready (function($)
|
|
39 |
});
|
40 |
}
|
41 |
/*
|
42 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
*/
|
44 |
if (location.href.match (/\/wp-signup\.php/))
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
errors += error + '\n\n'; /* Collect errors. */
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
{
|
74 |
-
alert('Oops, you missed something:\n\n' + errors);
|
75 |
-
return false;
|
76 |
-
}
|
77 |
-
/**/
|
78 |
-
return true;
|
79 |
-
});
|
80 |
/*
|
81 |
-
Attach form submission handler to wp-login.php?action=register
|
82 |
*/
|
83 |
else if (location.href.match (/\/wp-login\.php/))
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
/**/
|
116 |
-
$('form#ws-plugin--s2member-profile').submit (function()
|
117 |
-
{
|
118 |
-
var context = this, label = '', error = '', errors = '';
|
119 |
-
/**/
|
120 |
-
var $password = $ ('input#ws-plugin--s2member-profile-password');
|
121 |
-
var $passwordConfirmation = $ ('input#ws-plugin--s2member-profile-password-confirmation');
|
122 |
-
/**/
|
123 |
-
$ (':input', context).each (function()
|
124 |
-
{
|
125 |
-
if ((label = $.trim ($ (this).parent ('label').children ('strong').slice (0, 1).text ().replace (/[\r\n\t]+/g, ' '))))
|
126 |
-
if (error = ws_plugin__s2member_validationErrors (label, this, context))
|
127 |
-
errors += error + '\n\n'; /* Collect errors. */
|
128 |
-
});
|
129 |
-
/**/
|
130 |
-
if (errors = $.trim (errors))
|
131 |
-
{
|
132 |
-
alert('Oops, you missed something:\n\n' + errors);
|
133 |
-
return false;
|
134 |
-
}
|
135 |
-
/**/
|
136 |
-
else if ($.trim ($password.val ()) && $.trim ($password.val ()) !== $.trim ($passwordConfirmation.val ()))
|
137 |
-
{
|
138 |
-
alert('Oops, you missed something:\n\nPasswords do not match up. Please try again.');
|
139 |
-
return false;
|
140 |
-
}
|
141 |
-
/**/
|
142 |
-
return true;
|
143 |
-
});
|
144 |
/*
|
145 |
-
Attach form submission handler to profile.php
|
146 |
*/
|
147 |
else if (location.href.match (/\/wp-admin\/(user\/)?profile\.php/))
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
|
|
168 |
/*
|
169 |
Global function handles validation errors.
|
170 |
*/
|
@@ -195,15 +200,15 @@ jQuery(document).ready (function($)
|
|
195 |
}
|
196 |
else if (tag === 'select' && $field.attr ('multiple'))
|
197 |
{
|
198 |
-
if (required && (!(value instanceof Array) || !value.length))
|
199 |
return label + '\nPlease select at least one of the options.';
|
200 |
}
|
201 |
-
else if (typeof value !== 'string' || (required && !(value = $.trim (value)).length))
|
202 |
/* If we get here, the value MUST be in string format, and we need to trim the string before validation. */
|
203 |
{
|
204 |
return label + '\nThis is a required field, please try again.'; /* Missing data. */
|
205 |
}
|
206 |
-
else if ((value = $.trim (value)).length && ((tag === 'input' && type.match (/^(text|password)$/i)) || tag === 'textarea') && typeof expected === 'string' && expected.length)
|
207 |
{
|
208 |
if (expected === 'numeric-wp-commas' && (!value.match (/^[0-9\.,]+$/) || isNaN (value.replace (/,/g, ''))))
|
209 |
{
|
@@ -290,10 +295,10 @@ jQuery(document).ready (function($)
|
|
290 |
var split = expected.split ('-'), length = Number (split[1]), exactLength = (split.length > 2) ? Number (split[2]) : '';
|
291 |
/**/
|
292 |
if (exactLength && value.length !== length) /* An exact length is required? */
|
293 |
-
return label + '\nMust be exactly ' + length + ' ' + ((split[0] === 'numerics') ? 'digit' : 'character') + ((length > 1) ? 's' : '') + '.';
|
294 |
/**/
|
295 |
else if (value.length < length) /* Otherwise, we interpret as the minimum length. */
|
296 |
-
return label + '\nMust be at least ' + length + ' ' + ((split[0] === 'numerics') ? 'digit' : 'character') + ((length > 1) ? 's' : '') + '.';
|
297 |
}
|
298 |
}
|
299 |
}
|
10 |
/*
|
11 |
Scripting routines handled on document ready state.
|
12 |
*/
|
13 |
+
jQuery (document).ready (function($)
|
14 |
{
|
15 |
ws_plugin__s2member_uniqueFilesDownloaded = []; /* Real-time counts. */
|
16 |
/* This is used in case a user downloads multiple files from a single page. */
|
17 |
/**/
|
18 |
if (S2MEMBER_CURRENT_USER_IS_LOGGED_IN && S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY < S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED)
|
19 |
{
|
20 |
+
$ ('a[href*="s2member_file_download"]').click (function()
|
21 |
{
|
22 |
if (!this.href.match (/s2member_file_download_key\=(.+)/i))
|
23 |
{
|
24 |
var c = '** Please Confirm This File Download **\n\n';
|
25 |
+
c += 'You\'ve downloaded ' + S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY + ' protected file' + ( (S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY < 1 || S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY > 1) ? 's' : '') + ' in the last ' + S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS + ' days.\n\n';
|
26 |
+
c += 'You\'re entitled to ' + ( (S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED) ? 'UNLIMITED downloads though ( so, no worries ).' : S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED + ' unique downloads every ' + S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS + ' day period.');
|
27 |
/**/
|
28 |
if (this.href.match (/s2member_skip_confirmation/i) || confirm (c))
|
29 |
{
|
39 |
});
|
40 |
}
|
41 |
/*
|
42 |
+
Deals with form field validation on Profile editing panels.
|
43 |
+
Always process; `[s2Member-Profile /]` could appear on any Post/Page/Widget.
|
44 |
+
*/
|
45 |
+
$ ('form#ws-plugin--s2member-profile').submit (function()
|
46 |
+
{
|
47 |
+
var context = this, label = '', error = '', errors = '';
|
48 |
+
/**/
|
49 |
+
var $password = $ ('input#ws-plugin--s2member-profile-password');
|
50 |
+
var $passwordConfirmation = $ ('input#ws-plugin--s2member-profile-password-confirmation');
|
51 |
+
/**/
|
52 |
+
$ (':input', context).each (function()
|
53 |
+
{
|
54 |
+
if ((label = $.trim ($ (this).parent ('label').children ('strong').slice (0, 1).text ().replace (/[\r\n\t]+/g, ' '))))
|
55 |
+
if (error = ws_plugin__s2member_validationErrors (label, this, context))
|
56 |
+
errors += error + '\n\n'; /* Collect errors. */
|
57 |
+
});
|
58 |
+
/**/
|
59 |
+
if (errors = $.trim (errors))
|
60 |
+
{
|
61 |
+
alert ('Oops, you missed something:\n\n' + errors);
|
62 |
+
return false;
|
63 |
+
}
|
64 |
+
/**/
|
65 |
+
else if ($.trim ($password.val ()) && $.trim ($password.val ()) !== $.trim ($passwordConfirmation.val ()))
|
66 |
+
{
|
67 |
+
alert ('Oops, you missed something:\n\nPasswords do not match up. Please try again.');
|
68 |
+
return false;
|
69 |
+
}
|
70 |
+
/**/
|
71 |
+
return true;
|
72 |
+
});
|
73 |
+
/*
|
74 |
+
Attach form submission handler to `/wp-signup.php`.
|
75 |
*/
|
76 |
if (location.href.match (/\/wp-signup\.php/))
|
77 |
+
{
|
78 |
+
$ ('div#content > div.mu_register > form#setupform').submit (function()
|
79 |
+
{
|
80 |
+
var context = this, label = '', error = '', errors = '';
|
81 |
+
/**/
|
82 |
+
$ ('input#user_name, input#user_email, input#blogname, input#blog_title', context).each (function()
|
83 |
+
{
|
84 |
+
if ((label = $.trim ($ (this).prev ('label').text ().replace (/[\r\n\t]+/g, ' '))))
|
85 |
+
{
|
86 |
+
if (error = ws_plugin__s2member_validationErrors (label, this, context, true))
|
87 |
+
errors += error + '\n\n'; /* Collect errors. */
|
88 |
+
}
|
89 |
+
/**/
|
90 |
+
else if ((label = $.trim ($ (this).prev ('span.prefix_address').prev ('label').text ().replace (/[\r\n\t]+/g, ' '))))
|
91 |
+
{
|
92 |
+
if (error = ws_plugin__s2member_validationErrors (label, this, context, true))
|
93 |
+
errors += error + '\n\n'; /* Collect errors. */
|
94 |
+
}
|
95 |
+
});
|
96 |
+
/**/
|
97 |
+
$ (':input', context).each (function()
|
98 |
+
{
|
99 |
+
if ((label = $.trim ($ (this).prev ('label').text ().replace (/[\r\n\t]+/g, ' '))))
|
100 |
+
if (error = ws_plugin__s2member_validationErrors (label, this, context))
|
101 |
errors += error + '\n\n'; /* Collect errors. */
|
102 |
+
});
|
103 |
+
/**/
|
104 |
+
if (errors = $.trim (errors))
|
105 |
+
{
|
106 |
+
alert ('Oops, you missed something:\n\n' + errors);
|
107 |
+
return false;
|
108 |
+
}
|
109 |
+
/**/
|
110 |
+
return true;
|
111 |
+
});
|
112 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
/*
|
114 |
+
Attach form submission handler to `/wp-login.php?action=register`.
|
115 |
*/
|
116 |
else if (location.href.match (/\/wp-login\.php/))
|
117 |
+
{
|
118 |
+
/* Makes plenty of room ( i.e. tab indexes ) for Custom Registration Fields. */
|
119 |
+
$ ('div#login > form#registerform input#wp-submit').attr ('tabindex', '1000');
|
120 |
+
/**/
|
121 |
+
$ ('div#login > form#registerform').submit (function()
|
122 |
+
{
|
123 |
+
var context = this, label = '', error = '', errors = '';
|
124 |
+
/**/
|
125 |
+
$ ('input#user_login, input#user_email', context).each (function()
|
126 |
+
{
|
127 |
+
if ((label = $.trim ($ (this).parent ('label').text ().replace (/[\r\n\t]+/g, ' '))))
|
128 |
+
if (error = ws_plugin__s2member_validationErrors (label, this, context, true))
|
129 |
+
errors += error + '\n\n'; /* Collect errors. */
|
130 |
+
});
|
131 |
+
/**/
|
132 |
+
$ (':input', context).each (function()
|
133 |
+
{
|
134 |
+
if ((label = $.trim ($ (this).parent ('label').children ('span').slice (0, 1).text ().replace (/[\r\n\t]+/g, ' '))))
|
135 |
+
if (error = ws_plugin__s2member_validationErrors (label, this, context))
|
136 |
+
errors += error + '\n\n'; /* Collect errors. */
|
137 |
+
});
|
138 |
+
/**/
|
139 |
+
if (errors = $.trim (errors))
|
140 |
+
{
|
141 |
+
alert ('Oops, you missed something:\n\n' + errors);
|
142 |
+
return false;
|
143 |
+
}
|
144 |
+
/**/
|
145 |
+
return true;
|
146 |
+
});
|
147 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
/*
|
149 |
+
Attach form submission handler to `/wp-admin/(user/)?profile.php`.
|
150 |
*/
|
151 |
else if (location.href.match (/\/wp-admin\/(user\/)?profile\.php/))
|
152 |
+
{
|
153 |
+
$ ('form#your-profile').submit (function() /* Validation. */
|
154 |
+
{
|
155 |
+
var context = this, label = '', error = '', errors = '';
|
156 |
+
/**/
|
157 |
+
$ (':input[id^="ws-plugin--s2member-profile-"]', context).each (function()
|
158 |
+
{
|
159 |
+
if ((label = $.trim ($ (this).parent ('td').prev ('th').children ('label').slice (0, 1).text ().replace (/[\r\n\t]+/g, ' '))))
|
160 |
+
if (error = ws_plugin__s2member_validationErrors (label, this, context))
|
161 |
+
errors += error + '\n\n'; /* Collect errors. */
|
162 |
+
});
|
163 |
+
/**/
|
164 |
+
if (errors = $.trim (errors))
|
165 |
+
{
|
166 |
+
alert ('Oops, you missed something:\n\n' + errors);
|
167 |
+
return false;
|
168 |
+
}
|
169 |
+
/**/
|
170 |
+
return true;
|
171 |
+
});
|
172 |
+
}
|
173 |
/*
|
174 |
Global function handles validation errors.
|
175 |
*/
|
200 |
}
|
201 |
else if (tag === 'select' && $field.attr ('multiple'))
|
202 |
{
|
203 |
+
if (required && (! (value instanceof Array) || !value.length))
|
204 |
return label + '\nPlease select at least one of the options.';
|
205 |
}
|
206 |
+
else if (typeof value !== 'string' || (required && ! (value = $.trim (value)).length))
|
207 |
/* If we get here, the value MUST be in string format, and we need to trim the string before validation. */
|
208 |
{
|
209 |
return label + '\nThis is a required field, please try again.'; /* Missing data. */
|
210 |
}
|
211 |
+
else if ((value = $.trim (value)).length && ( (tag === 'input' && type.match (/^(text|password)$/i)) || tag === 'textarea') && typeof expected === 'string' && expected.length)
|
212 |
{
|
213 |
if (expected === 'numeric-wp-commas' && (!value.match (/^[0-9\.,]+$/) || isNaN (value.replace (/,/g, ''))))
|
214 |
{
|
295 |
var split = expected.split ('-'), length = Number (split[1]), exactLength = (split.length > 2) ? Number (split[2]) : '';
|
296 |
/**/
|
297 |
if (exactLength && value.length !== length) /* An exact length is required? */
|
298 |
+
return label + '\nMust be exactly ' + length + ' ' + ( (split[0] === 'numerics') ? 'digit' : 'character') + ( (length > 1) ? 's' : '') + '.';
|
299 |
/**/
|
300 |
else if (value.length < length) /* Otherwise, we interpret as the minimum length. */
|
301 |
+
return label + '\nMust be at least ' + length + ' ' + ( (split[0] === 'numerics') ? 'digit' : 'character') + ( (length > 1) ? 's' : '') + '.';
|
302 |
}
|
303 |
}
|
304 |
}
|
includes/syscon.inc.php
CHANGED
@@ -38,7 +38,7 @@ $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["recaptcha"] = array ("public_key" => "
|
|
38 |
/*
|
39 |
Configure the right menu options panel for this software.
|
40 |
*/
|
41 |
-
$GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"] = array ("upsell-pro" => true, "installation" =>
|
42 |
/*
|
43 |
Check if the plugin has been configured *should be set after the first config via options panel*.
|
44 |
*/
|
38 |
/*
|
39 |
Configure the right menu options panel for this software.
|
40 |
*/
|
41 |
+
$GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"] = array ("upsell-pro" => true, "installation" => false, "tools" => false, "videos" => true, "support" => true, "donations" => false);
|
42 |
/*
|
43 |
Check if the plugin has been configured *should be set after the first config via options panel*.
|
44 |
*/
|
licensing/license.txt
CHANGED
@@ -22,6 +22,10 @@ Credits / Additional Acknowledgments:
|
|
22 |
- LGPL License <http://www.everaldo.com/crystal/?action=license>
|
23 |
- Everaldo <http://www.everaldo.com/crystal/?action=downloads>
|
24 |
|
|
|
|
|
|
|
|
|
25 |
* PayPal® and its associated API, buttons & services have been integrated into this software via external hyperlinks.
|
26 |
The files/services provided by PayPal® are not distributed with this software. They have their own terms & conditions.
|
27 |
- PayPal®, a 3rd party service, is powered by eBay, Inc. <http://www.paypal.com/>
|
22 |
- LGPL License <http://www.everaldo.com/crystal/?action=license>
|
23 |
- Everaldo <http://www.everaldo.com/crystal/?action=downloads>
|
24 |
|
25 |
+
* Administration panel (videos icon) was provided by David Vignoni.
|
26 |
+
- LGPL License <http://www.iconfinder.com/search/?q=iconset%3Anuvola2>
|
27 |
+
- David Vignoni <http://www.icon-king.com/>
|
28 |
+
|
29 |
* PayPal® and its associated API, buttons & services have been integrated into this software via external hyperlinks.
|
30 |
The files/services provided by PayPal® are not distributed with this software. They have their own terms & conditions.
|
31 |
- PayPal®, a 3rd party service, is powered by eBay, Inc. <http://www.paypal.com/>
|
readme.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
=== s2Member ( Membership w/ PayPal® ) ===
|
2 |
|
3 |
-
Version: 3.5.
|
4 |
-
Stable tag: 3.5.
|
5 |
Framework: WS-P-3.5
|
6 |
|
7 |
SSL Compatible: yes
|
@@ -19,9 +19,9 @@ ClickBank® Compatible: w/ s2Member Pro
|
|
19 |
AliPay® Compatible: w/ s2Member Pro
|
20 |
ccBill® Compatible: w/ s2Member Pro
|
21 |
|
22 |
-
Tested up to: 3.1
|
23 |
Requires at least: 3.0
|
24 |
-
Requires: WordPress® 3.0+, PHP 5.2+
|
25 |
|
26 |
Copyright: © 2009 WebSharks, Inc.
|
27 |
License: GNU General Public License
|
@@ -31,6 +31,7 @@ Author: PriMoThemes.com / WebSharks, Inc.
|
|
31 |
Donate link: http://www.primothemes.com/donate/
|
32 |
|
33 |
Plugin Name: s2Member
|
|
|
34 |
Pro Module / Prices: http://www.s2member.com/prices/
|
35 |
Forum URI: http://www.primothemes.com/forums/viewforum.php?f=4
|
36 |
PayPal Pro Integration: http://www.primothemes.com/forums/viewtopic.php?f=4&t=304
|
@@ -39,7 +40,7 @@ Plugin URI: http://www.primothemes.com/post/product/s2member-membership-plugin-w
|
|
39 |
Description: Empowers WordPress® with membership capabilities. Integrates seamlessly with PayPal®. Also compatible with Multisite Networking, and even with BuddyPress if you like.
|
40 |
Tags: membership, members, member, register, signup, paypal, paypal pro, pay pal, s2member, authorize.net, google checkout, ccbill, clickbank, alipay, subscriber, members only, buddypress, buddy press, buddy press compatible, shopping cart, checkout, api, options panel included, websharks framework, w3c validated code, includes extensive documentation, highly extensible
|
41 |
|
42 |
-
s2Member is an extremely powerful (and free) membership management system for WordPress®. s2Member integrates seamlessly with PayPal® (very easy).
|
43 |
|
44 |
== Installation ==
|
45 |
|
@@ -48,6 +49,9 @@ s2Member is an extremely powerful (and free) membership management system for Wo
|
|
48 |
2. Activate the plugin through the `Plugins` menu in WordPress®.
|
49 |
3. Navigate to the `s2Member Options` panel for configuration details.
|
50 |
|
|
|
|
|
|
|
51 |
= Auto-installing through WordPress® ( memory errors? ) =
|
52 |
This depends on your hosting provider and/or server configuration. Some web hosting companies impose very low limits on the amount of memory available to WordPress® during the execution of a single script. Since s2Member is a larger plugin, WordPress® may exceed conservative limits set forth by shared hosting companies. Don't feel bad, it's a very common problem. The solution is to install manually, using the instructions above. Memory limits only affect the WordPress® auto-installation routine, not the actual functionality of WordPress® or s2Member.
|
53 |
|
@@ -57,24 +61,11 @@ Yes. s2Member, and also s2Member Pro, are BOTH compatible with Multisite Network
|
|
57 |
= What about Multisite Networking ( WPMU ), used on a Blog Farm? =
|
58 |
Yes, preliminary ( experimental ) support for Multisite Blog Farms has also been implemented. If you're running a Multisite Blog Farm ( i.e. you offer Blogs ), please contact s2Member.com for further details. With Multisite Networking enabled, your site could ALSO offer a Customer access to create a Blog of their own, where a Customer becomes a "Member" of your ( Main Site ), and also a Blog Owner/Administrator. With s2Member installed ( network wide ), each of your Blog Owners could offer Membership too, using a single installation of the s2Member plugin ( which is a great selling point ). We refer to this as a Multisite Blog Farm. You can get started now, by turning on [Multisite Networking](http://codex.wordpress.org/Create_A_Network) inside your installation of WordPress®. Then, install the s2Member plugin ( network wide ). In the Dashboard for your Main Site, see: `s2Member -> Multisite ( Config )`.
|
59 |
|
60 |
-
== Upgrading To The Latest Version ==
|
61 |
-
|
62 |
-
You can either (upgrade automatically) by going to `WordPress® -> Plugins` and clicking "upgrade automatically". If that fails with memory errors, you can upgrade manually by following these instructions:
|
63 |
-
|
64 |
-
1. Go to: `s2Member -> General Options -> Deactivation Safeguards`. Turn Safeguards `on`, click Save.
|
65 |
-
2. Now you can safely deactivate s2Member by going to `WordPress® -> Plugins -> s2Member`.
|
66 |
-
3. Login via FTP, and delete the entire `/wp-content/plugins/s2member` directory.
|
67 |
-
You can leave `/plugins/s2member-logs/` and `/plugins/s2member-files/`.
|
68 |
-
4. Now upload the latest `/s2member` folder to `/wp-content/plugins/`.
|
69 |
-
5. Go to: `WordPress® -> Plugins -> s2Member`, and reactivate.
|
70 |
-
6. That's it. All existing options will remain intact.
|
71 |
-
|
72 |
-
= Why do I get memory errors during automatic upgrade? =
|
73 |
-
This depends on your hosting provider and/or server configuration. Some web hosting companies impose very low limits on the amount of memory available to WordPress® during the execution of a single script. Since s2Member is a larger plugin, WordPress® may exceed conservative limits set forth by shared hosting companies. Don't feel bad, it's a very common problem. The solution is to upgrade manually. Memory limits only affect the WordPress® auto-installation/upgrade routine, not the actual functionality of WordPress® or s2Member.
|
74 |
-
|
75 |
== Description ==
|
76 |
|
77 |
-
|
|
|
|
|
78 |
|
79 |
s2Member supports Free Subscribers ( at Level #0 ), and up to four Primary Membership Levels, [1-4]; plus unlimited Custom Capability Packages. You can label your Membership Levels anything you like. The defaults are Free, Bronze, Silver, Gold, and Platinum. Custom Capabilities are an easy way to extend s2Member in very creative ways. Custom Capabilities allow you to create an unlimited number of Membership Packages, all with different Capabilities and prices.
|
80 |
|
@@ -99,6 +90,9 @@ New! - [s2Member Pro](http://www.s2member.com/) is an add-on module for the free
|
|
99 |
9. s2Member / Screenshot #9
|
100 |
10. s2Member / Screenshot #10
|
101 |
|
|
|
|
|
|
|
102 |
== Frequently Asked Questions ==
|
103 |
|
104 |
= Is there documentation available for s2Member? =
|
@@ -114,7 +108,7 @@ Yes. The [Forum](http://www.primothemes.com/forums/viewforum.php?f=4) for s2Memb
|
|
114 |
Archived releases of s2Member are maintained [here](http://wordpress.org/extend/plugins/s2member/download/).
|
115 |
|
116 |
= Does s2Member install any new database tables? =
|
117 |
-
No, s2Member has been fully integrated with
|
118 |
|
119 |
= Does PayPal integration work right-out-of-the-box? =
|
120 |
Yes, it can even generate your PayPal® Subscription Buttons for you. Everything is fully integrated. You even get to create your own Pages within WordPress® to handle Membership Options, the Login Welcome Page, etc. For advanced webmasters, there are scripting techniques that are documented as well. These will help you further develop your site and tailor it to meet your specific needs. s2Member API Scripting is NOT required however.
|
@@ -169,11 +163,17 @@ Yes and no. We've left this feature out of the plugin intentionally, because man
|
|
169 |
|
170 |
== Upgrade Notice ==
|
171 |
|
172 |
-
= 3.5.
|
173 |
* Upgrade highly recommended. Many new features, WordPress® 3.1 compatible, speed optimizations, and several bug fixes.
|
174 |
|
175 |
== Changelog ==
|
176 |
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
= 3.5.7 =
|
178 |
* **(s2Member/s2Member Pro). Bug fix.** A bug was found in the `c_ws_plugin__s2member_systematics_sp` class file. This bug was affecting s2Member's Security Gate for WordPress® `Pages` under certain unique circumstances. One symptom of this bug ( seen with s2Member Pro installed ), was to experience a strange disappearance of (s2) Lock Icons in your list of Pages, whenever the first Page in your list was the Login Welcome Page that you configured for s2Member.
|
179 |
* **(s2Member Pro). Bug fix.** On a Multisite Network, s2Member Pro Forms were generating an erroneous error `Please enter a username` during a Billing Modification under certain circumstances. This has been resolved in s2Member Pro v1.5.7+.
|
1 |
=== s2Member ( Membership w/ PayPal® ) ===
|
2 |
|
3 |
+
Version: 3.5.8
|
4 |
+
Stable tag: 3.5.8
|
5 |
Framework: WS-P-3.5
|
6 |
|
7 |
SSL Compatible: yes
|
19 |
AliPay® Compatible: w/ s2Member Pro
|
20 |
ccBill® Compatible: w/ s2Member Pro
|
21 |
|
22 |
+
Tested up to: 3.1.1
|
23 |
Requires at least: 3.0
|
24 |
+
Requires: WordPress® 3.0+, PHP 5.2.3+
|
25 |
|
26 |
Copyright: © 2009 WebSharks, Inc.
|
27 |
License: GNU General Public License
|
31 |
Donate link: http://www.primothemes.com/donate/
|
32 |
|
33 |
Plugin Name: s2Member
|
34 |
+
Video Tutorials: http://www.s2member.com/videos/
|
35 |
Pro Module / Prices: http://www.s2member.com/prices/
|
36 |
Forum URI: http://www.primothemes.com/forums/viewforum.php?f=4
|
37 |
PayPal Pro Integration: http://www.primothemes.com/forums/viewtopic.php?f=4&t=304
|
40 |
Description: Empowers WordPress® with membership capabilities. Integrates seamlessly with PayPal®. Also compatible with Multisite Networking, and even with BuddyPress if you like.
|
41 |
Tags: membership, members, member, register, signup, paypal, paypal pro, pay pal, s2member, authorize.net, google checkout, ccbill, clickbank, alipay, subscriber, members only, buddypress, buddy press, buddy press compatible, shopping cart, checkout, api, options panel included, websharks framework, w3c validated code, includes extensive documentation, highly extensible
|
42 |
|
43 |
+
s2Member is an extremely powerful ( and free ) membership management system for WordPress®. s2Member integrates seamlessly with PayPal® (very easy).
|
44 |
|
45 |
== Installation ==
|
46 |
|
49 |
2. Activate the plugin through the `Plugins` menu in WordPress®.
|
50 |
3. Navigate to the `s2Member Options` panel for configuration details.
|
51 |
|
52 |
+
= Upgrading to the latest version? =
|
53 |
+
Please visit [this page](http://www.primothemes.com/forums/viewtopic.php?f=36&t=247) for [easy upgrade instructions](http://www.primothemes.com/forums/viewtopic.php?f=36&t=247).
|
54 |
+
|
55 |
= Auto-installing through WordPress® ( memory errors? ) =
|
56 |
This depends on your hosting provider and/or server configuration. Some web hosting companies impose very low limits on the amount of memory available to WordPress® during the execution of a single script. Since s2Member is a larger plugin, WordPress® may exceed conservative limits set forth by shared hosting companies. Don't feel bad, it's a very common problem. The solution is to install manually, using the instructions above. Memory limits only affect the WordPress® auto-installation routine, not the actual functionality of WordPress® or s2Member.
|
57 |
|
61 |
= What about Multisite Networking ( WPMU ), used on a Blog Farm? =
|
62 |
Yes, preliminary ( experimental ) support for Multisite Blog Farms has also been implemented. If you're running a Multisite Blog Farm ( i.e. you offer Blogs ), please contact s2Member.com for further details. With Multisite Networking enabled, your site could ALSO offer a Customer access to create a Blog of their own, where a Customer becomes a "Member" of your ( Main Site ), and also a Blog Owner/Administrator. With s2Member installed ( network wide ), each of your Blog Owners could offer Membership too, using a single installation of the s2Member plugin ( which is a great selling point ). We refer to this as a Multisite Blog Farm. You can get started now, by turning on [Multisite Networking](http://codex.wordpress.org/Create_A_Network) inside your installation of WordPress®. Then, install the s2Member plugin ( network wide ). In the Dashboard for your Main Site, see: `s2Member -> Multisite ( Config )`.
|
63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
== Description ==
|
65 |
|
66 |
+
[youtube http://www.youtube.com/watch?v=FyA8Qmm2DHY /]
|
67 |
+
|
68 |
+
s2Member is an extremely powerful ( and free ) membership management system for WordPress®. The s2Member Framework ( free ) integrates seamlessly with PayPal® ( very easy ), and fully supports recurring billing, with the ability to track affiliate commissions on a recurring basis. s2Member supports custom Pages for registration ( including Custom Registration Fields ), account access, and a whole lot more. s2Member is now compatible with Multisite Networking too, and even with BuddyPress if you like. In addition, with the s2Member Pro Module ( an optional paid upgrade ), you can add support for PayPal® Pro, Authorize.Net®, ccBill®, Google® Checkout, ClickBank®, and reach over 1 billion people in China with s2Member's AliPay® integration. Videos available at: [s2Member.com / Videos](http://www.s2member.com/videos/).
|
69 |
|
70 |
s2Member supports Free Subscribers ( at Level #0 ), and up to four Primary Membership Levels, [1-4]; plus unlimited Custom Capability Packages. You can label your Membership Levels anything you like. The defaults are Free, Bronze, Silver, Gold, and Platinum. Custom Capabilities are an easy way to extend s2Member in very creative ways. Custom Capabilities allow you to create an unlimited number of Membership Packages, all with different Capabilities and prices.
|
71 |
|
90 |
9. s2Member / Screenshot #9
|
91 |
10. s2Member / Screenshot #10
|
92 |
|
93 |
+
== Video Tutorials ==
|
94 |
+
Please visit s2Member.com for [video tutorials](http://www.s2member.com/videos/).
|
95 |
+
|
96 |
== Frequently Asked Questions ==
|
97 |
|
98 |
= Is there documentation available for s2Member? =
|
108 |
Archived releases of s2Member are maintained [here](http://wordpress.org/extend/plugins/s2member/download/).
|
109 |
|
110 |
= Does s2Member install any new database tables? =
|
111 |
+
No, s2Member has been fully integrated with Roles & Capabilities that are already built into WordPress®. It is designed to be completely seamless, without code bloat. We've carefully structured the entire framework, in order to maximize s2Member's ability to operate with other plugins installed. For instance, s2Member is also compatible with BuddyPress; and can even be used to protect forums powered by bbPress.
|
112 |
|
113 |
= Does PayPal integration work right-out-of-the-box? =
|
114 |
Yes, it can even generate your PayPal® Subscription Buttons for you. Everything is fully integrated. You even get to create your own Pages within WordPress® to handle Membership Options, the Login Welcome Page, etc. For advanced webmasters, there are scripting techniques that are documented as well. These will help you further develop your site and tailor it to meet your specific needs. s2Member API Scripting is NOT required however.
|
163 |
|
164 |
== Upgrade Notice ==
|
165 |
|
166 |
+
= 3.5.8+ =
|
167 |
* Upgrade highly recommended. Many new features, WordPress® 3.1 compatible, speed optimizations, and several bug fixes.
|
168 |
|
169 |
== Changelog ==
|
170 |
|
171 |
+
= 3.5.8 =
|
172 |
+
* **(s2Member). Bug fix.** The Shortcode version of s2Member's Profile Editing Panel ( i.e. `[s2Member-Profile /]` ) was not validating input fields properly. This bug was has been resolved in v3.5.8+.
|
173 |
+
* **(s2Member). Compatibility.** s2Member now requires PHP v5.2.3+ instead of just PHP v5.2+. This is because `call_user_func_array()` in early versions of PHP 5.2 did not support static class methods with a scope resolution operator. If you've had trouble getting s2Member v3.5+ to run on your server, this is likely the cause. Please make sure you're running PHP v5.2.3+.
|
174 |
+
* **(s2Member). Bug fix.** PayPal® Button Encryption was failing under some circumstances, because the PayPal® API Method `BMCreateButton` requires two decimal places at all times. The bug fix in this release does NOT require any changes to your Shortcode attributes. Rather, the encryption routine will now automatically convert numeric dollar amounts during encryption.
|
175 |
+
* **(s2Member Pro). Compatibility.** Starting with s2Member Pro v3.5.8+, Pro Cancellation Forms will automatically detect Customers that may have signed up with a Standard PayPal® Button, and provide the Customer with a link & instructions about how to cancel their "Subscription" via PayPal®. This makes it possible for site owners upgrading to s2Member Pro, to provide their Customers with just ONE Cancellation Form, which has the ability to consider both PayPal® Standard "Subscriptions", and also "Recurring Profiles"; which are used by s2Member Pro Forms.
|
176 |
+
|
177 |
= 3.5.7 =
|
178 |
* **(s2Member/s2Member Pro). Bug fix.** A bug was found in the `c_ws_plugin__s2member_systematics_sp` class file. This bug was affecting s2Member's Security Gate for WordPress® `Pages` under certain unique circumstances. One symptom of this bug ( seen with s2Member Pro installed ), was to experience a strange disappearance of (s2) Lock Icons in your list of Pages, whenever the first Page in your list was the Login Welcome Page that you configured for s2Member.
|
179 |
* **(s2Member Pro). Bug fix.** On a Multisite Network, s2Member Pro Forms were generating an erroneous error `Please enter a username` during a Billing Modification under certain circumstances. This has been resolved in s2Member Pro v1.5.7+.
|
s2member.php
CHANGED
@@ -9,8 +9,8 @@ along with this software. In the main directory, see: /licensing/
|
|
9 |
If not, see: <http://www.gnu.org/licenses/>.
|
10 |
*/
|
11 |
/*
|
12 |
-
Version: 3.5.
|
13 |
-
Stable tag: 3.5.
|
14 |
Framework: WS-P-3.5
|
15 |
|
16 |
SSL Compatible: yes
|
@@ -26,9 +26,9 @@ Google® Checkout Compatible: w/ s2Member Pro
|
|
26 |
ClickBank® Compatible: w/ s2Member Pro
|
27 |
AliPay® Compatible: w/ s2Member Pro
|
28 |
|
29 |
-
Tested up to: 3.1
|
30 |
Requires at least: 3.0
|
31 |
-
Requires: WordPress® 3.0+, PHP 5.2+
|
32 |
|
33 |
Copyright: © 2009 WebSharks, Inc.
|
34 |
License: GNU General Public License
|
@@ -38,6 +38,7 @@ Author: PriMoThemes.com / WebSharks, Inc.
|
|
38 |
Donate link: http://www.primothemes.com/donate/
|
39 |
|
40 |
Plugin Name: s2Member
|
|
|
41 |
Pro Module / Prices: http://www.s2member.com/prices/
|
42 |
Forum URI: http://www.primothemes.com/forums/viewforum.php?f=4
|
43 |
PayPal Pro Integration: http://www.primothemes.com/forums/viewtopic.php?f=4&t=304
|
@@ -54,10 +55,10 @@ if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
|
|
54 |
/*
|
55 |
Define versions.
|
56 |
*/
|
57 |
-
@define ("WS_PLUGIN__S2MEMBER_VERSION", "3.5.
|
58 |
-
@define ("WS_PLUGIN__S2MEMBER_MIN_PHP_VERSION", "5.2");
|
59 |
@define ("WS_PLUGIN__S2MEMBER_MIN_WP_VERSION", "3.0");
|
60 |
-
@define ("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "1.5.
|
61 |
/*
|
62 |
Compatibility checks.
|
63 |
*/
|
9 |
If not, see: <http://www.gnu.org/licenses/>.
|
10 |
*/
|
11 |
/*
|
12 |
+
Version: 3.5.8
|
13 |
+
Stable tag: 3.5.8
|
14 |
Framework: WS-P-3.5
|
15 |
|
16 |
SSL Compatible: yes
|
26 |
ClickBank® Compatible: w/ s2Member Pro
|
27 |
AliPay® Compatible: w/ s2Member Pro
|
28 |
|
29 |
+
Tested up to: 3.1.1
|
30 |
Requires at least: 3.0
|
31 |
+
Requires: WordPress® 3.0+, PHP 5.2.3+
|
32 |
|
33 |
Copyright: © 2009 WebSharks, Inc.
|
34 |
License: GNU General Public License
|
38 |
Donate link: http://www.primothemes.com/donate/
|
39 |
|
40 |
Plugin Name: s2Member
|
41 |
+
Video Tutorials: http://www.s2member.com/videos/
|
42 |
Pro Module / Prices: http://www.s2member.com/prices/
|
43 |
Forum URI: http://www.primothemes.com/forums/viewforum.php?f=4
|
44 |
PayPal Pro Integration: http://www.primothemes.com/forums/viewtopic.php?f=4&t=304
|
55 |
/*
|
56 |
Define versions.
|
57 |
*/
|
58 |
+
@define ("WS_PLUGIN__S2MEMBER_VERSION", "3.5.8");
|
59 |
+
@define ("WS_PLUGIN__S2MEMBER_MIN_PHP_VERSION", "5.2.3");
|
60 |
@define ("WS_PLUGIN__S2MEMBER_MIN_WP_VERSION", "3.0");
|
61 |
+
@define ("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "1.5.8");
|
62 |
/*
|
63 |
Compatibility checks.
|
64 |
*/
|