Version Description
- Bug fix. A bug in the PayPal Auto-Return routine for PDT ( Payment Data Transfer ) has been resolved. This bug was generating a message that read:
Unable to verify POST vars
. This was actually not a bug, but rather, a limitation in PDT transmissions from PayPal. s2Member has been updated, with a work-around for this limitation. This bug was very elusive, because it was not affecting all PayPal accounts. In some cases, it was only affecting PayPal accounts opened after October 2009.
Download this release
Release Info
Developer | PriMoThemes |
Plugin | s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) |
Version | 2.9.2 |
Comparing to | |
See all releases |
Code changes from version 2.9 to 2.9.2
- includes/functions/paypal-notify.inc.php +10 -2
- includes/functions/paypal-return.inc.php +15 -5
- includes/functions/readme-parsing.inc.php +7 -0
- includes/menu-pages/api-ops.inc.php +4 -4
- includes/menu-pages/buttons.inc.php +4 -4
- includes/menu-pages/code-samples/paypal-return-url.php +1 -1
- includes/menu-pages/down-ops.inc.php +4 -4
- includes/menu-pages/els-ops.inc.php +8 -8
- includes/menu-pages/info.inc.php +5 -5
- includes/menu-pages/menu-pages.css +1 -1
- includes/menu-pages/menu-pages.js +3 -3
- includes/menu-pages/options.inc.php +9 -9
- includes/menu-pages/paypal-ops.inc.php +9 -9
- includes/menu-pages/scripting.inc.php +11 -11
- includes/menu-pages/start.inc.php +4 -4
- includes/menu-pages/trk-ops.inc.php +8 -8
- readme.txt +7 -4
- s2member.php +2 -2
includes/functions/paypal-notify.inc.php
CHANGED
@@ -70,7 +70,7 @@ function ws_plugin__s2member_paypal_notify ()
|
|
70 |
{
|
71 |
@mail ($paypal["payer_email"], $sbj, $msg, "From: \"" . preg_replace ('/"/', "'", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_name"]) . "\" <" . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"] . ">\r\nContent-Type: text/plain; charset=utf-8", "-f " . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"]);
|
72 |
/**/
|
73 |
-
$paypal["s2member_log"][] = "Email sent
|
74 |
}
|
75 |
/**/
|
76 |
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sp_notification_urls"])
|
@@ -141,6 +141,10 @@ function ws_plugin__s2member_paypal_notify ()
|
|
141 |
/**/
|
142 |
$paypal["s2member_log"][] = "s2Member Level/Capabilities updated w/ advanced update routines.";
|
143 |
/**/
|
|
|
|
|
|
|
|
|
144 |
do_action ("s2member_during_paypal_notify_during_subscr_signup_w_update_vars");
|
145 |
}
|
146 |
else
|
@@ -201,7 +205,7 @@ function ws_plugin__s2member_paypal_notify ()
|
|
201 |
{
|
202 |
@mail ($paypal["payer_email"], $sbj, $msg, "From: \"" . preg_replace ('/"/', "'", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_name"]) . "\" <" . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"] . ">\r\nContent-Type: text/plain; charset=utf-8", "-f " . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"]);
|
203 |
/**/
|
204 |
-
$paypal["s2member_log"][] = "Email sent
|
205 |
}
|
206 |
/**/
|
207 |
do_action ("s2member_during_paypal_notify_during_subscr_signup_wo_update_vars");
|
@@ -275,6 +279,10 @@ function ws_plugin__s2member_paypal_notify ()
|
|
275 |
/**/
|
276 |
$paypal["s2member_log"][] = "s2Member Level/Capabilities updated on subscription modification.";
|
277 |
/**/
|
|
|
|
|
|
|
|
|
278 |
do_action ("s2member_during_paypal_notify_during_subscr_modify");
|
279 |
}
|
280 |
else
|
70 |
{
|
71 |
@mail ($paypal["payer_email"], $sbj, $msg, "From: \"" . preg_replace ('/"/', "'", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_name"]) . "\" <" . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"] . ">\r\nContent-Type: text/plain; charset=utf-8", "-f " . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"]);
|
72 |
/**/
|
73 |
+
$paypal["s2member_log"][] = "Single-Page Confirmation Email sent to Customer, with a URL that provides Single-Page Access.";
|
74 |
}
|
75 |
/**/
|
76 |
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sp_notification_urls"])
|
141 |
/**/
|
142 |
$paypal["s2member_log"][] = "s2Member Level/Capabilities updated w/ advanced update routines.";
|
143 |
/**/
|
144 |
+
@mail ($paypal["payer_email"], "Thank You! Your membership has been updated.", "Thank You! Your membership has been updated to:\n" . $paypal["item_name"] . "\n\nYou\\'ll need to log back in now.\n" . wp_login_url (), "From: \"" . preg_replace ('/"/', "'", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_name"]) . "\" <" . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"] . ">\r\nContent-Type: text/plain; charset=utf-8", "-f " . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"]);
|
145 |
+
/**/
|
146 |
+
$paypal["s2member_log"][] = "Modification Confirmation Email sent to Customer, with a URL that provides them with a way to log back in.";
|
147 |
+
/**/
|
148 |
do_action ("s2member_during_paypal_notify_during_subscr_signup_w_update_vars");
|
149 |
}
|
150 |
else
|
205 |
{
|
206 |
@mail ($paypal["payer_email"], $sbj, $msg, "From: \"" . preg_replace ('/"/', "'", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_name"]) . "\" <" . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"] . ">\r\nContent-Type: text/plain; charset=utf-8", "-f " . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"]);
|
207 |
/**/
|
208 |
+
$paypal["s2member_log"][] = "Signup Confirmation Email sent to Customer, with a URL to assist w/ registration.";
|
209 |
}
|
210 |
/**/
|
211 |
do_action ("s2member_during_paypal_notify_during_subscr_signup_wo_update_vars");
|
279 |
/**/
|
280 |
$paypal["s2member_log"][] = "s2Member Level/Capabilities updated on subscription modification.";
|
281 |
/**/
|
282 |
+
@mail ($paypal["payer_email"], "Thank You! Your membership has been updated.", "Thank You! Your membership has been updated to:\n" . $paypal["item_name"] . "\n\nYou\\'ll need to log back in now.\n" . wp_login_url (), "From: \"" . preg_replace ('/"/', "'", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_name"]) . "\" <" . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"] . ">\r\nContent-Type: text/plain; charset=utf-8", "-f " . $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"]);
|
283 |
+
/**/
|
284 |
+
$paypal["s2member_log"][] = "Modification Confirmation Email sent to Customer, with a URL that provides them with a way to log back in.";
|
285 |
+
/**/
|
286 |
do_action ("s2member_during_paypal_notify_during_subscr_modify");
|
287 |
}
|
288 |
else
|
includes/functions/paypal-return.inc.php
CHANGED
@@ -21,9 +21,6 @@ function ws_plugin__s2member_paypal_return ()
|
|
21 |
{
|
22 |
do_action ("s2member_before_paypal_return");
|
23 |
/**/
|
24 |
-
/* Note: Auto-Return with PDT does not send anything when subscriptions are modified.
|
25 |
-
Therefore, we need to be sure that we always send a thank you message here by default,
|
26 |
-
and then we'll just leave the rest of the modification up to the IPN handler instead. */
|
27 |
if ($_GET["s2member_paypal_return"] && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])
|
28 |
{
|
29 |
global $wpdb; /* Need this global variable as a reference to the database object. */
|
@@ -358,12 +355,25 @@ function ws_plugin__s2member_paypal_return ()
|
|
358 |
$paypal["s2member_log"][] = "Redirecting Customer to the Login Page, due to an error that occurred.";
|
359 |
}
|
360 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
361 |
else
|
362 |
{
|
363 |
-
$paypal["s2member_log"][] = "Unable to verify POST vars. This is most likely related to an invalid PayPal® configuration. Please check: s2Member -> PayPal® Options
|
364 |
/**/
|
365 |
echo '<script type="text/javascript">' . "\n";
|
366 |
-
echo "alert('ERROR: Unable to verify POST vars. Please contact Support for assistance.\\n\\nThis is most likely related to an invalid PayPal® configuration. If you are the site owner, please check: s2Member -> PayPal® Options
|
367 |
echo "window.location = '" . esc_js (wp_login_url ()) . "';";
|
368 |
echo '</script>' . "\n";
|
369 |
/**/
|
21 |
{
|
22 |
do_action ("s2member_before_paypal_return");
|
23 |
/**/
|
|
|
|
|
|
|
24 |
if ($_GET["s2member_paypal_return"] && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])
|
25 |
{
|
26 |
global $wpdb; /* Need this global variable as a reference to the database object. */
|
355 |
$paypal["s2member_log"][] = "Redirecting Customer to the Login Page, due to an error that occurred.";
|
356 |
}
|
357 |
}
|
358 |
+
else if (!isset ($_GET["tx"]) && (empty ($_POST) || $_POST["auth"]))
|
359 |
+
{
|
360 |
+
$paypal["s2member_log"][] = "No Return-Data from PayPal®. Customer must wait for Email Confirmation.";
|
361 |
+
/**/
|
362 |
+
echo '<script type="text/javascript">' . "\n";
|
363 |
+
echo "alert('Thank You! ( please check your email ).\\n\\n* Note: It can take ( up to 15 minutes ) for Email Confirmation. If you don\'t receive email confirmation in the next 15 minutes, please contact Support.');" . "\n";
|
364 |
+
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"])
|
365 |
+
echo "alert('** Sandbox Mode ** You will probably NOT receive this Email Confirmation in Sandbox Mode. Sandbox addresses are usually bogus ( for testing ).');" . "\n";
|
366 |
+
echo "window.location = '" . esc_js (get_bloginfo ("url")) . "';";
|
367 |
+
echo '</script>' . "\n";
|
368 |
+
/**/
|
369 |
+
$paypal["s2member_log"][] = "Redirecting Customer to the Home Page.";
|
370 |
+
}
|
371 |
else
|
372 |
{
|
373 |
+
$paypal["s2member_log"][] = "Unable to verify POST vars. This is most likely related to an invalid PayPal® configuration. Please check: s2Member -> PayPal® Options.";
|
374 |
/**/
|
375 |
echo '<script type="text/javascript">' . "\n";
|
376 |
+
echo "alert('ERROR: Unable to verify POST vars. Please contact Support for assistance.\\n\\nThis is most likely related to an invalid PayPal® configuration. If you are the site owner, please check: s2Member -> PayPal® Options.');" . "\n";
|
377 |
echo "window.location = '" . esc_js (wp_login_url ()) . "';";
|
378 |
echo '</script>' . "\n";
|
379 |
/**/
|
includes/functions/readme-parsing.inc.php
CHANGED
@@ -22,6 +22,9 @@ function ws_plugin__s2member_parse_readme ()
|
|
22 |
/**/
|
23 |
if (file_exists (dirname (dirname (dirname (__FILE__))) . "/readme.txt"))
|
24 |
{
|
|
|
|
|
|
|
25 |
if (!function_exists ("NC_Markdown"))
|
26 |
include_once dirname (dirname (__FILE__)) . "/markdown/nc-markdown.inc.php";
|
27 |
/**/
|
@@ -38,11 +41,15 @@ function ws_plugin__s2member_parse_readme ()
|
|
38 |
$r2 = "/(\<\/div\>)(\<h2\>)(.+?)(\<\/h2\>)(.+?)(\<div class\=\"section\"\>\<h2\>|$)/si";
|
39 |
$r3 = "/(\<div class\=\"section\"\>)(\<h2\>)(Specifications)(\<\/h2\>)(\<div class\=\"content\"\>)(.+?)(\<\/div\>\<\/div\>)/sei";
|
40 |
$r4 = "/(\<div class\=\"section\"\>)(\<h2\>)(Screenshots)(\<\/h2\>)(\<div class\=\"content\"\>)(.+?)(\<\/div\>\<\/div\>)/si";
|
|
|
41 |
/**/
|
42 |
$rm = preg_replace ($r1, '<div class="section">' . "$1$2$3" . '<div class="content">' . "$4" . '</div></div>' . "$5", $rm);
|
43 |
$rm = preg_replace ($r2, "$1" . '<div class="section">' . "$2$3$4" . '<div class="content">' . "$5" . '</div></div>' . "$6", $rm);
|
44 |
$rm = stripslashes (preg_replace ($r3, "'\\1\\2\\3\\4\\5'._ws_plugin__s2member_parse_readme_specs('\\6').'\\7'", $rm, 1));
|
45 |
$rm = stripslashes (preg_replace ($r4, "", $rm, 1)); /* Here we just remove the screenshots completely. */
|
|
|
|
|
|
|
46 |
/**/
|
47 |
$readme = '<div class="readme">' . "\n";
|
48 |
$readme .= $rm . "\n"; /* Content. */
|
22 |
/**/
|
23 |
if (file_exists (dirname (dirname (dirname (__FILE__))) . "/readme.txt"))
|
24 |
{
|
25 |
+
$o_pcre = ini_get ("pcre.backtrack_limit");
|
26 |
+
ini_set ("pcre.backtrack_limit", 10000000);
|
27 |
+
/**/
|
28 |
if (!function_exists ("NC_Markdown"))
|
29 |
include_once dirname (dirname (__FILE__)) . "/markdown/nc-markdown.inc.php";
|
30 |
/**/
|
41 |
$r2 = "/(\<\/div\>)(\<h2\>)(.+?)(\<\/h2\>)(.+?)(\<div class\=\"section\"\>\<h2\>|$)/si";
|
42 |
$r3 = "/(\<div class\=\"section\"\>)(\<h2\>)(Specifications)(\<\/h2\>)(\<div class\=\"content\"\>)(.+?)(\<\/div\>\<\/div\>)/sei";
|
43 |
$r4 = "/(\<div class\=\"section\"\>)(\<h2\>)(Screenshots)(\<\/h2\>)(\<div class\=\"content\"\>)(.+?)(\<\/div\>\<\/div\>)/si";
|
44 |
+
$r5 = "/(\<a)( href)/i"; /* Modify all links. Assume a nofollow relationship since destinations are unknown. */
|
45 |
/**/
|
46 |
$rm = preg_replace ($r1, '<div class="section">' . "$1$2$3" . '<div class="content">' . "$4" . '</div></div>' . "$5", $rm);
|
47 |
$rm = preg_replace ($r2, "$1" . '<div class="section">' . "$2$3$4" . '<div class="content">' . "$5" . '</div></div>' . "$6", $rm);
|
48 |
$rm = stripslashes (preg_replace ($r3, "'\\1\\2\\3\\4\\5'._ws_plugin__s2member_parse_readme_specs('\\6').'\\7'", $rm, 1));
|
49 |
$rm = stripslashes (preg_replace ($r4, "", $rm, 1)); /* Here we just remove the screenshots completely. */
|
50 |
+
$rm = preg_replace ($r5, "$1" . ' target="_blank" rel="nofollow external"' . "$2", $rm);
|
51 |
+
/**/
|
52 |
+
ini_set ("pcre.backtrack_limit", $o_pcre);
|
53 |
/**/
|
54 |
$readme = '<div class="readme">' . "\n";
|
55 |
$readme .= $rm . "\n"; /* Content. */
|
includes/menu-pages/api-ops.inc.php
CHANGED
@@ -19,7 +19,7 @@ API Notifications page.
|
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
-
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member API / Notifications</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
@@ -356,13 +356,13 @@ echo '</td>' . "\n";
|
|
356 |
/**/
|
357 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
358 |
/**/
|
359 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
360 |
/**/
|
361 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
362 |
/**/
|
363 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
364 |
/**/
|
365 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
366 |
/**/
|
367 |
echo '</td>' . "\n";
|
368 |
/**/
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
+
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member API / Notifications</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
356 |
/**/
|
357 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
358 |
/**/
|
359 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
360 |
/**/
|
361 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
362 |
/**/
|
363 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
364 |
/**/
|
365 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
366 |
/**/
|
367 |
echo '</td>' . "\n";
|
368 |
/**/
|
includes/menu-pages/buttons.inc.php
CHANGED
@@ -19,7 +19,7 @@ PayPal® Button Generating page.
|
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
-
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member / PayPal® Button Codes</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
@@ -492,13 +492,13 @@ echo '</td>' . "\n";
|
|
492 |
/**/
|
493 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
494 |
/**/
|
495 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
496 |
/**/
|
497 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
498 |
/**/
|
499 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
500 |
/**/
|
501 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
502 |
/**/
|
503 |
echo '</td>' . "\n";
|
504 |
/**/
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
+
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member / PayPal® Button Codes</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
492 |
/**/
|
493 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
494 |
/**/
|
495 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
496 |
/**/
|
497 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
498 |
/**/
|
499 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
500 |
/**/
|
501 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
502 |
/**/
|
503 |
echo '</td>' . "\n";
|
504 |
/**/
|
includes/menu-pages/code-samples/paypal-return-url.php
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
<?php echo S2MEMBER_PAYPAL_RETURN_URL; ?>
|
2 |
This will output something like: http://www.example.com/?s2member_paypal_return=1
|
3 |
-
( this is used as the Signup Confirmation Page, and also handles PDT
|
1 |
<?php echo S2MEMBER_PAYPAL_RETURN_URL; ?>
|
2 |
This will output something like: http://www.example.com/?s2member_paypal_return=1
|
3 |
+
( this is used as the Signup Confirmation Page, and also handles PDT/Auto-Return )
|
includes/menu-pages/down-ops.inc.php
CHANGED
@@ -19,7 +19,7 @@ Download Options page.
|
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
-
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member File Download Options</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
@@ -173,13 +173,13 @@ echo '</td>' . "\n";
|
|
173 |
/**/
|
174 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
175 |
/**/
|
176 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
177 |
/**/
|
178 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
179 |
/**/
|
180 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
181 |
/**/
|
182 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
183 |
/**/
|
184 |
echo '</td>' . "\n";
|
185 |
/**/
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
+
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member File Download Options</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
173 |
/**/
|
174 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
175 |
/**/
|
176 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
177 |
/**/
|
178 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
179 |
/**/
|
180 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
181 |
/**/
|
182 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
183 |
/**/
|
184 |
echo '</td>' . "\n";
|
185 |
/**/
|
includes/menu-pages/els-ops.inc.php
CHANGED
@@ -19,7 +19,7 @@ PayPal® Options page.
|
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
-
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member API / List Servers</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
@@ -36,8 +36,8 @@ echo '<div class="ws-menu-page-group" title="MailChimp® List Server Integration
|
|
36 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-mailchimp-section">' . "\n";
|
37 |
echo '<a href="http://www.mailchimp.com/signup/?aid=8f347da54d66b5298d13237d9&afl=1" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/mailchimp-stamp.png" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." /></a>' . "\n";
|
38 |
echo '<h3>MailChimp® List Server Integration ( optional )</h3>' . "\n";
|
39 |
-
echo '<p>s2Member can be integrated with MailChimp®. MailChimp® is an email marketing service. MailChimp® makes it easy to send email newsletters to your Customers, manage your MailChimp® subscriber lists, and track campaign performance. Although s2Member can be integrated with almost ANY list server, we highly recommend MailChimp®; because of their <a href="http://www.mailchimp.com/api/?aid=8f347da54d66b5298d13237d9&afl=1" target="_blank" rel="
|
40 |
-
echo '<p>For now, we\'ve covered the basics. You can have your Members automatically subscribed to your MailChimp® marketing lists ( e.g. newsletters / auto-responders ). You\'ll need a <a href="http://www.mailchimp.com/signup/?aid=8f347da54d66b5298d13237d9&afl=1" target="_blank" rel="
|
41 |
/**/
|
42 |
echo '<table class="form-table">' . "\n";
|
43 |
echo '<tbody>' . "\n";
|
@@ -54,7 +54,7 @@ echo '<tr>' . "\n";
|
|
54 |
/**/
|
55 |
echo '<td>' . "\n";
|
56 |
echo '<input type="text" name="ws_plugin__s2member_mailchimp_api_key" id="ws-plugin--s2member-mailchimp-api-key" value="' . format_to_edit ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mailchimp_api_key"]) . '" /><br />' . "\n";
|
57 |
-
echo 'Once you have a MailChimp® account, you\'ll need to <a href="http://admin.mailchimp.com/account/api-key-popup" target="_blank" rel="
|
58 |
echo '</td>' . "\n";
|
59 |
/**/
|
60 |
echo '</tr>' . "\n";
|
@@ -157,7 +157,7 @@ echo '<div class="ws-menu-page-section ws-plugin--s2member-aweber-section">' . "
|
|
157 |
echo '<a href="http://aweber.com/?348037" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/aweber-logo.png" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." /></a>' . "\n";
|
158 |
echo '<h3>AWeber® List Server Integration ( optional )</h3>' . "\n";
|
159 |
echo '<p>s2Member can be integrated with AWeber®. AWeber® is an email marketing service. Whether you\'re looking to get your first email campaign off the ground, or you\'re a seasoned veteran who wants to dig into advanced tools like detailed email web analytics, activity based segmentation, geo-targeting and broadcast split-testing, AWeber\'s got just what you need to make email marketing work for you.</p>' . "\n";
|
160 |
-
echo '<p>You can have your Members automatically subscribed to your AWeber® marketing lists ( e.g. newsletters / auto-responders ). You\'ll need an <a href="http://aweber.com/?348037" target="_blank" rel="
|
161 |
/**/
|
162 |
echo '<table class="form-table">' . "\n";
|
163 |
echo '<tbody>' . "\n";
|
@@ -273,13 +273,13 @@ echo '</td>' . "\n";
|
|
273 |
/**/
|
274 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
275 |
/**/
|
276 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
277 |
/**/
|
278 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
279 |
/**/
|
280 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
281 |
/**/
|
282 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
283 |
/**/
|
284 |
echo '</td>' . "\n";
|
285 |
/**/
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
+
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member API / List Servers</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
36 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-mailchimp-section">' . "\n";
|
37 |
echo '<a href="http://www.mailchimp.com/signup/?aid=8f347da54d66b5298d13237d9&afl=1" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/mailchimp-stamp.png" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." /></a>' . "\n";
|
38 |
echo '<h3>MailChimp® List Server Integration ( optional )</h3>' . "\n";
|
39 |
+
echo '<p>s2Member can be integrated with MailChimp®. MailChimp® is an email marketing service. MailChimp® makes it easy to send email newsletters to your Customers, manage your MailChimp® subscriber lists, and track campaign performance. Although s2Member can be integrated with almost ANY list server, we highly recommend MailChimp®; because of their <a href="http://www.mailchimp.com/api/?aid=8f347da54d66b5298d13237d9&afl=1" target="_blank" rel="external">powerful API for MailChimp® services</a>. In future versions of s2Member, we plan to build additional features into s2Member that work with, and extend, MailChimp® services.</p>' . "\n";
|
40 |
+
echo '<p>For now, we\'ve covered the basics. You can have your Members automatically subscribed to your MailChimp® marketing lists ( e.g. newsletters / auto-responders ). You\'ll need a <a href="http://www.mailchimp.com/signup/?aid=8f347da54d66b5298d13237d9&afl=1" target="_blank" rel="external">MailChimp® account</a>, a <a href="http://admin.mailchimp.com/account/api-key-popup" target="_blank" rel="external">MailChimp® API Key</a>, and your <a href="#" onclick="alert(\'To obtain your MailChimp® List ID(s), log into your MailChimp® account, click on the Lists tab. Click the (View) button, for the list(s) you want to integrate with s2Member. Then, click the (settings) link at the top. On the main (settings) page, for each list, you\\\'ll find a Unique List ID.\'); return false;">MailChimp® List IDs</a>.</p>' . "\n";
|
41 |
/**/
|
42 |
echo '<table class="form-table">' . "\n";
|
43 |
echo '<tbody>' . "\n";
|
54 |
/**/
|
55 |
echo '<td>' . "\n";
|
56 |
echo '<input type="text" name="ws_plugin__s2member_mailchimp_api_key" id="ws-plugin--s2member-mailchimp-api-key" value="' . format_to_edit ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mailchimp_api_key"]) . '" /><br />' . "\n";
|
57 |
+
echo 'Once you have a MailChimp® account, you\'ll need to <a href="http://admin.mailchimp.com/account/api-key-popup" target="_blank" rel="external">add an API Key</a>.' . "\n";
|
58 |
echo '</td>' . "\n";
|
59 |
/**/
|
60 |
echo '</tr>' . "\n";
|
157 |
echo '<a href="http://aweber.com/?348037" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/aweber-logo.png" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." /></a>' . "\n";
|
158 |
echo '<h3>AWeber® List Server Integration ( optional )</h3>' . "\n";
|
159 |
echo '<p>s2Member can be integrated with AWeber®. AWeber® is an email marketing service. Whether you\'re looking to get your first email campaign off the ground, or you\'re a seasoned veteran who wants to dig into advanced tools like detailed email web analytics, activity based segmentation, geo-targeting and broadcast split-testing, AWeber\'s got just what you need to make email marketing work for you.</p>' . "\n";
|
160 |
+
echo '<p>You can have your Members automatically subscribed to your AWeber® marketing lists ( e.g. newsletters / auto-responders ). You\'ll need an <a href="http://aweber.com/?348037" target="_blank" rel="external">AWeber® account</a> and your <a href="#" onclick="alert(\'To obtain your AWeber® List ID(s), log into your AWeber® account. Click on the Lists tab. On that page you\\\'ll find a Unique List ID associated with each of your lists. AWeber® sometimes refers to this as a List Name instead of a List ID.\'); return false;">AWeber® List IDs</a>. You will ALSO need to configure a Custom Email Parser inside your AWeber® account. Log into AWeber®, and go to <em>My Lists -> Email Parser</em>. Choose the PayPal® Parser. You can safely ignore the additional instructions they provide. s2Member just needs the PayPal® box checked, and that\'s all. At some point, we\'ll get in contact with AWeber® about integrating a Custom Parser that is specifically designed for s2Member. Until then, you can just use the PayPal® Parser that is already available in your AWeber® account.</p>' . "\n";
|
161 |
/**/
|
162 |
echo '<table class="form-table">' . "\n";
|
163 |
echo '<tbody>' . "\n";
|
273 |
/**/
|
274 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
275 |
/**/
|
276 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
277 |
/**/
|
278 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
279 |
/**/
|
280 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
281 |
/**/
|
282 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
283 |
/**/
|
284 |
echo '</td>' . "\n";
|
285 |
/**/
|
includes/menu-pages/info.inc.php
CHANGED
@@ -19,7 +19,7 @@ s2Member Info page.
|
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
-
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value("Plugin URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member Information</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
@@ -30,7 +30,7 @@ echo '<td class="ws-menu-page-table-l">' . "\n";
|
|
30 |
/**/
|
31 |
echo '<img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-icon.png" class="ws-menu-page-brand-icon" alt="." />' . "\n";
|
32 |
/**/
|
33 |
-
echo '<a href="' . ws_plugin__s2member_parse_readme_value("Plugin URI") . '?check_ver=' . urlencode(ws_plugin__s2member_parse_readme_value("Version")) . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-updates.png" class="ws-menu-page-brand-updates" alt="." /></a>' . "\n";
|
34 |
/**/
|
35 |
echo '<div class="ws-menu-page-readme">' . "\n";
|
36 |
echo ws_plugin__s2member_parse_readme() . "\n";
|
@@ -40,13 +40,13 @@ echo '</td>' . "\n";
|
|
40 |
/**/
|
41 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
42 |
/**/
|
43 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
44 |
/**/
|
45 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
46 |
/**/
|
47 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value("Forum URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
48 |
/**/
|
49 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value("Donate link") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
50 |
/**/
|
51 |
echo '</td>' . "\n";
|
52 |
/**/
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
+
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value("Plugin URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member Information</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
30 |
/**/
|
31 |
echo '<img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-icon.png" class="ws-menu-page-brand-icon" alt="." />' . "\n";
|
32 |
/**/
|
33 |
+
echo '<a href="' . ws_plugin__s2member_parse_readme_value("Plugin URI") . '?check_ver=' . urlencode(ws_plugin__s2member_parse_readme_value("Version")) . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-updates.png" class="ws-menu-page-brand-updates" alt="." /></a>' . "\n";
|
34 |
/**/
|
35 |
echo '<div class="ws-menu-page-readme">' . "\n";
|
36 |
echo ws_plugin__s2member_parse_readme() . "\n";
|
40 |
/**/
|
41 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
42 |
/**/
|
43 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
44 |
/**/
|
45 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
46 |
/**/
|
47 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value("Forum URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
48 |
/**/
|
49 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value("Donate link") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
50 |
/**/
|
51 |
echo '</td>' . "\n";
|
52 |
/**/
|
includes/menu-pages/menu-pages.css
CHANGED
@@ -177,7 +177,7 @@ div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table
|
|
177 |
margin: 0;
|
178 |
padding: 0;
|
179 |
}
|
180 |
-
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-l a[rel
|
181 |
{
|
182 |
padding-right: 18px;
|
183 |
background: url('<?php echo $i; ?>/brand-xlink.png') no-repeat center right;
|
177 |
margin: 0;
|
178 |
padding: 0;
|
179 |
}
|
180 |
+
div.ws-menu-page > table.ws-menu-page-table > tbody > tr > td.ws-menu-page-table-l a[rel ~= "external"]
|
181 |
{
|
182 |
padding-right: 18px;
|
183 |
background: url('<?php echo $i; ?>/brand-xlink.png') no-repeat center right;
|
includes/menu-pages/menu-pages.js
CHANGED
@@ -83,7 +83,7 @@ jQuery(document).ready (function($)
|
|
83 |
/**/
|
84 |
$('input.ws-menu-page-media-btn').filter (function() /* Only those that have a rel attribute. */
|
85 |
{
|
86 |
-
return
|
87 |
})/**/
|
88 |
.click (function() /* Attach click events to media buttons with send_to_editor(). */
|
89 |
{
|
@@ -241,7 +241,7 @@ jQuery(document).ready (function($)
|
|
241 |
code.val (code.val ().replace (/ name\="p3" value\="(.*?)"/, ' name="p3" value="' + regPeriod + '"'));
|
242 |
code.val (code.val ().replace (/ name\="t3" value\="(.*?)"/, ' name="t3" value="' + regTerm + '"'));
|
243 |
/**/
|
244 |
-
$('div#ws-plugin--s2member-' + button + '-button-prev').html (code.val ().replace (/\<form/, '<form target="_blank"').replace (/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0);
|
245 |
/**/
|
246 |
if (button === 'modification')
|
247 |
alert('Your Modification Button has been generated.\nPlease copy/paste the Shortcode Format into your Login Welcome Page, or wherever you feel it would be most appropriate.');
|
@@ -319,7 +319,7 @@ jQuery(document).ready (function($)
|
|
319 |
/**/
|
320 |
$link.hide (), $loading.show (), $.post (ajaxurl, {action: 's2member_sp_access_link', s2member_sp_access_link: '<?php echo ws_plugin__s2member_esc_sq (wp_create_nonce ("ws-plugin--s2member-sp-access-link")); ?>', s2member_sp_access_link_page: page, s2member_sp_access_link_hours: hours}, function(response)
|
321 |
{
|
322 |
-
$link.show ().html ('<a href="' + response + '" target="_blank" rel="
|
323 |
});
|
324 |
/**/
|
325 |
return false;
|
83 |
/**/
|
84 |
$('input.ws-menu-page-media-btn').filter (function() /* Only those that have a rel attribute. */
|
85 |
{
|
86 |
+
return($(this).attr ('rel')) ? true : false; /* Must have rel targeting an input id. */
|
87 |
})/**/
|
88 |
.click (function() /* Attach click events to media buttons with send_to_editor(). */
|
89 |
{
|
241 |
code.val (code.val ().replace (/ name\="p3" value\="(.*?)"/, ' name="p3" value="' + regPeriod + '"'));
|
242 |
code.val (code.val ().replace (/ name\="t3" value\="(.*?)"/, ' name="t3" value="' + regTerm + '"'));
|
243 |
/**/
|
244 |
+
$('div#ws-plugin--s2member-' + button + '-button-prev').html (code.val ().replace (/\<form/, '<form target="_blank"').replace (/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0); \?\>/g, ''));
|
245 |
/**/
|
246 |
if (button === 'modification')
|
247 |
alert('Your Modification Button has been generated.\nPlease copy/paste the Shortcode Format into your Login Welcome Page, or wherever you feel it would be most appropriate.');
|
319 |
/**/
|
320 |
$link.hide (), $loading.show (), $.post (ajaxurl, {action: 's2member_sp_access_link', s2member_sp_access_link: '<?php echo ws_plugin__s2member_esc_sq (wp_create_nonce ("ws-plugin--s2member-sp-access-link")); ?>', s2member_sp_access_link_page: page, s2member_sp_access_link_hours: hours}, function(response)
|
321 |
{
|
322 |
+
$link.show ().html ('<a href="' + response + '" target="_blank" rel="external">' + response + '</a>'), $loading.hide ();
|
323 |
});
|
324 |
/**/
|
325 |
return false;
|
includes/menu-pages/options.inc.php
CHANGED
@@ -19,7 +19,7 @@ General Options page.
|
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
-
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member General Options</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
@@ -171,7 +171,7 @@ echo '<div class="ws-menu-page-group" title="Login/Registration Design">' . "\n"
|
|
171 |
/**/
|
172 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-login-registration-section">' . "\n";
|
173 |
echo '<h3>Login/Registration Page Customization ( required )</h3>' . "\n";
|
174 |
-
echo '<p>These settings allow you to customize the user interface for your Login / Registration Pages:<br />( <a href="' . wp_login_url () . '" target="_blank" rel="
|
175 |
/**/
|
176 |
echo '<table class="form-table">' . "\n";
|
177 |
echo '<tbody>' . "\n";
|
@@ -418,7 +418,7 @@ echo '<select name="ws_plugin__s2member_allow_subscribers_in" id="ws-plugin--s2m
|
|
418 |
echo '<option value="0"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["allow_subscribers_in"]) ? ' selected="selected"' : '') . '>No ( only Members can access their Login Welcome Page )</option>' . "\n";
|
419 |
echo '<option value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["allow_subscribers_in"]) ? ' selected="selected"' : '') . '>Yes ( if a Free Subscriber is logged in, they can also access this Page )</option>' . "\n";
|
420 |
echo '</select><br />' . "\n";
|
421 |
-
echo 'If you set this to <code>Yes</code>, it means that you\'re giving Free Subscribers the ability to access this special Page that is normally intended only for Members. If you set this to <code>Yes</code>, you\'re also turning on the `Anyone Can Register` option that is built into WordPress®. So what this means, is that you\'re allowing people to signup for free, as a Free Subscriber, who will then have access to the Login Welcome Page, even though they\'re NOT a paid Member. This is only useful if you plan to let Users signup for free ( <a href="' . add_query_arg ("action", "register", wp_login_url ()) . '" target="_blank" rel="
|
422 |
echo '</td>' . "\n";
|
423 |
/**/
|
424 |
echo '</tr>' . "\n";
|
@@ -994,13 +994,13 @@ echo '<div class="ws-menu-page-group" title="Member Profile Modifications">' . "
|
|
994 |
/**/
|
995 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-profile-modifications-section">' . "\n";
|
996 |
echo '<h3>Giving Members The Ability To Modify Their Profile</h3>' . "\n";
|
997 |
-
echo '<p>s2Member can be configured to redirect Members away from the <a href="profile.php" target="_blank" rel="
|
998 |
-
echo '<p>So instead of using this default Profile Editing Panel; s2Member creates an added layer of functionality, on top of WordPress®. It does this by providing you ( as the site owner ), with the ability to send your Members to a <a href="' . get_bloginfo ("url") . '/?s2member_profile=1" target="_blank" rel="
|
999 |
/**/
|
1000 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
1001 |
/**/
|
1002 |
echo '<p>Stand-Alone page where Members can modify their Profile:<br />' . "\n";
|
1003 |
-
echo '<code><a href="' . get_bloginfo ("url") . '/?s2member_profile=1" target="_blank" rel="
|
1004 |
/**/
|
1005 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
1006 |
/**/
|
@@ -1084,13 +1084,13 @@ echo '</td>' . "\n";
|
|
1084 |
/**/
|
1085 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
1086 |
/**/
|
1087 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
1088 |
/**/
|
1089 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
1090 |
/**/
|
1091 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
1092 |
/**/
|
1093 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
1094 |
/**/
|
1095 |
echo '</td>' . "\n";
|
1096 |
/**/
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
+
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member General Options</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
171 |
/**/
|
172 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-login-registration-section">' . "\n";
|
173 |
echo '<h3>Login/Registration Page Customization ( required )</h3>' . "\n";
|
174 |
+
echo '<p>These settings allow you to customize the user interface for your Login / Registration Pages:<br />( <a href="' . wp_login_url () . '" target="_blank" rel="external">' . esc_html (wp_login_url ()) . '</a> )</p>' . "\n";
|
175 |
/**/
|
176 |
echo '<table class="form-table">' . "\n";
|
177 |
echo '<tbody>' . "\n";
|
418 |
echo '<option value="0"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["allow_subscribers_in"]) ? ' selected="selected"' : '') . '>No ( only Members can access their Login Welcome Page )</option>' . "\n";
|
419 |
echo '<option value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["allow_subscribers_in"]) ? ' selected="selected"' : '') . '>Yes ( if a Free Subscriber is logged in, they can also access this Page )</option>' . "\n";
|
420 |
echo '</select><br />' . "\n";
|
421 |
+
echo 'If you set this to <code>Yes</code>, it means that you\'re giving Free Subscribers the ability to access this special Page that is normally intended only for Members. If you set this to <code>Yes</code>, you\'re also turning on the `Anyone Can Register` option that is built into WordPress®. So what this means, is that you\'re allowing people to signup for free, as a Free Subscriber, who will then have access to the Login Welcome Page, even though they\'re NOT a paid Member. This is only useful if you plan to let Users signup for free ( <a href="' . add_query_arg ("action", "register", wp_login_url ()) . '" target="_blank" rel="external">' . esc_html (add_query_arg ("action", "register", wp_login_url ())) . '</a> ). See <code>s2Member -> API Scripting -> Advanced Conditionals</code>, for details on how to customize your Login Welcome Page with Conditionals; based on Membership Level.' . "\n";
|
422 |
echo '</td>' . "\n";
|
423 |
/**/
|
424 |
echo '</tr>' . "\n";
|
994 |
/**/
|
995 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-profile-modifications-section">' . "\n";
|
996 |
echo '<h3>Giving Members The Ability To Modify Their Profile</h3>' . "\n";
|
997 |
+
echo '<p>s2Member can be configured to redirect Members away from the <a href="profile.php" target="_blank" rel="external">default Profile Editing Panel</a> that is built into WordPress®. When/if a Member attempts to access the default Profile Editing Panel, they\'ll instead, be redirected to the Login Welcome Page that you\'ve configured through s2Member. <strong>Why would I redirect?</strong> Unless you\'ve made some drastic modifications to your WordPress® installation, the default Profile Editing Panel that ships with WordPress®, is NOT really suited for public access, even by a Member.</p>' . "\n";
|
998 |
+
echo '<p>So instead of using this default Profile Editing Panel; s2Member creates an added layer of functionality, on top of WordPress®. It does this by providing you ( as the site owner ), with the ability to send your Members to a <a href="' . get_bloginfo ("url") . '/?s2member_profile=1" target="_blank" rel="external">special Stand-Alone page</a>, where your Members can modify their entire Profile, including all Custom Fields, and their Password. This special Stand-Alone Editing Panel, has been designed ( with a bare-bones format ), intentionally. This makes it possible for you to <a href="#" onclick="if(!window.open(\'' . get_bloginfo ("url") . '/?s2member_profile=1\', \'_popup\', \'height=350,width=400,left=100,screenX=100,top=100,screenY=100, location=0,menubar=0,toolbar=0,status=0,scrollbars=1,resizable=1\')) alert(\'Please disable popup blockers and try again!\'); return false;" rel="external">open it up in a popup window</a>, or embed it into your Login Welcome Page using an IFRAME. Code samples are provided below.</p>' . "\n";
|
999 |
/**/
|
1000 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
1001 |
/**/
|
1002 |
echo '<p>Stand-Alone page where Members can modify their Profile:<br />' . "\n";
|
1003 |
+
echo '<code><a href="' . get_bloginfo ("url") . '/?s2member_profile=1" target="_blank" rel="external">' . get_bloginfo ("url") . '/?s2member_profile=1</a></code></p>' . "\n";
|
1004 |
/**/
|
1005 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
1006 |
/**/
|
1084 |
/**/
|
1085 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
1086 |
/**/
|
1087 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
1088 |
/**/
|
1089 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
1090 |
/**/
|
1091 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
1092 |
/**/
|
1093 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
1094 |
/**/
|
1095 |
echo '</td>' . "\n";
|
1096 |
/**/
|
includes/menu-pages/paypal-ops.inc.php
CHANGED
@@ -19,7 +19,7 @@ PayPal® Options page.
|
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
-
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member PayPal® Options</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
@@ -36,7 +36,7 @@ echo '<div class="ws-menu-page-group" title="PayPal® Account Details">' . "\n";
|
|
36 |
/**/
|
37 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-paypal-email-section">' . "\n";
|
38 |
echo '<h3>PayPal® EMail Address ( required, please customize this )</h3>' . "\n";
|
39 |
-
echo '<p>This plugin works in conjunction with <a href="https://www.paypal.com/us/mrb/pal=K8S5Y97AKWYY8" target="_blank" rel="
|
40 |
/**/
|
41 |
echo '<table class="form-table">' . "\n";
|
42 |
echo '<tbody>' . "\n";
|
@@ -70,7 +70,7 @@ echo '<tr>' . "\n";
|
|
70 |
/**/
|
71 |
echo '<td>' . "\n";
|
72 |
echo '<input type="radio" name="ws_plugin__s2member_paypal_sandbox" id="ws-plugin--s2member-paypal-sandbox-0" value="0"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? ' checked="checked"' : '') . ' /> <label for="ws-plugin--s2member-paypal-sandbox-0">No</label> <input type="radio" name="ws_plugin__s2member_paypal_sandbox" id="ws-plugin--s2member-paypal-sandbox-1" value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? ' checked="checked"' : '') . ' /> <label for="ws-plugin--s2member-paypal-sandbox-1">Yes, enable support for Sandbox testing.</label><br />' . "\n";
|
73 |
-
echo '<em>Only enable this if you\'ve provided a Sandbox email address above.<br />This puts the IPN, PDT and Button Generator into Sandbox mode.<br />See: <a href="https://developer.paypal.com/" target="_blank" rel="
|
74 |
echo '</td>' . "\n";
|
75 |
/**/
|
76 |
echo '</tr>' . "\n";
|
@@ -106,8 +106,8 @@ echo '<h3>PayPal® IPN / Instant Payment Notifications ( required, please enable
|
|
106 |
echo '<p>Log into your PayPal® account and navigate to this section:<br /><code>Account Profile -> Instant Payment Notification Preferences</code></p>' . "\n";
|
107 |
echo '<p>Edit your IPN settings & turn IPN Notifications: <strong><code>On</code></strong></p>' . "\n";
|
108 |
echo '<p>You\'ll need your IPN URL, which is:<br /><code>' . get_bloginfo ("url") . '/?s2member_paypal_notify=1</code></p>' . "\n";
|
109 |
-
echo '<p><strong
|
110 |
-
echo '<p><strong
|
111 |
echo '</div>' . "\n";
|
112 |
/**/
|
113 |
echo '</div>' . "\n";
|
@@ -120,7 +120,7 @@ echo '<p>Log into your PayPal® account and navigate to this section:<br /><code
|
|
120 |
echo '<p>Turn the Auto-Return feature: <strong><code>On</code></strong></p>' . "\n";
|
121 |
echo '<p>You\'ll need your Auto-Return URL, which is:<br /><code>' . get_bloginfo ("url") . '/?s2member_paypal_return=1</code></p>' . "\n";
|
122 |
echo '<p>You MUST also enable PDT ( Payment Data Transfer ): <strong><code>On</code></strong><br /><em>You\'ll be issued an Identity Token that you MUST enter below.</em></p>' . "\n";
|
123 |
-
echo '<p><strong
|
124 |
/**/
|
125 |
echo '<table class="form-table">' . "\n";
|
126 |
echo '<tbody>' . "\n";
|
@@ -330,13 +330,13 @@ echo '</td>' . "\n";
|
|
330 |
/**/
|
331 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
332 |
/**/
|
333 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
334 |
/**/
|
335 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
336 |
/**/
|
337 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
338 |
/**/
|
339 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
340 |
/**/
|
341 |
echo '</td>' . "\n";
|
342 |
/**/
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
+
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member PayPal® Options</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
36 |
/**/
|
37 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-paypal-email-section">' . "\n";
|
38 |
echo '<h3>PayPal® EMail Address ( required, please customize this )</h3>' . "\n";
|
39 |
+
echo '<p>This plugin works in conjunction with <a href="https://www.paypal.com/us/mrb/pal=K8S5Y97AKWYY8" target="_blank" rel="external">PayPal® Website Payments Standard</a>, for businesses. You do NOT need a PayPal® Pro account. You just need to upgrade your Personal PayPal® account to a Business status, which is free. A PayPal® account can be <a href="http://pages.ebay.com/help/buy/questions/upgrade-paypal-account.html" target="_blank" rel="external">upgraded</a> from a Personal account to a Business account, simply by going to the `Profile` button under the `My Account` tab, selecting the `Personal Business Information` button, and then clicking the `Upgrade Your Account` button.</p>' . "\n";
|
40 |
/**/
|
41 |
echo '<table class="form-table">' . "\n";
|
42 |
echo '<tbody>' . "\n";
|
70 |
/**/
|
71 |
echo '<td>' . "\n";
|
72 |
echo '<input type="radio" name="ws_plugin__s2member_paypal_sandbox" id="ws-plugin--s2member-paypal-sandbox-0" value="0"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? ' checked="checked"' : '') . ' /> <label for="ws-plugin--s2member-paypal-sandbox-0">No</label> <input type="radio" name="ws_plugin__s2member_paypal_sandbox" id="ws-plugin--s2member-paypal-sandbox-1" value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? ' checked="checked"' : '') . ' /> <label for="ws-plugin--s2member-paypal-sandbox-1">Yes, enable support for Sandbox testing.</label><br />' . "\n";
|
73 |
+
echo '<em>Only enable this if you\'ve provided a Sandbox email address above.<br />This puts the IPN, PDT and Button Generator into Sandbox mode.<br />See: <a href="https://developer.paypal.com/" target="_blank" rel="external">https://developer.paypal.com</a></em>' . "\n";
|
74 |
echo '</td>' . "\n";
|
75 |
/**/
|
76 |
echo '</tr>' . "\n";
|
106 |
echo '<p>Log into your PayPal® account and navigate to this section:<br /><code>Account Profile -> Instant Payment Notification Preferences</code></p>' . "\n";
|
107 |
echo '<p>Edit your IPN settings & turn IPN Notifications: <strong><code>On</code></strong></p>' . "\n";
|
108 |
echo '<p>You\'ll need your IPN URL, which is:<br /><code>' . get_bloginfo ("url") . '/?s2member_paypal_notify=1</code></p>' . "\n";
|
109 |
+
echo '<p><em><strong>*Quick tip*</strong> In addition to the default IPN Settings inside your PayPal® account, the IPN URL is also set on a per-transaction basis by the special PayPal® Button Code that s2Member provides you with. In other words, if you have multiple sites operating on one PayPal® account, that\'s OK. s2Member dynamically sets the IPN URL for each transaction. The result is that the IPN URL configured from within your PayPal® account, becomes the default, which is then overwritten on a per transaction basis. In fact, PayPal® recently updated their system to support IPN URL preservation. One PayPal® account can handle multiple sites, all using different IPN URLs.</em></p>' . "\n";
|
110 |
+
echo '<p><em><strong>*More information*</strong> You\'ll be happy to know that s2Member handles cancellations, expirations, failed payments ( more than 2 in a row ), terminations ( e.g. refunds & chargebacks ) for you automatically. If you log into your PayPal® account and cancel a Member\'s subscription, or, if the Member logs into their PayPal® account and cancels their own subscription, s2Member will be notified of these important changes and react accordingly through the PayPal® IPN service that runs silently behind-the-scene. The PayPal® IPN service will notify s2Member whenever a Member\'s payments have been failing ( more than 2 times in a row ), and/or whenever a Member\'s subscription has expired for any reason. Even refunds & chargeback reversals are supported through the IPN service. If you issue a refund to an unhappy Customer through PayPal®, s2Member will be notified, and the account for that Customer will either be demoted to a Free Subscriber, or deleted automatically ( based on your configuration ). The communication from PayPal® -> s2Member is seamless.</em></p>' . "\n";
|
111 |
echo '</div>' . "\n";
|
112 |
/**/
|
113 |
echo '</div>' . "\n";
|
120 |
echo '<p>Turn the Auto-Return feature: <strong><code>On</code></strong></p>' . "\n";
|
121 |
echo '<p>You\'ll need your Auto-Return URL, which is:<br /><code>' . get_bloginfo ("url") . '/?s2member_paypal_return=1</code></p>' . "\n";
|
122 |
echo '<p>You MUST also enable PDT ( Payment Data Transfer ): <strong><code>On</code></strong><br /><em>You\'ll be issued an Identity Token that you MUST enter below.</em></p>' . "\n";
|
123 |
+
echo '<p><em><strong>*Quick tip*</strong> In addition to your default PayPal® account configuration, the Auto-Return URL is also set on a per-transaction basis from within the special PayPal® Button Code that s2Member provides you with. In other words, if you have multiple sites operating on one PayPal® account, that\'s OK. s2Member dynamically sets the Auto-Return URL for each transaction. The result is that the Auto-Return URL configured from within your PayPal® account, becomes the default, which is then overwritten on a per transaction basis.</em></p>' . "\n";
|
124 |
/**/
|
125 |
echo '<table class="form-table">' . "\n";
|
126 |
echo '<tbody>' . "\n";
|
330 |
/**/
|
331 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
332 |
/**/
|
333 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
334 |
/**/
|
335 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
336 |
/**/
|
337 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
338 |
/**/
|
339 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
340 |
/**/
|
341 |
echo '</td>' . "\n";
|
342 |
/**/
|
includes/menu-pages/scripting.inc.php
CHANGED
@@ -19,7 +19,7 @@ API Scripting page.
|
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
-
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member API / Scripting</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
@@ -41,7 +41,7 @@ echo '<div class="ws-menu-page-group" title="Using Advanced Conditionals">' . "\
|
|
41 |
/**/
|
42 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-api-advanced-way-section">' . "\n";
|
43 |
echo '<h3>The Advanced Way ( some PHP scripting required )</h3>' . "\n";
|
44 |
-
echo '<p>In an effort to give you even more control over access restrictions, s2Member makes some PHP functions, and also some PHP Constants, available to you from within WordPress®. In this section, we\'ll demonstrate two functions: <strong><code>is_user_logged_in()</code></strong> & <strong><code>current_user_can()</code></strong>. To make use of these functions, please follow our PHP code samples below. Using PHP, you can control access to certain portions of your content, and even build Advanced Conditionals within your content, based on a Members\'s Level. In order to use PHP scripting inside your Posts/Pages, you\'ll need to install this handy plugin ( <a href="http://wordpress.org/extend/plugins/exec-php/" target="_blank" rel="
|
45 |
echo '<p><strong>Example #1:</strong> Full access for anyone that is logged in.</strong></p>' . "\n";
|
46 |
echo '<p>' . highlight_string (file_get_contents (dirname (__FILE__) . "/code-samples/is-user-logged-in.php"), true) . '</p>' . "\n";
|
47 |
echo '<p><strong>Example #2:</strong> Full access for any Member with a Level >= 1.</strong></p>' . "\n";
|
@@ -77,7 +77,7 @@ echo '<p><strong>Custom Capabilities:</strong> ( ebooks,reports,tips ):</p>' . "
|
|
77 |
echo '<p>' . highlight_string (file_get_contents (dirname (__FILE__) . "/code-samples/current-user-can-ccaps-2.php"), true) . '</p>' . "\n";
|
78 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
79 |
/**/
|
80 |
-
echo '<p>The important thing to realize, is that Custom Capabilities, are just that. They\'re custom. s2Member only deals with the default Capabilities that it uses. If you start using Custom Capabilities, you MUST use Advanced Conditionals ( <em>i.e. the <code>current_user_can()</code> function</em> ) to test for them. Either in your theme files, or in Posts/Pages using the <a href="http://wordpress.org/extend/plugins/exec-php/" target="_blank" rel="
|
81 |
echo '</div>' . "\n";
|
82 |
/**/
|
83 |
echo '</div>' . "\n";
|
@@ -86,7 +86,7 @@ echo '<div class="ws-menu-page-group" title="s2Member Content Dripping">' . "\n"
|
|
86 |
/**/
|
87 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-api-advanced-dripping-section">' . "\n";
|
88 |
echo '<h3>Dripping Content ( some PHP scripting required )</h3>' . "\n";
|
89 |
-
echo '<p>Content Dripping is the gradual, pre-scheduled release of premium website content to paying Members. This has become increasingly popular, because it allows older Members; those who have paid you more, due to recurring charges; to acquire access to more content progressively; based on their original registration date. It also gives you ( as the site owner ), the ability to launch multiple membership site portals, operating on autopilot, without any direct day-to-day involvement in a content release process. This requires some PHP scripting. In order to use PHP scripting inside your Posts/Pages, you\'ll need to install this handy plugin ( <a href="http://wordpress.org/extend/plugins/exec-php/" target="_blank" rel="
|
90 |
echo '<p><strong>To drip content, use <code>S2MEMBER_CURRENT_USER_REGISTRATION_DAYS</code>:</strong></p>' . "\n";
|
91 |
echo '<p>' . highlight_string (file_get_contents (dirname (__FILE__) . "/code-samples/current-user-registration-days-dripping.php"), true) . '</p>' . "\n";
|
92 |
echo '</div>' . "\n";
|
@@ -97,13 +97,13 @@ echo '<div class="ws-menu-page-group" title="Member Profile Modifications">' . "
|
|
97 |
/**/
|
98 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-profile-modifications-section">' . "\n";
|
99 |
echo '<h3>Giving Members The Ability To Modify Their Profile</h3>' . "\n";
|
100 |
-
echo '<p>s2Member can be configured to redirect Members away from the <a href="profile.php" target="_blank" rel="
|
101 |
-
echo '<p>So instead of using this default Profile Editing Panel; s2Member creates an added layer of functionality, on top of WordPress®. It does this by providing you ( as the site owner ), with the ability to send your Members to a <a href="' . get_bloginfo ("url") . '/?s2member_profile=1" target="_blank" rel="
|
102 |
/**/
|
103 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
104 |
/**/
|
105 |
echo '<p><strong>S2MEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL</strong> = URL to a Stand-Alone Profile Editing Panel.</p>' . "\n";
|
106 |
-
echo '<p>Copy & Paste one of the code snippets below, into your Login Welcome Page, so Members can click a link to Edit their Profile. This requires some PHP scripting. In order to use PHP scripting inside your Posts/Pages, you\'ll need to install this handy plugin ( <a href="http://wordpress.org/extend/plugins/exec-php/" target="_blank" rel="
|
107 |
/**/
|
108 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
109 |
/**/
|
@@ -128,7 +128,7 @@ echo '<p>For example, you might use `S2MEMBER_CURRENT_USER_ACCESS_LABEL` to disp
|
|
128 |
/**/
|
129 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
130 |
/**/
|
131 |
-
echo '<p>Before you read any further, you should install this handy plugin: <a href="http://wordpress.org/extend/plugins/exec-php/" target="_blank" rel="
|
132 |
echo 'You\'ll need to have this plugin installed to use PHP code in Posts/Pages.</p>' . "\n";
|
133 |
/**/
|
134 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
@@ -407,13 +407,13 @@ echo '</td>' . "\n";
|
|
407 |
/**/
|
408 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
409 |
/**/
|
410 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
411 |
/**/
|
412 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
413 |
/**/
|
414 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
415 |
/**/
|
416 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
417 |
/**/
|
418 |
echo '</td>' . "\n";
|
419 |
/**/
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
+
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member API / Scripting</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
41 |
/**/
|
42 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-api-advanced-way-section">' . "\n";
|
43 |
echo '<h3>The Advanced Way ( some PHP scripting required )</h3>' . "\n";
|
44 |
+
echo '<p>In an effort to give you even more control over access restrictions, s2Member makes some PHP functions, and also some PHP Constants, available to you from within WordPress®. In this section, we\'ll demonstrate two functions: <strong><code>is_user_logged_in()</code></strong> & <strong><code>current_user_can()</code></strong>. To make use of these functions, please follow our PHP code samples below. Using PHP, you can control access to certain portions of your content, and even build Advanced Conditionals within your content, based on a Members\'s Level. In order to use PHP scripting inside your Posts/Pages, you\'ll need to install this handy plugin ( <a href="http://wordpress.org/extend/plugins/exec-php/" target="_blank" rel="external">Exec-PHP</a> ).</p>' . "\n";
|
45 |
echo '<p><strong>Example #1:</strong> Full access for anyone that is logged in.</strong></p>' . "\n";
|
46 |
echo '<p>' . highlight_string (file_get_contents (dirname (__FILE__) . "/code-samples/is-user-logged-in.php"), true) . '</p>' . "\n";
|
47 |
echo '<p><strong>Example #2:</strong> Full access for any Member with a Level >= 1.</strong></p>' . "\n";
|
77 |
echo '<p>' . highlight_string (file_get_contents (dirname (__FILE__) . "/code-samples/current-user-can-ccaps-2.php"), true) . '</p>' . "\n";
|
78 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
79 |
/**/
|
80 |
+
echo '<p>The important thing to realize, is that Custom Capabilities, are just that. They\'re custom. s2Member only deals with the default Capabilities that it uses. If you start using Custom Capabilities, you MUST use Advanced Conditionals ( <em>i.e. the <code>current_user_can()</code> function</em> ) to test for them. Either in your theme files, or in Posts/Pages using the <a href="http://wordpress.org/extend/plugins/exec-php/" target="_blank" rel="external">Exec-PHP</a> plugin.</p>' . "\n";
|
81 |
echo '</div>' . "\n";
|
82 |
/**/
|
83 |
echo '</div>' . "\n";
|
86 |
/**/
|
87 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-api-advanced-dripping-section">' . "\n";
|
88 |
echo '<h3>Dripping Content ( some PHP scripting required )</h3>' . "\n";
|
89 |
+
echo '<p>Content Dripping is the gradual, pre-scheduled release of premium website content to paying Members. This has become increasingly popular, because it allows older Members; those who have paid you more, due to recurring charges; to acquire access to more content progressively; based on their original registration date. It also gives you ( as the site owner ), the ability to launch multiple membership site portals, operating on autopilot, without any direct day-to-day involvement in a content release process. This requires some PHP scripting. In order to use PHP scripting inside your Posts/Pages, you\'ll need to install this handy plugin ( <a href="http://wordpress.org/extend/plugins/exec-php/" target="_blank" rel="external">Exec-PHP</a> ).</p>' . "\n";
|
90 |
echo '<p><strong>To drip content, use <code>S2MEMBER_CURRENT_USER_REGISTRATION_DAYS</code>:</strong></p>' . "\n";
|
91 |
echo '<p>' . highlight_string (file_get_contents (dirname (__FILE__) . "/code-samples/current-user-registration-days-dripping.php"), true) . '</p>' . "\n";
|
92 |
echo '</div>' . "\n";
|
97 |
/**/
|
98 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-profile-modifications-section">' . "\n";
|
99 |
echo '<h3>Giving Members The Ability To Modify Their Profile</h3>' . "\n";
|
100 |
+
echo '<p>s2Member can be configured to redirect Members away from the <a href="profile.php" target="_blank" rel="external">default Profile Editing Panel</a> that is built into WordPress®. <em>See: <code>s2Member -> General Options -> Profile Modifications</code>.</em> When/if a Member attempts to access the default Profile Editing Panel, they\'ll instead, be redirected to the Login Welcome Page that you\'ve configured through s2Member. <strong>Why would I redirect?</strong> Unless you\'ve made some drastic modifications to your WordPress® installation, the default Profile Editing Panel that ships with WordPress®, is NOT really suited for public access, even by a Member.</p>' . "\n";
|
101 |
+
echo '<p>So instead of using this default Profile Editing Panel; s2Member creates an added layer of functionality, on top of WordPress®. It does this by providing you ( as the site owner ), with the ability to send your Members to a <a href="' . get_bloginfo ("url") . '/?s2member_profile=1" target="_blank" rel="external">special Stand-Alone page</a>, where your Members can modify their entire Profile, including all Custom Fields, and their Password. This special Stand-Alone Editing Panel, has been designed ( with a bare-bones format ), intentionally. This makes it possible for you to <a href="#" onclick="if(!window.open(\'' . get_bloginfo ("url") . '/?s2member_profile=1\', \'_popup\', \'height=350,width=400,left=100,screenX=100,top=100,screenY=100, location=0,menubar=0,toolbar=0,status=0,scrollbars=1,resizable=1\')) alert(\'Please disable popup blockers and try again!\'); return false;" rel="external">open it up in a popup window</a>, or embed it into your Login Welcome Page using an IFRAME. Code samples are provided below.</p>' . "\n";
|
102 |
/**/
|
103 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
104 |
/**/
|
105 |
echo '<p><strong>S2MEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL</strong> = URL to a Stand-Alone Profile Editing Panel.</p>' . "\n";
|
106 |
+
echo '<p>Copy & Paste one of the code snippets below, into your Login Welcome Page, so Members can click a link to Edit their Profile. This requires some PHP scripting. In order to use PHP scripting inside your Posts/Pages, you\'ll need to install this handy plugin ( <a href="http://wordpress.org/extend/plugins/exec-php/" target="_blank" rel="external">Exec-PHP</a> ).</p>' . "\n";
|
107 |
/**/
|
108 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
109 |
/**/
|
128 |
/**/
|
129 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
130 |
/**/
|
131 |
+
echo '<p>Before you read any further, you should install this handy plugin: <a href="http://wordpress.org/extend/plugins/exec-php/" target="_blank" rel="external">Exec-PHP</a>.<br />' . "\n";
|
132 |
echo 'You\'ll need to have this plugin installed to use PHP code in Posts/Pages.</p>' . "\n";
|
133 |
/**/
|
134 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
407 |
/**/
|
408 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
409 |
/**/
|
410 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
411 |
/**/
|
412 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
413 |
/**/
|
414 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
415 |
/**/
|
416 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
417 |
/**/
|
418 |
echo '</td>' . "\n";
|
419 |
/**/
|
includes/menu-pages/start.inc.php
CHANGED
@@ -19,7 +19,7 @@ Flow Of Events page.
|
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
-
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member / Quick Start Guide</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
@@ -129,13 +129,13 @@ echo '</td>' . "\n";
|
|
129 |
/**/
|
130 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
131 |
/**/
|
132 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
133 |
/**/
|
134 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
135 |
/**/
|
136 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
137 |
/**/
|
138 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
139 |
/**/
|
140 |
echo '</td>' . "\n";
|
141 |
/**/
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
+
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member / Quick Start Guide</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
129 |
/**/
|
130 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
131 |
/**/
|
132 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
133 |
/**/
|
134 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
135 |
/**/
|
136 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
137 |
/**/
|
138 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
139 |
/**/
|
140 |
echo '</td>' . "\n";
|
141 |
/**/
|
includes/menu-pages/trk-ops.inc.php
CHANGED
@@ -19,7 +19,7 @@ API Tracking page.
|
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
-
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member API / Tracking</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
@@ -88,8 +88,8 @@ echo '<div class="ws-menu-page-group" title="Integrating iDevAffiliate® Softwar
|
|
88 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-idev-section">' . "\n";
|
89 |
echo '<h3>Integrating iDevAffiliate® ( affiliate program management )</h3>' . "\n";
|
90 |
echo '<a href="http://www.idevdirect.com/14200.html" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/idev-logo.gif" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." /></a>' . "\n";
|
91 |
-
echo '<p>Adding affiliate tracking software to your site is one of the most effective ways to achieve more sales, more traffic, and more search engine ranking. <a href="http://www.idevdirect.com/14200.html" target="_blank" rel="
|
92 |
-
echo '<p>If you choose to <a href="http://www.idevdirect.com/14200.html" target="_blank" rel="
|
93 |
echo '<p>' . highlight_string (file_get_contents (dirname (__FILE__) . "/code-samples/idev-signup-tracking-code.php"), true) . '</p>' . "\n";
|
94 |
echo '<p>Your <code>profile</code> ID will be assigned by iDevAffiliate®. Be sure to replace <code>profile=123</code> with your own profile ID.</p>' . "\n";
|
95 |
echo '<p><em><strong>*Tip*</strong> iDevAffiliate® also provides an alternative method, using a 3rd-party call. The alternative 3rd-party call, could be used with <code>s2Member -> API Notifications.</code> A 3rd-party call, is essentially an HTTP connection that runs silently behind-the-scene, as opposed to being loaded in a browser. It\'s a bit more powerful, but also more advanced.</em></p>' . "\n";
|
@@ -102,8 +102,8 @@ echo '<div class="ws-menu-page-group" title="Integrating ShareASale® Tracking">
|
|
102 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-shareasale-section">' . "\n";
|
103 |
echo '<h3>Integrating ShareASale® ( affiliate program management )</h3>' . "\n";
|
104 |
echo '<a href="http://www.shareasale.com/merchantsignup.cfm" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/sas-logo.png" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." /></a>' . "\n";
|
105 |
-
echo '<p>Established in 2000, <a href="http://www.shareasale.com/merchantsignup.cfm" target="_blank" rel="
|
106 |
-
echo '<p>If you <a href="http://www.shareasale.com/merchantsignup.cfm" target="_blank" rel="
|
107 |
echo '<p>' . highlight_string (file_get_contents (dirname (__FILE__) . "/code-samples/sas-signup-tracking-code.php"), true) . '</p>' . "\n";
|
108 |
echo '<p>Your <code>merchantID</code> will be assigned by ShareASale®. Be sure to replace <code>merchantID=123</code> with the one they assign you.</p>' . "\n";
|
109 |
echo '<p><em><strong>*Tip*</strong> ShareASale® also provides an alternative method, using a 3rd-party call. The alternative 3rd-party call, could be used with <code>s2Member -> API Notifications.</code> A 3rd-party call, is essentially an HTTP connection that runs silently behind-the-scene, as opposed to being loaded in a browser. It\'s a bit more powerful, but also more advanced.</em></p>' . "\n";
|
@@ -139,13 +139,13 @@ echo '</td>' . "\n";
|
|
139 |
/**/
|
140 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
141 |
/**/
|
142 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
143 |
/**/
|
144 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
145 |
/**/
|
146 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
147 |
/**/
|
148 |
-
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
149 |
/**/
|
150 |
echo '</td>' . "\n";
|
151 |
/**/
|
19 |
echo '<div class="wrap ws-menu-page">' . "\n";
|
20 |
/**/
|
21 |
echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
|
22 |
+
echo '<h2><div>Developed by <a href="' . ws_plugin__s2member_parse_readme_value ("Plugin URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-light.png" alt="." /></a></div>s2Member API / Tracking</h2>' . "\n";
|
23 |
/**/
|
24 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
25 |
/**/
|
88 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-idev-section">' . "\n";
|
89 |
echo '<h3>Integrating iDevAffiliate® ( affiliate program management )</h3>' . "\n";
|
90 |
echo '<a href="http://www.idevdirect.com/14200.html" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/idev-logo.gif" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." /></a>' . "\n";
|
91 |
+
echo '<p>Adding affiliate tracking software to your site is one of the most effective ways to achieve more sales, more traffic, and more search engine ranking. <a href="http://www.idevdirect.com/14200.html" target="_blank" rel="external">iDevAffiliate®</a> ( an affiliate management portal ), installs in just minutes, and can be integrated seamlessly with s2Member. We recommend <a href="http://www.idevdirect.com/14200.html" target="_blank" rel="external">iDevAffiliate® Standard</a> ( $99 ) because of its proven track record, and its ability to integrate with s2Member using a variety of techniques. The most popular being a Hidden Image Tag.</p>' . "\n";
|
92 |
+
echo '<p>If you choose to <a href="http://www.idevdirect.com/14200.html" target="_blank" rel="external">install iDevAffiliate®</a>, you will need to configure your <code>iDevAffiliate® -> Shopping Cart Integration</code>. Please choose <code>Generic Tracking Pixel</code>. Then, grab your Hidden Image Tag, and pop the code provided by iDevAffiliate® into the Custom Tracking field at the top of this page. You MUST also add replacement codes to your Hidden Image Tag. To save you some trouble, we\'ve provided an example below. These are the two variables that iDevAffiliate® needs.</p>' . "\n";
|
93 |
echo '<p>' . highlight_string (file_get_contents (dirname (__FILE__) . "/code-samples/idev-signup-tracking-code.php"), true) . '</p>' . "\n";
|
94 |
echo '<p>Your <code>profile</code> ID will be assigned by iDevAffiliate®. Be sure to replace <code>profile=123</code> with your own profile ID.</p>' . "\n";
|
95 |
echo '<p><em><strong>*Tip*</strong> iDevAffiliate® also provides an alternative method, using a 3rd-party call. The alternative 3rd-party call, could be used with <code>s2Member -> API Notifications.</code> A 3rd-party call, is essentially an HTTP connection that runs silently behind-the-scene, as opposed to being loaded in a browser. It\'s a bit more powerful, but also more advanced.</em></p>' . "\n";
|
102 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-shareasale-section">' . "\n";
|
103 |
echo '<h3>Integrating ShareASale® ( affiliate program management )</h3>' . "\n";
|
104 |
echo '<a href="http://www.shareasale.com/merchantsignup.cfm" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/sas-logo.png" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." /></a>' . "\n";
|
105 |
+
echo '<p>Established in 2000, <a href="http://www.shareasale.com/merchantsignup.cfm" target="_blank" rel="external">ShareASale®</a> provides award winning technology and service; which will enable you to connect with a network of established affiliates, as well as recruit new ones. Joining ShareASale®, maximizes your ability to reach the greatest number of affiliates, with the least amount of work. At ShareASale®, you\'ll have access to an existing affiliate-base. You place your site on the market, and let their existing affiliates promote your products/services.</p>' . "\n";
|
106 |
+
echo '<p>If you <a href="http://www.shareasale.com/merchantsignup.cfm" target="_blank" rel="external">become a Merchant at ShareASale®</a>, you will need to configure your <code>ShareASale® -> Sale Tracking</code>. Grab your Hidden Image Tag, and pop the code provided by ShareASale® into the Custom Tracking field at the top of this page. You MUST also add replacement codes to your Hidden Image Tag. To save you some trouble, we\'ve provided an example below. These are the two variables that ShareASale® needs.</p>' . "\n";
|
107 |
echo '<p>' . highlight_string (file_get_contents (dirname (__FILE__) . "/code-samples/sas-signup-tracking-code.php"), true) . '</p>' . "\n";
|
108 |
echo '<p>Your <code>merchantID</code> will be assigned by ShareASale®. Be sure to replace <code>merchantID=123</code> with the one they assign you.</p>' . "\n";
|
109 |
echo '<p><em><strong>*Tip*</strong> ShareASale® also provides an alternative method, using a 3rd-party call. The alternative 3rd-party call, could be used with <code>s2Member -> API Notifications.</code> A 3rd-party call, is essentially an HTTP connection that runs silently behind-the-scene, as opposed to being loaded in a browser. It\'s a bit more powerful, but also more advanced.</em></p>' . "\n";
|
139 |
/**/
|
140 |
echo '<td class="ws-menu-page-table-r">' . "\n";
|
141 |
/**/
|
142 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["installation"]) ? '<div class="ws-menu-page-installation"><a href="' . ws_plugin__s2member_parse_readme_value ("Professional Installation URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-installation.png" alt="." title="Contact PriMoThemes!" /></a></div>' . "\n" : '';
|
143 |
/**/
|
144 |
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["tools"]) ? '<div class="ws-menu-page-tools"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-tools.png" alt="." /></div>' . "\n" : '';
|
145 |
/**/
|
146 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["support"]) ? '<div class="ws-menu-page-support"><a href="' . ws_plugin__s2member_parse_readme_value ("Forum URI") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-support.png" alt="." /></a></div>' . "\n" : '';
|
147 |
/**/
|
148 |
+
echo ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu-r"]["donations"]) ? '<div class="ws-menu-page-donations"><a href="' . ws_plugin__s2member_parse_readme_value ("Donate link") . '" target="_blank"><img src="' . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . '/images/brand-donations.jpg" alt="." /></a></div>' . "\n" : '';
|
149 |
/**/
|
150 |
echo '</td>' . "\n";
|
151 |
/**/
|
readme.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
=== s2Member ( Membership w/ PayPal® Integration ) also works w/ BuddyPress ===
|
2 |
|
3 |
-
Version: 2.9
|
4 |
-
Stable tag: 2.9
|
5 |
Framework: WS-P-2.1
|
6 |
|
7 |
WordPress Compatible: yes
|
@@ -78,8 +78,8 @@ s2Member supports up to 4 Primary Membership Levels, and unlimited Custom Capabi
|
|
78 |
= Does s2Member utilize the PayPal® IPN system? =
|
79 |
Yes, s2Member supports automation of account activation, welcome emails, confirmations, renewals, de-activation, refunds, etc. The integration with PayPal® is seamless. s2Member even provides API Notifications, which are an added layer of functionality. These are not to be confused with the IPN service. s2Member API Notifications make it easier to integrate back-office routines, affiliate programs, list servers, or any other 3rd-party application that should react to certain events.
|
80 |
|
81 |
-
= Does s2Member support PayPal Auto-Return
|
82 |
-
Yes, s2Member will work with PayPal® Auto-Return/PDT (Payment Data Transfer) `On`, and also with Auto-Return/PDT `Off`. If you enable Auto-Return, you MUST also enable PDT and
|
83 |
|
84 |
= Does s2Member install any new database tables? =
|
85 |
No, s2Member has been fully integrated with the 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 compatible with BuddyPress!
|
@@ -101,6 +101,9 @@ Archived releases of s2Member are maintained [here](http://wordpress.org/extend/
|
|
101 |
|
102 |
== Changelog ==
|
103 |
|
|
|
|
|
|
|
104 |
= 2.9 =
|
105 |
* This release is all about security and bug fixes, with very few feature additions.
|
106 |
* Bug fix, `%%registration_url%%` in the Signup Confirmation Email was being replaced with `1`, instead of the full URL. This bug was first introduced in s2Member v2.8.7. This has been corrected in v2.9.
|
1 |
=== s2Member ( Membership w/ PayPal® Integration ) also works w/ BuddyPress ===
|
2 |
|
3 |
+
Version: 2.9.2
|
4 |
+
Stable tag: 2.9.2
|
5 |
Framework: WS-P-2.1
|
6 |
|
7 |
WordPress Compatible: yes
|
78 |
= Does s2Member utilize the PayPal® IPN system? =
|
79 |
Yes, s2Member supports automation of account activation, welcome emails, confirmations, renewals, de-activation, refunds, etc. The integration with PayPal® is seamless. s2Member even provides API Notifications, which are an added layer of functionality. These are not to be confused with the IPN service. s2Member API Notifications make it easier to integrate back-office routines, affiliate programs, list servers, or any other 3rd-party application that should react to certain events.
|
80 |
|
81 |
+
= Does s2Member support PayPal® PDT/Auto-Return? =
|
82 |
+
Yes, s2Member will work with PayPal® Auto-Return/PDT (Payment Data Transfer) `On`, and also with Auto-Return/PDT `Off`. If you enable Auto-Return, you MUST also enable PDT and supply s2Member with your Identity Token. If one is enabled, the other must also be enabled; and vice-versa. There is a place to enter your PayPal® Identity Token for PDT under `s2Member -> PayPal® Options`.
|
83 |
|
84 |
= Does s2Member install any new database tables? =
|
85 |
No, s2Member has been fully integrated with the 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 compatible with BuddyPress!
|
101 |
|
102 |
== Changelog ==
|
103 |
|
104 |
+
= 2.9.2 =
|
105 |
+
* Bug fix. A bug in the PayPal® Auto-Return routine for PDT ( Payment Data Transfer ) has been resolved. This bug was generating a message that read: `Unable to verify POST vars`. This was actually not a bug, but rather, a [limitation in PDT transmissions](https://www.x.com/message/34450#34450) from PayPal®. s2Member has been updated, with a work-around for this limitation. This bug was very elusive, because it was not affecting all PayPal® accounts. In some cases, it was only affecting PayPal® accounts opened after October 2009.
|
106 |
+
|
107 |
= 2.9 =
|
108 |
* This release is all about security and bug fixes, with very few feature additions.
|
109 |
* Bug fix, `%%registration_url%%` in the Signup Confirmation Email was being replaced with `1`, instead of the full URL. This bug was first introduced in s2Member v2.8.7. This has been corrected in v2.9.
|
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: 2.9
|
13 |
-
Stable tag: 2.9
|
14 |
Framework: WS-P-2.1
|
15 |
|
16 |
WordPress Compatible: yes
|
9 |
If not, see: <http://www.gnu.org/licenses/>.
|
10 |
*/
|
11 |
/*
|
12 |
+
Version: 2.9.2
|
13 |
+
Stable tag: 2.9.2
|
14 |
Framework: WS-P-2.1
|
15 |
|
16 |
WordPress Compatible: yes
|