PluginProbe
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions / 260917
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions v260917
260917 260913 260909 260829 260814 260805 110710 110731 110812 110815 110912 110913 110915 110926 110927 111002 111003 111011 111017 111029 111105 111206 111216 111220 120213 All 189 releases
s2member / src / includes / menu-pages / els-ops.inc.php

els-ops.inc.php in s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions 260917, at src/includes/menu-pages/els-ops.inc.php

449 lines 30.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 // @codingStandardsIgnoreFile
3 /**
4 * Menu page for the s2Member plugin (List Server Options page).
5 *
6 * Copyright: © 2009-2011
7 * {@link http://websharks-inc.com/ WebSharks, Inc.}
8 * (coded in the USA)
9 *
10 * Released under the terms of the GNU General Public License.
11 * You should have received a copy of the GNU General Public License,
12 * along with this software. In the main directory, see: /licensing/
13 * If not, see: {@link http://www.gnu.org/licenses/}.
14 *
15 * @package s2Member\Menu_Pages
16 * @since 3.0
17 */
18 if(!defined('WPINC')) // MUST have WordPress.
19 exit("Do not access this file directly.");
20
21 if(!class_exists("c_ws_plugin__s2member_menu_page_els_ops"))
22 {
23 /**
24 * Menu page for the s2Member plugin (List Server Options page).
25 *
26 * @package s2Member\Menu_Pages
27 * @since 110531
28 */
29 class c_ws_plugin__s2member_menu_page_els_ops
30 {
31 public function __construct()
32 {
33 echo '<div class="wrap ws-menu-page">'."\n";
34
35 echo '<div class="wp-header-end"></div>'."\n";
36
37 echo '<div class="ws-menu-page-toolbox">'."\n";
38 c_ws_plugin__s2member_menu_pages_tb::display();
39 echo '</div>'."\n";
40
41 echo '<h2>API / List Servers</h2>'."\n";
42
43 echo '<table class="ws-menu-page-table">'."\n";
44 echo '<tbody class="ws-menu-page-table-tbody">'."\n";
45 echo '<tr class="ws-menu-page-table-tr">'."\n";
46 echo '<td class="ws-menu-page-table-l">'."\n";
47
48 do_action("ws_plugin__s2member_during_els_ops_page_before_left_sections_form", get_defined_vars());
49
50 echo '<form method="post" name="ws_plugin__s2member_options_form" id="ws-plugin--s2member-options-form" autocomplete="off">'."\n";
51 echo '<input type="hidden" name="ws_plugin__s2member_options_save" id="ws-plugin--s2member-options-save" value="'.esc_attr(wp_create_nonce("ws-plugin--s2member-options-save")).'" />'."\n";
52
53 do_action("ws_plugin__s2member_during_els_ops_page_before_left_sections", get_defined_vars());
54
55 if(apply_filters("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_mailchimp", TRUE, get_defined_vars()))
56 {
57 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_mailchimp", get_defined_vars());
58
59 echo '<div class="ws-menu-page-group" title="MailChimp Integration">'."\n";
60
61 echo '<div class="ws-menu-page-section ws-plugin--s2member-mailchimp-section">'."\n";
62 echo '<a href="http://www.s2member.com/r/mailchimp/" target="_blank"><img src="'.esc_attr($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]).'/src/images/mailchimp-stamp.png" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." /></a>'."\n";
63 echo '<h3>MailChimp List Server Integration (optional)</h3>'."\n";
64 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://s2member.com/r/mailchimp-api-docs/" 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";
65 echo '<p>For now, we\'ve covered the basics. You can have your Members automatically subscribed to your MailChimp marketing lists <em>(i.e., newsletters / auto-responders)</em>. You\'ll need a <a href="http://www.s2member.com/r/mailchimp/" target="_blank" rel="external">MailChimp account</a>, a <a href="http://s2member.com/r/mailchimp-api-key/" 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 and click the Lists tab. Now click the (View) button, for the List(s) you want to integrate with s2Member. Then, click the (Settings) link. At the bottom of the (Settings) page, for each list; you\\\'ll find a Unique List ID.\'); return false;">MailChimp List IDs</a>.</p>'."\n";
66 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_mailchimp", get_defined_vars());
67
68 echo '<table class="form-table">'."\n";
69 echo '<tbody>'."\n";
70 echo '<tr>'."\n";
71
72 echo '<th>'."\n";
73 echo '<label for="ws-plugin--s2member-mailchimp-api-key">'."\n";
74 echo 'MailChimp API Key:'."\n";
75 echo '</label>'."\n";
76 echo '</th>'."\n";
77
78 echo '</tr>'."\n";
79 echo '<tr>'."\n";
80
81 echo '<td>'."\n";
82 echo '<input type="password" autocomplete="off" 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";
83 echo 'Once you have a MailChimp account, you\'ll need to <a href="http://s2member.com/r/mailchimp-api-key/" target="_blank" rel="external">add an API Key</a>.'."\n";
84 echo '</td>'."\n";
85
86 echo '</tr>'."\n";
87 echo '</tbody>'."\n";
88 echo '</table>'."\n";
89
90 echo '<div class="ws-menu-page-hr"></div>'."\n";
91
92 echo '<table class="form-table">'."\n";
93 echo '<tbody>'."\n";
94
95 for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
96 {
97 echo '<tr>'."\n";
98
99 echo '<th>'."\n";
100 echo '<label for="ws-plugin--s2member-level'.$n.'-mailchimp-list-ids">'."\n";
101 echo 'List ID(s) for '.(($n === 0) ? 'Free Subscribers' : 'Level #'.$n.' Members').' (comma-delimited):'."\n";
102 echo '</label>'."\n";
103 echo '</th>'."\n";
104
105 echo '</tr>'."\n";
106 echo '<tr>'."\n";
107
108 echo '<td>'."\n";
109 echo '<input type="text" autocomplete="off" name="ws_plugin__s2member_level'.$n.'_mailchimp_list_ids" id="ws-plugin--s2member-level'.$n.'-mailchimp-list-ids" value="'.format_to_edit($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level".$n."_mailchimp_list_ids"]).'" /><br />'."\n";
110 echo 'New '.(($n === 0) ? 'Free Subscribers' : 'Level #'.$n.' Members').' will be subscribed to these List IDs.<br />'."\n";
111 echo 'Ex: <code>4a44fRio5d, 434ksvviEdf, 8834jsdf923, ee9djfs4jel3</code><br />'."\n";
112 echo 'Or: <code>4a44fRio5d::Group Category::Group|Another Group</code>'."\n";
113 echo '</td>'."\n";
114
115 echo '</tr>'."\n";
116 }
117 echo '</tbody>'."\n";
118 echo '</table>'."\n";
119
120 echo '<div class="ws-menu-page-hr"></div>'."\n";
121
122 echo '<div class="info" style="margin-bottom:0;">'."\n";
123 echo '<p style="margin-top:0;"><span>We highly recommend that you enable logging during your initial testing phase. Logs produce lots of useful details that can help in debugging. Logs can help you find issues in your configuration and/or problems during MailChimp processing. See: <a href="'.esc_attr(admin_url("/admin.php?page=ws-plugin--s2member-logs")).'">Log Files (Debug)</a>.</span></p>'."\n";
124 echo '<p style="margin-bottom:0;"><span class="ws-menu-page-error">However, it is very important to disable logging once you go live. Log files may contain personally identifiable information, credit card numbers, secret API credentials, passwords and/or other sensitive information. We strongly suggest that logging be disabled on a live site (for security reasons).</span></p>'."\n";
125 echo '</div>'."\n";
126
127 echo '</div>'."\n";
128
129 echo '</div>'."\n";
130
131 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_mailchimp", get_defined_vars());
132 }
133 if(apply_filters("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_getresponse", c_ws_plugin__s2member_utils_conds::pro_is_installed(), get_defined_vars()))
134 {
135 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_getresponse", get_defined_vars());
136
137 echo '<div class="ws-menu-page-group" title="GetResponse Integration">'."\n";
138
139 echo '<div class="ws-menu-page-section ws-plugin--s2member-getresponse-section">'."\n";
140 echo '<a href="http://www.s2member.com/r/getresponse/" target="_blank"><img src="'.esc_attr($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]).'/src/images/getresponse-logo.png" class="ws-menu-page-right" style="width:256px; height:89px; border:0;" alt="." /></a>'."\n";
141 echo '<h3>GetResponse List Server Integration (optional)</h3>'."\n";
142 echo '<p>s2Member can be integrated with GetResponse. GetResponse is a complete email marketing solution. It provides turnkey newsletter publishing and hosting features, as well as unlimited autoresponders to deliver information to your subscribers and convert them to paying customers.</p>'."\n";
143 echo '<p>You can have your Members automatically subscribed to your GetResponse marketing lists <em>(i.e., newsletters / auto-responders)</em>. You\'ll need a <a href="http://www.s2member.com/r/getresponse" target="_blank" rel="external">GetResponse account</a>, a <a href="http://www.s2member.com/r/getresponse-api-key" target="_blank" rel="external">GetResponse API Key</a>, and your <a href="http://www.s2member.com/r/getresponse-campaigns-list" target="_blank" rel="external" onclick="alert(\'To obtain your GetResponse Campaign Token(s), log into your GetResponse account and navigate to your entire list of Campaigns. In the left-hand column you\\\'ll find a list of Unique Campaign Tokens.\\n\\nPlease click OK and we\\\'ll take you there now :-)\');">GetResponse Campaign Tokens</a>.</p>'."\n";
144 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_getresponse", get_defined_vars());
145
146 echo '<table class="form-table">'."\n";
147 echo '<tbody>'."\n";
148 echo '<tr>'."\n";
149
150 echo '<th>'."\n";
151 echo '<label for="ws-plugin--s2member-getresponse-api-key">'."\n";
152 echo 'GetResponse API Key:'."\n";
153 echo '</label>'."\n";
154 echo '</th>'."\n";
155
156 echo '</tr>'."\n";
157 echo '<tr>'."\n";
158
159 echo '<td>'."\n";
160 echo '<input type="password" autocomplete="off" name="ws_plugin__s2member_getresponse_api_key" id="ws-plugin--s2member-getresponse-api-key" value="'.format_to_edit($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["getresponse_api_key"]).'" /><br />'."\n";
161 echo 'Once you have a GetResponse account, you\'ll need to login; then <a href="http://www.s2member.com/r/getresponse-api-key" target="_blank" rel="external">get your API Key</a>.'."\n";
162 echo '</td>'."\n";
163
164 echo '</tr>'."\n";
165 echo '</tbody>'."\n";
166 echo '</table>'."\n";
167
168 echo '<div class="ws-menu-page-hr"></div>'."\n";
169
170 echo '<table class="form-table">'."\n";
171 echo '<tbody>'."\n";
172
173 for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
174 {
175 echo '<tr>'."\n";
176
177 echo '<th>'."\n";
178 echo '<label for="ws-plugin--s2member-level'.$n.'-getresponse-list-ids">'."\n";
179 echo 'Campaign Token(s) for '.(($n === 0) ? 'Free Subscribers' : 'Level #'.$n.' Members').' (comma-delimited):'."\n";
180 echo '</label>'."\n";
181 echo '</th>'."\n";
182
183 echo '</tr>'."\n";
184 echo '<tr>'."\n";
185
186 echo '<td>'."\n";
187 echo '<input type="text" autocomplete="off" name="ws_plugin__s2member_level'.$n.'_getresponse_list_ids" id="ws-plugin--s2member-level'.$n.'-getresponse-list-ids" value="'.format_to_edit($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level".$n."_getresponse_list_ids"]).'" /><br />'."\n";
188 echo 'New '.(($n === 0) ? 'Free Subscribers' : 'Level #'.$n.' Members').' will be subscribed to these Campaign Tokens.<br />'."\n";
189 echo 'Ex: <code>4ksdX</code> or <code>4ksdX, koeeXs, ggjXk, aakSc</code>'."\n";
190 echo '</td>'."\n";
191
192 echo '</tr>'."\n";
193 }
194 echo '</tbody>'."\n";
195 echo '</table>'."\n";
196
197 echo '<div class="ws-menu-page-hr"></div>'."\n";
198
199 echo '<div class="info" style="margin-bottom:0;">'."\n";
200 echo '<p style="margin-top:0;"><span>We highly recommend that you enable logging during your initial testing phase. Logs produce lots of useful details that can help in debugging. Logs can help you find issues in your configuration and/or problems during GetResponse processing. See: <a href="'.esc_attr(admin_url("/admin.php?page=ws-plugin--s2member-logs")).'">Log Files (Debug)</a>.</span></p>'."\n";
201 echo '<p style="margin-bottom:0;"><span class="ws-menu-page-error">However, it is very important to disable logging once you go live. Log files may contain personally identifiable information, credit card numbers, secret API credentials, passwords and/or other sensitive information. We strongly suggest that logging be disabled on a live site (for security reasons).</span></p>'."\n";
202 echo '</div>'."\n";
203
204 echo '</div>'."\n";
205
206 echo '</div>'."\n";
207
208 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_getresponse", get_defined_vars());
209 }
210 if(apply_filters("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_aweber", TRUE, get_defined_vars()))
211 {
212 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_aweber", get_defined_vars());
213
214 echo '<div class="ws-menu-page-group" title="AWeber Integration">'."\n";
215
216 echo '<div class="ws-menu-page-section ws-plugin--s2member-aweber-section">'."\n";
217 echo '<a href="http://s2member.com/r/aweber/" target="_blank"><img src="'.esc_attr($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]).'/src/images/aweber-logo.png" class="ws-menu-page-right ws-menu-page-bordered" style="width:125px; height:125px; border:0;" alt="." /></a>'."\n";
218 echo '<h3>AWeber List Server Integration (optional)</h3>'."\n";
219 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. You can have your Members automatically subscribed to your AWeber marketing lists <em>(i.e., newsletters / auto-responders)</em>. You\'ll need an <a href="http://s2member.com/r/aweber/" 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 an API Authorization Code below'."\n";
220 echo '<p><em><strong>AWeber Tip:</strong> If you want your Members to be subscribed to multiple AWeber List IDs at the same time, instead of comma-delimiting those List IDs here; we suggest a single List ID in your s2Member integration; then use <a href="http://s2member.com/r/aweber-automation-rules/" target="_blank" rel="external">AWeber Automation Rules</a> for this. Automation Rules can also reduce the number of email confirmation notices that Members receive.</em></p>'."\n";
221 echo '<p><em><strong>AWeber Tip:</strong> This company is known to have a policy of rejecting role-based email addresses like: <code>admin@</code> or <code>webmaster@</code>. Therefore, if you integrate AWeber it is suggested that you configure s2Member to Force Personal Emails. Please see: <strong>s2Member → General Options → Registration/Profile Fields &amp; Options</strong>.</em></p>'."\n";
222 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_aweber", get_defined_vars());
223
224 echo '<table class="form-table">'."\n";
225 echo '<tbody>'."\n";
226
227 echo '<th>'."\n";
228 echo '<label for="ws-plugin--s2member-aweber-api-key">'."\n";
229 echo 'AWeber API Authorization Code (Required for API Integration):<br />'."\n";
230 echo '</label>'."\n";
231 echo '</th>'."\n";
232
233 echo '</tr>'."\n";
234 echo '<tr>'."\n";
235
236 echo '<td>'."\n";
237 echo '<input type="hidden" name="ws_plugin__s2member_aweber_api_type" value="api" />'."\n";
238 echo '<input type="password" autocomplete="off" name="ws_plugin__s2member_aweber_api_key" id="ws-plugin--s2member-aweber-api-key" value="'.format_to_edit($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["aweber_api_key"]).'" /><br />'."\n";
239 echo 'Once you have an AWeber account, <a href="http://www.s2member.com/r/aweber-api-key" target="_blank" rel="external">click here to get the Authorization Code</a> needed by s2Member.'."\n";
240 echo '</td>'."\n";
241
242 echo '</tr>'."\n";
243 echo '</tbody>'."\n";
244 echo '</table>'."\n";
245
246 echo '<div class="ws-menu-page-hr"></div>'."\n";
247
248 echo '<table class="form-table">'."\n";
249 echo '<tbody>'."\n";
250
251 for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
252 {
253 echo '<tr>'."\n";
254
255 echo '<th>'."\n";
256 echo '<label for="ws-plugin--s2member-level'.$n.'-aweber-list-ids">'."\n";
257 echo 'List ID(s) for '.(($n === 0) ? 'Free Subscribers' : 'Level #'.$n.' Members').' (comma-delimited):'."\n";
258 echo '</label>'."\n";
259 echo '</th>'."\n";
260
261 echo '</tr>'."\n";
262 echo '<tr>'."\n";
263
264 echo '<td>'."\n";
265 echo '<input type="text" autocomplete="off" name="ws_plugin__s2member_level'.$n.'_aweber_list_ids" id="ws-plugin--s2member-level'.$n.'-aweber-list-ids" value="'.format_to_edit($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level".$n."_aweber_list_ids"]).'" /><br />'."\n";
266 echo 'New '.(($n === 0) ? 'Free Subscribers' : 'Level #'.$n.' Members').' will be subscribed to these List IDs.<br />'."\n";
267 echo 'Ex: <code>mylist, anotherlist</code>—See also: <a href="http://s2member.com/r/aweber-automation-rules/" target="_blank" rel="external">Automation Rules</a>'."\n";
268 echo '</td>'."\n";
269
270 echo '</tr>'."\n";
271 }
272 echo '</tbody>'."\n";
273 echo '</table>'."\n";
274
275 echo '<div class="ws-menu-page-hr"></div>'."\n";
276
277 echo '<div class="info" style="margin-bottom:0;">'."\n";
278 echo '<p style="margin-top:0;"><span>We highly recommend that you enable logging during your initial testing phase. Logs produce lots of useful details that can help in debugging. Logs can help you find issues in your configuration and/or problems during AWeber processing. See: <a href="'.esc_attr(admin_url("/admin.php?page=ws-plugin--s2member-logs")).'">Log Files (Debug)</a>.</span></p>'."\n";
279 echo '<p style="margin-bottom:0;"><span class="ws-menu-page-error">However, it is very important to disable logging once you go live. Log files may contain personally identifiable information, credit card numbers, secret API credentials, passwords and/or other sensitive information. We strongly suggest that logging be disabled on a live site (for security reasons).</span></p>'."\n";
280 echo '</div>'."\n";
281
282 echo '</div>'."\n";
283
284 echo '</div>'."\n";
285
286 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_aweber", get_defined_vars());
287 }
288 if(apply_filters("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_opt_in", TRUE, get_defined_vars()))
289 {
290 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_opt_in", get_defined_vars());
291
292 echo '<div class="ws-menu-page-group" title="Registration / Double Opt-In Box?">'."\n";
293
294 echo '<div class="ws-menu-page-section ws-plugin--s2member-opt-in-section">'."\n";
295 echo '<h3>Double Opt-In Checkbox Field (optional)</h3>'."\n";
296 echo '<p>A Double Opt-In Checkbox will ONLY be displayed, if you\'ve integrated one <em>or more</em> List Servers. See also: <a href="http://www.s2member.com/kb/double-opt-in-checkbox/" target="_blank" rel="external">this KB article</a>.</p>'."\n";
297 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_opt_in", get_defined_vars());
298
299 echo '<table class="form-table">'."\n";
300 echo '<tbody>'."\n";
301 echo '<tr class="ws-plugin--s2member-custom-reg-opt-in-label-row"'.((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in"]) ? ' style="display:none;"' : '').'>'."\n";
302
303 echo '<th>'."\n";
304 echo '<label for="ws-plugin--s2member-custom-reg-opt-in-label">'."\n";
305 echo 'Double Opt-In Checkbox Label:'."\n";
306 echo '</label>'."\n";
307 echo '</th>'."\n";
308
309 echo '</tr>'."\n";
310 echo '<tr class="ws-plugin--s2member-custom-reg-opt-in-label-row"'.((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in"]) ? ' style="display:none;"' : '').'>'."\n";
311
312 echo '<td>'."\n";
313 echo '<input type="text" autocomplete="off" name="ws_plugin__s2member_custom_reg_opt_in_label" id="ws-plugin--s2member-custom-reg-opt-in-label" value="'.format_to_edit($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in_label"]).'" /><br />'."\n";
314 echo 'Example: <code><img src="'.esc_attr($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]).'/src/images/'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in"] == 1) ? 'checked' : 'unchecked').'.png" class="ws-plugin--s2member-custom-reg-opt-in-label-prev-img ws-menu-page-img-16" style="vertical-align:middle;" alt="" /> Your Label will appear next to a Checkbox.</code>'."\n";
315 echo '</td>'."\n";
316
317 echo '</tr>'."\n";
318 echo '<tr>'."\n";
319
320 echo '<th>'."\n";
321 echo '<label for="ws-plugin--s2member-custom-reg-opt-in">'."\n";
322 echo 'Require Double Opt-In Checkbox?'."\n";
323 echo '</label>'."\n";
324 echo '</th>'."\n";
325
326 echo '</tr>'."\n";
327 echo '<tr>'."\n";
328
329 echo '<td>'."\n";
330 echo '<select name="ws_plugin__s2member_custom_reg_opt_in" id="ws-plugin--s2member-custom-reg-opt-in">'."\n";
331 echo '<option value="1"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in"] == 1) ? ' selected="selected"' : '').'>Yes (the Box MUST be checked—checked by default)</option>'."\n";
332 echo '<option value="2"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in"] == 2) ? ' selected="selected"' : '').'>Yes (the Box MUST be checked—unchecked by default)</option>'."\n";
333 echo '<option value="0"'.((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_opt_in"]) ? ' selected="selected"' : '').'>No (disable—do NOT display or require the Checkbox)</option>'."\n";
334 echo '</select><br />'."\n";
335 echo 'An email confirmation will NOT be sent to the User, unless the Box is checked, or you\'ve disabled the Box; by choosing <code>No</code>.'."\n";
336 echo '</td>'."\n";
337
338 echo '</tr>'."\n";
339 echo '</tbody>'."\n";
340 echo '</table>'."\n";
341 echo '</div>'."\n";
342
343 echo '</div>'."\n";
344
345 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_opt_in", get_defined_vars());
346 }
347 if(apply_filters("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_opt_out", TRUE, get_defined_vars()))
348 {
349 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_opt_out", get_defined_vars());
350
351 echo '<div class="ws-menu-page-group" title="Automate Un-Subscribe/Opt-Outs?">'."\n";
352
353 echo '<div class="ws-menu-page-section ws-plugin--s2member-opt-out-section">'."\n";
354 echo '<h3>Automate Un-Subscribe/Opt-Out Removals (optional)</h3>'."\n";
355 echo '<p>s2Member can automatically <em>(and silently)</em> remove Users/Members from the List Servers you\'ve configured above. s2Member is also capable of automating this, based on your own personal configuration preferences. Below, you can choose which Events you consider grounds for List Removal. It is also important to point out that s2Member will ONLY remove Users/Members from the Lists you\'ve configured at the Level the User/Member is or was at during the time of the Event. For example, if a Level #1 Member is deleted, they will ONLY be removed from the List(s) you\'ve configured at Level #1. If an account is upgraded from Level #1 to Level #2, they will ONLY be removed from the List(s) you\'ve configured at Level #1. Of course, all of this is based on the configuration below.</p>'."\n";
356
357 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_opt_out", get_defined_vars());
358
359 echo '<table class="form-table">'."\n";
360 echo '<tbody>'."\n";
361 echo '<tr>'."\n";
362
363 echo '<th>'."\n";
364 echo '<label for="ws-plugin--s2member-custom-reg-auto-opt-outs">'."\n";
365 echo 'Process List Removals Automatically? (choose events)'."\n";
366 echo '</label>'."\n";
367 echo '</th>'."\n";
368
369 echo '</tr>'."\n";
370 echo '<tr>'."\n";
371
372 echo '<td>'."\n";
373 echo '<div class="ws-menu-page-scrollbox" style="height:150px;">'."\n";
374 echo '<input type="hidden" name="ws_plugin__s2member_custom_reg_auto_opt_outs[]" value="update-signal" />'."\n";
375 foreach(array("removal-deletion" => "<strong>Anytime a User is deleted (including manual deletions)</strong>", "ipn-refund-reversal-deletion" => "&#9492;&#9472; Anytime s2Member deletes an account because of a Refund/Reversal.", "(ipn|auto-eot)-cancellation-expiration-deletion" => "&#9492;&#9472; Anytime s2Member deletes an account because of a Cancellation/Expiration.", "modification" => "<strong>Anytime a User's Role changes (including manual changes)</strong>", "ipn-refund-reversal-demotion" => "&#9492;&#9472; Anytime s2Member demotes an account because of a Refund/Reversal.", "(ipn|auto-eot)-cancellation-expiration-demotion" => "&#9492;&#9472; Anytime s2Member demotes an account because of a Cancellation/Expiration.", "(rtn|ipn)-upgrade-downgrade" => "&#9492;&#9472; Anytime s2Member changes a User's Role after a paid Subscr. Modification.") as $ws_plugin__s2member_temp_s_value => $ws_plugin__s2member_temp_s_label)
376 echo '<input type="checkbox" name="ws_plugin__s2member_custom_reg_auto_opt_outs[]" id="ws-plugin--s2member-custom-reg-auto-opt-outs-'.esc_attr(preg_replace("/[^a-z0-9_\-]/", "-", $ws_plugin__s2member_temp_s_value)).'" value="'.esc_attr($ws_plugin__s2member_temp_s_value).'"'.((in_array($ws_plugin__s2member_temp_s_value, $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_auto_opt_outs"])) ? ' checked="checked"' : '').' /> <label for="ws-plugin--s2member-custom-reg-auto-opt-outs-'.esc_attr(preg_replace("/[^a-z0-9_\-]/", "-", $ws_plugin__s2member_temp_s_value)).'">'.$ws_plugin__s2member_temp_s_label.'</label><br />'."\n";
377 echo '</div>'."\n";
378 echo '</td>'."\n";
379
380 echo '</tr>'."\n";
381 echo '<tr>'."\n";
382
383 echo '<th>'."\n";
384 echo '<label for="ws-plugin--s2member-custom-reg-auto-opt-out-transitions">'."\n";
385 echo 'Also Process List Transitions Automatically?'."\n";
386 echo '</label>'."\n";
387 echo '</th>'."\n";
388
389 echo '</tr>'."\n";
390 echo '<tr>'."\n";
391
392 echo '<td>'."\n";
393 echo '<select name="ws_plugin__s2member_custom_reg_auto_opt_out_transitions" id="ws-plugin--s2member-custom-reg-auto-opt-out-transitions">'."\n";
394 echo '<option value="0"'.((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_auto_opt_out_transitions"]) ? ' selected="selected"' : '').'>No (do NOT transition mailing list subscribers automatically)</option>'."\n";
395 echo '<option value="1"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_auto_opt_out_transitions"] === "1") ? ' selected="selected"' : '').'>Yes (automatically transition, if able to remove from a previous list)</option>'."\n";
396 echo '<option value="2"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_auto_opt_out_transitions"] === "2") ? ' selected="selected"' : '').'>Yes (always automatically transition, even if NOT removed from a previous list)</option>'."\n";
397 echo '</select><br />'."\n";
398 echo '<em><strong>Transitions:</strong> When/if s2Member automatically removes a Member from Lists at their current Level# (based on your configuration in the previous section), this setting tells s2Member that it should <strong>also</strong> transition the Member to any Lists you\'ve configured at the new Access Level# (i.e., Role) they are being changed to. For example, if a Member is demoted from Level #1 to Level #0, do you want s2Member to add them to the Level #0 List(s) after it removes them from the Level #1 List(s)?</em><br /><br />'."\n";
399 echo '<em><strong>If removed from a previous list, or NOT?:</strong> You can choose your preference above. When/if s2Member automatically transitions a mailing list subscriber, it will first try to remove the subscriber from a previous mailing list. If s2Member is able to remove the subscriber from a previous list before the transition takes place, s2Member will then make an attempt (based on your configuration) to transition the subscriber to a new/different list silently (i.e., without a new confirmation email being sent out). If s2Member is NOT able to remove a subscriber from a previous list, it can (if configured to do so) still transition a subscriber to a new list, by sending the subscriber a new email confirmation letter (i.e., this is NOT silent, because you absolutely NEED the subscriber\'s permission in this case).</em><br /><br />'."\n";
400 echo '<em><strong>Seamless with MailChimp:</strong> If enabled, Automatic List Transitions work seamlessly with MailChimp. Automatic List Transitions also work with GetResponse/AWeber, but GetResponse/AWeber may send the User/Member a new confirmation email, asking them to confirm changes to their mailing list subscription with you. Work is underway to improve this aspect of s2Member\'s integration with GetResponse/AWeber in a future release. Ideally, a Customer would be transitioned silently behind the scene with GetResponse/AWeber too, when appropriate.</em>'."\n";
401 echo '</td>'."\n";
402
403 echo '</tr>'."\n";
404 echo '</tbody>'."\n";
405 echo '</table>'."\n";
406 echo '</div>'."\n";
407
408 echo '</div>'."\n";
409
410 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_opt_out", get_defined_vars());
411 }
412 if(apply_filters("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_other_methods", TRUE, get_defined_vars()))
413 {
414 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_other_methods", get_defined_vars());
415
416 echo '<div class="ws-menu-page-group" title="Other List Server Integration Methods">'."\n";
417
418 echo '<div class="ws-menu-page-section ws-plugin--s2member-other-methods-section">'."\n";
419 echo '<h3>Other List Server Integrations (there\'s always a way)</h3>'."\n";
420 echo '<p>Check the s2Member API Notifications panel. You\'ll find additional layers of automation available through the use of the `Signup`, `Registration`, `Payment`, `EOT/Deletion`, `Refund/Reversal`, and `Specific Post/Page` Notifications that are available to you through the s2Member API. These make it possible to integrate with 3rd party applications; like list servers, affiliate programs, and other back-office routines; in more advanced ways. You will probably need to get help from a web developer though. s2Member API Notifications require some light PHP scripting by someone familiar with web service connections.</p>'."\n";
421 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_other_methods", get_defined_vars());
422 echo '</div>'."\n";
423
424 echo '</div>'."\n";
425
426 do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_other_methods", get_defined_vars());
427 }
428 do_action("ws_plugin__s2member_during_els_ops_page_after_left_sections", get_defined_vars());
429
430 echo '<p class="submit"><input type="submit" value="Save All Changes" /></p>'."\n";
431
432 echo '</form>'."\n";
433
434 echo '</td>'."\n";
435
436 echo '<td class="ws-menu-page-table-r">'."\n";
437 c_ws_plugin__s2member_menu_pages_rs::display();
438 echo '</td>'."\n";
439
440 echo '</tr>'."\n";
441 echo '</tbody>'."\n";
442 echo '</table>'."\n";
443
444 echo '</div>'."\n";
445 }
446 }
447 }
448 new c_ws_plugin__s2member_menu_page_els_ops();
449