' . "\n"; /**/ echo '

' . "\n"; echo '

s2Member® General Options

' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; echo '' . "\n"; echo '' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_before_left_sections", get_defined_vars ()); /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_deactivation", (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site () || is_super_admin ()), get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_deactivation", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; echo '

Deactivation Safeguards ( highly recommended )

' . "\n"; echo (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && !is_main_site () && is_super_admin ()) ? '

On a Multisite Blog Farm, this panel is ONLY visible to YOU, as a Super Administrator. s2Member automatically Safeguards everything on a Multisite Blog Farm. However, as the Super Administrator, you may turn this off; on a per-Blog basis. For example, if you\'re going to de-activate s2Member on this particular Blog, you can turn OFF the Safeguards below, so that s2Member will completely erase itself.

' . "\n" : '

By default, s2Member will retain all of it\'s Roles, Capabilities, and your Configuration Options when/if you deactivate s2Member from the Plugins Menu in WordPress®. However, if you would like for s2Member to erase itself completely, please choose: No ( upon deactivation, erase all data/options ).

' . "\n"; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_deactivation", get_defined_vars ()); /**/ echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo 'Recommended setting: ( Yes, safeguard all data/options )' . "\n"; echo '
' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_deactivation", get_defined_vars ()); } /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_security", true, get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_security", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; echo '' . "\n"; echo '

Security Encryption Key ( optional, for tighter security )

' . "\n"; echo '

Just like WordPress®, s2Member is open-source software. Which is wonderful. However, this also makes it possible for anyone to grab a copy of the software, and try to learn their way around its security measures. In order to keep your installation of s2Member unique/secure, you should configure a Security Encryption Key. s2Member will use your Security Encryption Key to protect itself against hackers. It does this by encrypting all sensitive information with your Key. A Security Encryption Key is unique to your installation.

' . "\n"; echo '

Once you configure this, you do NOT want to change it; not ever. In fact, it is a VERY good idea to keep this backed up in a safe place, just in case you need to move your site, or re-install s2Member in the future. Some of the sensitive data that s2Member stores, will be encrypted with this Key. If you change it, that data can no longer be read, even by s2Member itself. In other words, don\'t use s2Member for six months, then decide to change your Key. That would break your installation.

' . "\n"; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_security", get_defined_vars ()); /**/ echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo (!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key"]) ? '
This may contain letters, numbers, spaces; even punctuation. Up to 256 characters.
Ex: ' . esc_html (strtoupper (c_ws_plugin__s2member_utils_strings::random_str_gen (64))) . '' . "\n" : ''; echo (count ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key_history"]) > 1) ? '
Click here for a history of your last 10 Encryption Keys.' . "\n" : ''; echo '
' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_security", get_defined_vars ()); } /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_localhost_info", (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site () || is_super_admin ()), get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_localhost_info", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; echo '

Localhost WAMP/MAMP Installs ( are you a developer? )

' . "\n"; echo '

If you\'re developing your site in a localhost environment, running something like WAMP/MAMP, or EasyPHP, please add this line to your /wp-config.php file: define("LOCALHOST", true);.

' . "\n"; echo '

This lets s2Member know definitively that your site is in a localhost environment. s2Member will adjust itself accordingly, maximizing functionality during your developement. s2Member can usually auto-detect this, but in cases where your localhost installation runs on something other than 127.0.0.1/localhost, you need to tell s2Member definitively, by adding that line to your /wp-config.php file. For instance, s2Member needs to know when your server IP is the same as all User IPs.

' . "\n"; echo '

Once your site goes live, please remove the line. If you\'re already on a live server connected to the web, please ignore this section.

' . "\n"; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_localhost_info", get_defined_vars ()); echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_localhost_info", get_defined_vars ()); } /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_s_badge_wp_footer_code", true, get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_s_badge_wp_footer_code", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '' . "\n"; /**/ echo '
' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_s_badge_wp_footer_code", get_defined_vars ()); } /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_email_config", true, get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_email_config", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; echo '

Email From: ' . esc_html ('"Name"
') . '

' . "\n"; echo '

This is the name/address that will appear in outgoing email notifications sent by the s2Member plugin.

' . "\n"; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_email_from_name_config", get_defined_vars ()); /**/ echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo 'We recommend that you use the name of your site here.' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo 'Example: support@your-domain.com. Please read this IMPORTANT note.' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo 'Ex: mailto:support@your-domain.com ( mailto link ).
' . "\n"; echo 'Or: ' . esc_html (site_url ("/contact-us/")) . '.' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ echo '

New User Email Configuration

' . "\n"; echo '' . "\n"; echo (empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["pluggables"]["wp_new_user_notification"])) ? '

Conflict warning: You have another theme or plugin installed that is preventing s2Member from controlling this aspect of your installation. When the pluggable function wp_new_user_notification() is handled by another plugin, it\'s not possible for s2Member to allow customization of New User Emails. This is NOT a major issue. In fact, in some cases, it might be desirable. That being said, if you DO want to use s2Member\'s customization of New User Emails, you will need to deactivate one plugin at a time until this conflict warning goes away.

' . "\n" : ''; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_new_user_emails", get_defined_vars ()); /**/ echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ echo '

New User Email Message ( click to customize )

' . "\n"; echo '

This email is sent to all new Users/Members. It should always contain their Username/Password. In addition to this email, s2Member will also send new paying Customers a Signup Confirmation Email, which you can customize from your Dashboard, under: s2Member -> PayPal® Options. You may wish to customize these emails further, by providing details that are specifically geared to your site.

' . "\n"; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_new_user_email", get_defined_vars ()); /**/ echo '' . "\n"; /**/ echo '
' . "\n"; /**/ echo '

Administrative: New User Notification ( click to customize )

' . "\n"; echo '

This email notification is sent to you, each time a new User/Member registers.

' . "\n"; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_new_user_admin_email", get_defined_vars ()); /**/ echo '' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_email_config", get_defined_vars ()); } /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_open_registration", true, get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_open_registration", get_defined_vars ()); /**/ if (is_multisite () && is_main_site ()) /* A Multisite Network, and we're on the Main Site? */ { echo '
' . "\n"; /**/ echo '
' . "\n"; echo '

Open Registration / Free Subscribers ( optional )

' . "\n"; echo '

On the Main Site of a Multisite Network, the settings for Open Registration are consolidated into the s2Member -> Multisite (Config) panel.

' . "\n"; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_open_registration", get_defined_vars ()); echo '
' . "\n"; /**/ echo '
' . "\n"; } else /* Else we display this section normally. No special considerations are required in this case. */ { echo '
' . "\n"; /**/ echo '
' . "\n"; echo '

Open Registration / Free Subscribers ( optional )

' . "\n"; echo '

s2Member supports Free Subscribers ( at Level #0 ), along with four Primary Levels [1-4] of paid Membership. If you want your visitors to be capable of registering absolutely free, you will want to "allow" Open Registration. Whenever a visitor registers without paying, they\'ll automatically become a Free Subscriber, at Level #0.

' . "\n"; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_open_registration", get_defined_vars ()); /**/ echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo 'If you set this to Yes, you\'re unlocking /wp-login.php?action=register. When a visitor registers without paying, they\'ll automatically become a Free Subscriber, at Level #0. The s2Member software reserves Level #0; to be used ONLY for Free Subscribers. All other Membership Levels [1-4] require payment.' . "\n"; echo (c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '

BuddyPress: BuddyPress will use its own Registration Form here.
s2Member integrates with BuddyPress, and the above setting will control Open Regisration for BuddyPress too.
' . "\n" : ''; echo '
' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; } /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_open_registration", get_defined_vars ()); } /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_membership_levels", true, get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_membership_levels", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; echo '

Membership Levels ( required, please customize these )

' . "\n"; echo '

The default Membership Levels are labeled generically; feel free to modify them as needed. s2Member supports Free Subscribers ( at Level #0 ), along with several Primary Roles for paid Membership ( i.e. Levels 1-4 ), created by the s2Member plugin.' . ((!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? ' s2Member also supports unlimited Custom Capability Packages ( see s2Member -> API Scripting -> Custom Capabilities )' : '') . '. That being said, you don\'t have to use all of the Membership Levels if you don\'t want to. To use only 1 or 2 of these Levels, just design your Membership Options Page, so it only includes Payment Buttons for the Levels being used.

' . "\n"; echo (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? '

TIP: Unlimited Membership Levels are only possible with s2Member Pro. However, Custom Capabilities are possible in all versions of s2Member, including the free version. Custom Capabilities are a great way to extend s2Member in creative ways. If you\'re an advanced site owner, a theme designer, or a web developer integrating s2Member for a client, please check your Dashboard, under: s2Member -> API Scripting -> Custom Capabilities. We also recommend the s2Member Codex.

' . "\n" : ''; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_membership_levels", get_defined_vars ()); /**/ echo '' . "\n"; echo '' . "\n"; /**/ for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++) { echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; } /**/ echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo 'This is the Label for Level #' . $n . (($n === 0) ? ' ( Free Subscribers )' : ' Members') . '.
' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '    
' . "\n"; echo 'This affects your administrative Dashboard only ( i.e. your list of Users ).
s2Member can force WordPress® to use your Labels instead of referencing Roles by `s2Member Level #`. If this is your first installation of s2Member, we suggest leaving this set to no until you\'ve had a chance to get acclimated with s2Member\'s functionality. In fact, many site owners choose to leave this off, because they find it less confusing when Roles are referred to by their s2Member Level #.' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ echo '' . "\n"; echo '

The button to the right, is a nifty tool, which allows you to reset s2Member\'s internal Roles and Capabilities that integrate with WordPress®. If you, or a developer working with you, has made attempts to alter the default internal Role/Capability sets that come with s2Member, and you need to reset them back to the way s2Member expects them to be, please use this tool. Attn Developers: it is also possible lock-in your modified Roles/Capabilities with an s2Member Filter. Please see this thread for details.

' . "\n"; /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_membership_levels", get_defined_vars ()); } /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_login_registration", true, get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_login_registration", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '' . "\n"; /**/ echo '
' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_login_registration", get_defined_vars ()); } /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_custom_reg_fields", true, get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_custom_reg_fields", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; echo '

Custom Registration/Profile Fields ( optional, for further customization )

' . "\n"; echo '

Some fields are already built-in by default. The defaults are: *Username*, *Email*, *First Name*, *Last Name*.

' . "\n"; /**/ echo '

Custom Fields will appear in your Standard Registration Form, and in User/Member Profiles:
( ' . esc_html (c_ws_plugin__s2member_utils_urls::wp_register_url ()) . ' )

' . "\n"; echo (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && is_main_site ()) ? '

The Main Site of a Multisite Blog Farm uses this Form. s2Member supports Custom Fields here too.
( ' . esc_html (c_ws_plugin__s2member_utils_urls::wp_signup_url ()) . ' )

' . "\n" : ''; echo (c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '

BuddyPress: BuddyPress will use its own Registration Form here.
s2Member can integrate your Custom Fields with BuddyPress too, please see options below.

' . "\n" : ''; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_custom_reg_fields", get_defined_vars ()); /**/ echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; /* This is filled by JavaScript routines. */ echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo 'Recommended setting ( Yes ). It\'s usually a good idea to leave this on.' . "\n"; echo (c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '
* Has NO affect on BuddyPress registration form (BuddyPress always collects a full Name field).' . "\n" : ''; echo (c_ws_plugin__s2member_utils_conds::pro_is_installed ()) ? '
* s2Member Pro (Checkout) Forms always require a First/Last Name for billing.' . "\n" : ''; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo (c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '
* Has NO affect on BuddyPress registration form (BuddyPress always uses its full Name field).' . "\n" : ''; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo 'Auto-generated Passwords are recommended for best security; because, this also serves as a form of email confirmation.' . "\n"; echo (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && is_main_site ()) ? '
* For security purposes, Custom Passwords are NOT possible on the Main Site of a Blog Farm. [?]' . "\n" : ''; echo (c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '
* Does NOT affect BuddyPress registration form (always yes with BuddyPress registration).' . "\n" : ''; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo 'To force personal email addresses, provide a comma-delimited list of email users to reject. [?]
' . "\n"; echo 'Ex: info,help,admin,webmaster,hostmaster,sales,support,spam
' . "\n"; echo 'See: this article for a more complete list.' . "\n"; echo (c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '
* Affects BuddyPress registration form too.' . "\n" : ''; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo '' . "\n"; foreach (array ("profile-view" => "Yes, integrate with BuddyPress Public Profiles.", "registration" => "Yes, integrate with BuddyPress Registration Form.", "profile" => "Yes, integrate with BuddyPress Profile Editing Panel.") as $ws_plugin__s2member_temp_s_value => $ws_plugin__s2member_temp_s_label) echo '
' . "\n"; echo '
' . "\n"; echo (!c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '* BuddyPress is NOT installed; which is perfectly OK. BuddyPress is NOT a requirement.' . "\n" : '* The options above, make it possible to integrate Custom Registration/Profile Fields ( i.e. those configured with s2Member ) into BuddyPress as well. However, if you configure Profile Fields with BuddyPress, those will NOT be integrated with s2Member. Therefore, if you need Custom Registration/Profile Fields to work with both s2Member and with BuddyPress, please configure them with s2Member.'; echo '
' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_custom_reg_fields", get_defined_vars ()); } /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_login_welcome_page", true, get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_login_welcome_page", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '' . "\n"; /**/ echo '
' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_login_welcome_page", get_defined_vars ()); } /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_membership_options_page", true, get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_membership_options_page", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; echo '

Membership Options Page ( required, please customize this )

' . "\n"; echo '

Please create and/or choose an existing Page that showcases your Membership subscription options. This special Page is where you will insert the Payment Button(s) generated for you by s2Member. This Page serves as your lead-in signup page ( i.e. you\'ll give visitors one or more registration options here, and they\'ll be redirected to your Payment Gateway, to pay for the option they choose ).

' . "\n"; echo '

Your Membership Options Page should detail all of the features that come with Membership to your site, and provide a Payment Button for each Level of access you plan to offer. This is also the Page that anyone could be redirected to ( by s2Member ), should they attempt to access an area of your site, which may require access to something they\'re NOT currenty allowed to view.' . ((!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? ' For more on this advanced topic, please check your Dashboard here: s2Member -> API Scripting -> Membership Options Page / Variables.' : '') . '

' . "\n"; echo '

*Tip* If you allow Open Registration ( i.e. Free Subscribers ), you might want to place a link on your Membership Options Page, which points directly to your Registration Form, instead of routing a Customer through your Payment Gateway first. For further details, please check the section above: s2Member -> General Options -> Open Registration.

' . "\n"; echo (c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '

BuddyPress: Even with BuddyPress, s2Member still needs a Membership Options Page. This is where your Payment Button(s) will go, giving people the ability to pay you. And again, this is also the Page that anyone could be redirected to ( by s2Member ), should they attempt to access an area of your site, which may require access to something they are currenty NOT allowed to view.' . ((!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? ' For more on this advanced topic, please check your Dashboard here: s2Member -> API Scripting -> Membership Options Page / Variables.' : '') . '

' . "\n" : ''; echo '

*Tip* s2Member will NEVER allow this Page to be protected from public access.

' . "\n"; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_membership_options_page", get_defined_vars ()); /**/ echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo 'Please choose a Page that provides Users a way to signup for Membership. This Page should also contain your Payment Button(s). We recommend the following title: Membership Signup.' . "\n"; echo '
' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_membership_options_page", get_defined_vars ()); } /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_profile_modifications", true, get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_profile_modifications", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; echo '

Giving Members The Ability To Modify Their Profile

' . "\n"; echo '

s2Member can be configured to redirect Members away from the default Profile Editing Panel 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. Why would I redirect? 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.

' . "\n"; echo '

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 a special Shortcode: [s2Member-Profile /] that you can place into your Login Welcome Page, or any Post/Page for that matter ( even into a Text Widget ). This Shortcode produces an Inline Profile Editing Form that supports all aspects of s2Member, including Password changes; and any Custom Registration/Profile Fields that you\'ve configured with s2Member.

' . "\n"; echo '

Alternatively, s2Member also gives you the ability to send your Members to a special Stand-Alone version. This Stand-Alone version has been designed ( with a bare-bones format ), intentionally. This makes it possible for you to open it up in a popup window, or embed it into your Login Welcome Page using an IFRAME. Code samples are provided below.

' . "\n"; echo (c_ws_plugin__s2member_utils_conds::bp_is_installed ()) ? '

BuddyPress: BuddyPress already provides Users/Members with a Profile Editing Panel, powered by your theme. If you\'ve configured Custom Registration/Profile Fields with s2Member, you can also enable s2Member\'s Profile Field integration with BuddyPress ( recommended ). For further details, see: s2Member -> General Options -> Registration/Profile Fields.

' . "\n" : ''; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_profile_modifications", get_defined_vars ()); /**/ echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo 'Recommended setting ( Yes ). *Note* When this is set to ( Yes ), s2Member will take an initiative to further safeguard ALL /wp-admin/ areas of your installation; not just the Default Profile Panel.' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ echo '

Shortcode ( copy/paste ), for an Inline Profile Modification Form:
' . "\n"; echo '

' . "\n"; /**/ echo '

Stand-Alone ( copy/paste ), for popup window:

' . "\n"; echo '

/", c_ws_plugin__s2member_utils_strings::esc_ds (site_url ("/?s2member_profile=1")), file_get_contents (dirname (__FILE__) . "/code-samples/current-user-profile-modification-page-url-2-ops.x-php"))) . '" style="font-size:90%; font-family:Consolas, monospace; width:99%;" onclick="this.select ();" />

' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_profile_modifications", get_defined_vars ()); } /**/ if (apply_filters ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_display_url_shortening", true, get_defined_vars ())) { do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_before_url_shortening", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; echo '

URL Shortening Service API ( Preference )

' . "\n"; echo '

In a few special cases, long URLs generated by s2Member, containing encrypted authentication details, will be shortened; using one of the URL Shortening APIs ( listed below ). A shortened URL prevents issues with VERY long links becoming corrupted by a Customer\'s email application. For instance, the Signup Confirmation Email that s2Member sends out to a new paying Customer, may contain a link which is shortened to prevent corruption by email applications. By default, s2Member uses the tinyURL API, which has proven itself to be the most reliable. However, in cases where an API service call fails, s2Member will automatically use one or more of its other APIs as a backup. The option below, allows you to configure which URL Shortening API s2Member should try first ( i.e. the one you prefer ).

' . "\n"; do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_url_shortening", get_defined_vars ()); /**/ echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; /**/ echo '' . "\n"; /**/ echo '' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '' . "\n"; echo '
' . "\n"; echo '
' . "\n"; echo 'Your own custom URL ( i.e. GET request ), with %%s2_long_url%% Replacement Code. [ click for details ]
' . "\n"; echo '
' . "\n"; echo '
' . "\n"; /**/ echo '
' . "\n"; /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_after_url_shortening", get_defined_vars ()); } /**/ do_action ("ws_plugin__s2member_during_gen_ops_page_after_left_sections", get_defined_vars ()); /**/ echo '
' . "\n"; /**/ echo '

' . "\n"; /**/ echo '
' . "\n"; /**/ echo '
' . "\n"; c_ws_plugin__s2member_menu_pages_rs::display (); echo '
' . "\n"; /**/ echo '' . "\n"; } } } /**/ new c_ws_plugin__s2member_menu_page_gen_ops (); ?>