PluginProbe
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions / 111003
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions v111003
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 / 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 111003, at includes/menu-pages/els-ops.inc.php

324 lines 23.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Menu page for the s2Member plugin ( List Server Options page ).
4 *
5 * Copyright: © 2009-2011
6 * {@link http://www.websharks-inc.com/ WebSharks, Inc.}
7 * ( coded in the USA )
8 *
9 * Released under the terms of the GNU General Public License.
10 * You should have received a copy of the GNU General Public License,
11 * along with this software. In the main directory, see: /licensing/
12 * If not, see: {@link http://www.gnu.org/licenses/}.
13 *
14 * @package s2Member\Menu_Pages
15 * @since 3.0
16 */
17 if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
18 exit ("Do not access this file directly.");
19 /**/
20 if (!class_exists ("c_ws_plugin__s2member_menu_page_els_ops"))
21 {
22 /**
23 * Menu page for the s2Member plugin ( List Server Options page ).
24 *
25 * @package s2Member\Menu_Pages
26 * @since 110531
27 */
28 class c_ws_plugin__s2member_menu_page_els_ops
29 {
30 public function __construct ()
31 {
32 echo '<div class="wrap ws-menu-page">' . "\n";
33 /**/
34 echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
35 echo '<h2>s2Member® API / List Servers</h2>' . "\n";
36 /**/
37 echo '<table class="ws-menu-page-table">' . "\n";
38 echo '<tbody class="ws-menu-page-table-tbody">' . "\n";
39 echo '<tr class="ws-menu-page-table-tr">' . "\n";
40 echo '<td class="ws-menu-page-table-l">' . "\n";
41 /**/
42 echo '<form method="post" name="ws_plugin__s2member_options_form" id="ws-plugin--s2member-options-form">' . "\n";
43 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";
44 /**/
45 do_action ("ws_plugin__s2member_during_els_ops_page_before_left_sections", get_defined_vars ());
46 /**/
47 if (apply_filters ("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_mailchimp", true, get_defined_vars ()))
48 {
49 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_mailchimp", get_defined_vars ());
50 /**/
51 echo '<div class="ws-menu-page-group" title="MailChimp® List Server Integration">' . "\n";
52 /**/
53 echo '<div class="ws-menu-page-section ws-plugin--s2member-mailchimp-section">' . "\n";
54 echo '<a href="http://www.mailchimp.com/signup/?aid=8f347da54d66b5298d13237d9&afl=1" target="_blank"><img src="' . esc_attr ($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";
55 echo '<h3>MailChimp® List Server Integration ( optional )</h3>' . "\n";
56 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://apidocs.mailchimp.com/?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";
57 echo '<p>For now, we\'ve covered the basics. You can have your Members automatically subscribed to your MailChimp® marketing lists <em>( e.g. newsletters / auto-responders )</em>. 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="https://admin.mailchimp.com/account/api/" 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";
58 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_mailchimp", get_defined_vars ());
59 /**/
60 echo '<table class="form-table">' . "\n";
61 echo '<tbody>' . "\n";
62 echo '<tr>' . "\n";
63 /**/
64 echo '<th>' . "\n";
65 echo '<label for="ws-plugin--s2member-mailchimp-api-key">' . "\n";
66 echo 'MailChimp® API Key:' . "\n";
67 echo '</label>' . "\n";
68 echo '</th>' . "\n";
69 /**/
70 echo '</tr>' . "\n";
71 echo '<tr>' . "\n";
72 /**/
73 echo '<td>' . "\n";
74 echo '<input type="password" 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";
75 echo 'Once you have a MailChimp® account, you\'ll need to <a href="https://admin.mailchimp.com/account/api/" target="_blank" rel="external">add an API Key</a>.' . "\n";
76 echo '</td>' . "\n";
77 /**/
78 echo '</tr>' . "\n";
79 /**/
80 for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
81 {
82 echo '<tr>' . "\n";
83 /**/
84 echo '<th>' . "\n";
85 echo '<label for="ws-plugin--s2member-level' . $n . '-mailchimp-list-ids">' . "\n";
86 echo 'List ID(s) for ' . (($n === 0) ? 'Free Subscribers' : 'Level #' . $n . ' Members') . ' ( comma-delimited ):' . "\n";
87 echo '</label>' . "\n";
88 echo '</th>' . "\n";
89 /**/
90 echo '</tr>' . "\n";
91 echo '<tr>' . "\n";
92 /**/
93 echo '<td>' . "\n";
94 echo '<input type="text" 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";
95 echo 'New ' . (($n === 0) ? 'Free Subscribers' : 'Level #' . $n . ' Members') . ' will be subscribed to these List IDs.<br />' . "\n";
96 echo 'Ex: <code>4a44fRio5d, 434ksvviEdf, 8834jsdf923, ee9djfs4jel3</code><br />' . "\n";
97 echo 'Or: <code>4a44fRio5d::Group Title::Group|Another Group</code>' . "\n";
98 echo '</td>' . "\n";
99 /**/
100 echo '</tr>' . "\n";
101 }
102 /**/
103 echo '</tbody>' . "\n";
104 echo '</table>' . "\n";
105 echo '</div>' . "\n";
106 /**/
107 echo '</div>' . "\n";
108 /**/
109 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_mailchimp", get_defined_vars ());
110 }
111 /**/
112 if (apply_filters ("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_aweber", true, get_defined_vars ()))
113 {
114 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_aweber", get_defined_vars ());
115 /**/
116 echo '<div class="ws-menu-page-group" title="AWeber® List Server Integration">' . "\n";
117 /**/
118 echo '<div class="ws-menu-page-section ws-plugin--s2member-aweber-section">' . "\n";
119 echo '<a href="http://aweber.com/?348037" target="_blank"><img src="' . esc_attr ($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";
120 echo '<h3>AWeber® List Server Integration ( optional )</h3>' . "\n";
121 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";
122 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 ( even if you\'re not using PayPal® as your Payment Gateway ). 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";
123 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_aweber", get_defined_vars ());
124 /**/
125 echo '<table class="form-table">' . "\n";
126 echo '<tbody>' . "\n";
127 /**/
128 for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
129 {
130 echo '<tr>' . "\n";
131 /**/
132 echo '<th>' . "\n";
133 echo '<label for="ws-plugin--s2member-level' . $n . '-aweber-list-ids">' . "\n";
134 echo 'List ID(s) for ' . (($n === 0) ? 'Free Subscribers' : 'Level #' . $n . ' Members') . ' ( comma-delimited ):' . "\n";
135 echo '</label>' . "\n";
136 echo '</th>' . "\n";
137 /**/
138 echo '</tr>' . "\n";
139 echo '<tr>' . "\n";
140 /**/
141 echo '<td>' . "\n";
142 echo '<input type="text" 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";
143 echo 'New ' . (($n === 0) ? 'Free Subscribers' : 'Level #' . $n . ' Members') . ' will be subscribed to these List IDs.<br />' . "\n";
144 echo 'Ex: <code>mylist, myotherlist, anotherlist</code>' . "\n";
145 echo '</td>' . "\n";
146 /**/
147 echo '</tr>' . "\n";
148 }
149 /**/
150 echo '</tbody>' . "\n";
151 echo '</table>' . "\n";
152 echo '</div>' . "\n";
153 /**/
154 echo '</div>' . "\n";
155 /**/
156 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_aweber", get_defined_vars ());
157 }
158 /**/
159 if (apply_filters ("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_opt_in", true, get_defined_vars ()))
160 {
161 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_opt_in", get_defined_vars ());
162 /**/
163 echo '<div class="ws-menu-page-group" title="Registration / Double Opt-In Box?">' . "\n";
164 /**/
165 echo '<div class="ws-menu-page-section ws-plugin--s2member-opt-in-section">' . "\n";
166 echo '<h3>Double Opt-In Checkbox Field ( optional )</h3>' . "\n";
167 echo '<p>A Double Opt-In Checkbox will ONLY be displayed, if you\'ve integrated one <em>or more</em> List Servers.</p>' . "\n";
168 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_opt_in", get_defined_vars ());
169 /**/
170 echo '<table class="form-table">' . "\n";
171 echo '<tbody>' . "\n";
172 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";
173 /**/
174 echo '<th>' . "\n";
175 echo '<label for="ws-plugin--s2member-custom-reg-opt-in-label">' . "\n";
176 echo 'Double Opt-In Checkbox Label:' . "\n";
177 echo '</label>' . "\n";
178 echo '</th>' . "\n";
179 /**/
180 echo '</tr>' . "\n";
181 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";
182 /**/
183 echo '<td>' . "\n";
184 echo '<input type="text" 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";
185 echo 'Example: <code><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/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";
186 echo '</td>' . "\n";
187 /**/
188 echo '</tr>' . "\n";
189 echo '<tr>' . "\n";
190 /**/
191 echo '<th>' . "\n";
192 echo '<label for="ws-plugin--s2member-custom-reg-opt-in">' . "\n";
193 echo 'Require Double Opt-In Checkbox?' . "\n";
194 echo '</label>' . "\n";
195 echo '</th>' . "\n";
196 /**/
197 echo '</tr>' . "\n";
198 echo '<tr>' . "\n";
199 /**/
200 echo '<td>' . "\n";
201 echo '<select name="ws_plugin__s2member_custom_reg_opt_in" id="ws-plugin--s2member-custom-reg-opt-in">' . "\n";
202 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";
203 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";
204 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";
205 echo '</select><br />' . "\n";
206 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";
207 echo '</td>' . "\n";
208 /**/
209 echo '</tr>' . "\n";
210 echo '</tbody>' . "\n";
211 echo '</table>' . "\n";
212 echo '</div>' . "\n";
213 /**/
214 echo '</div>' . "\n";
215 /**/
216 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_opt_in", get_defined_vars ());
217 }
218 /**/
219 if (apply_filters ("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_opt_out", true, get_defined_vars ()))
220 {
221 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_opt_out", get_defined_vars ());
222 /**/
223 echo '<div class="ws-menu-page-group" title="Automate Un-Subscribe/Opt-Outs?">' . "\n";
224 /**/
225 echo '<div class="ws-menu-page-section ws-plugin--s2member-opt-out-section">' . "\n";
226 echo '<h3>Automate Un-Subscribe/Opt-Out Removals ( optional )</h3>' . "\n";
227 echo '<p>s2Member can automatically ( and silently ) remove Users 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 from the Lists you\'ve configured at the Level the Member is/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";
228 echo '<p><em><strong>*Regarding AWeber®*</strong> these will NOT work for AWeber® until you <a href="http://www.aweber.com/faq/questions/62/Can+I+Unsubscribe+People+Via+Email%3F" target="_blank" rel="external">add a Notification Email</a> to your AWeber® account matching the "EMail From Address" configured in <code>s2Member -> General Options -> EMail Configuration</code>. Which is currently set to: <code>' . esc_html ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["reg_email_from_email"]) . '</code>. This is a required step if you want s2Member to be authenticated properly when it automatically emails List Removal requests to AWeber®.</em></p>' . "\n";
229 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_opt_out", get_defined_vars ());
230 /**/
231 echo '<table class="form-table">' . "\n";
232 echo '<tbody>' . "\n";
233 echo '<tr>' . "\n";
234 /**/
235 echo '<th>' . "\n";
236 echo '<label for="ws-plugin--s2member-custom-reg-auto-opt-outs">' . "\n";
237 echo 'Process List Removals Automatically? ( choose events )' . "\n";
238 echo '</label>' . "\n";
239 echo '</th>' . "\n";
240 /**/
241 echo '</tr>' . "\n";
242 echo '<tr>' . "\n";
243 /**/
244 echo '<td>' . "\n";
245 echo '<div class="ws-menu-page-scrollbox" style="height:150px;">' . "\n";
246 echo '<input type="hidden" name="ws_plugin__s2member_custom_reg_auto_opt_outs[]" value="update-signal" />' . "\n";
247 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.", "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)
248 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";
249 echo '</div>' . "\n";
250 echo '</td>' . "\n";
251 /**/
252 echo '</tr>' . "\n";
253 echo '<tr>' . "\n";
254 /**/
255 echo '<th>' . "\n";
256 echo '<label for="ws-plugin--s2member-custom-reg-auto-opt-out-transitions">' . "\n";
257 echo 'Also Process List Transitions Automatically?' . "\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 '<select name="ws_plugin__s2member_custom_reg_auto_opt_out_transitions" id="ws-plugin--s2member-custom-reg-auto-opt-out-transitions">' . "\n";
266 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";
267 echo '<option value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_auto_opt_out_transitions"]) ? ' selected="selected"' : '') . '>Yes ( automatically transition mailing list Subscribers )</option>' . "\n";
268 echo '</select><br />' . "\n";
269 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";
270 echo '<em><strong>*Seamless with MailChimp®*</strong> If enabled, Automatic List Transitions work seamlessly with MailChimp®. Automatic List Transitions also work with AWeber®, but AWeber® will send the 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 AWeber® in a future release. Ideally, a Customer would be transitioned silently behind the scene with AWeber® too.</em>' . "\n";
271 echo '</td>' . "\n";
272 /**/
273 echo '</tr>' . "\n";
274 echo '</tbody>' . "\n";
275 echo '</table>' . "\n";
276 echo '</div>' . "\n";
277 /**/
278 echo '</div>' . "\n";
279 /**/
280 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_opt_out", get_defined_vars ());
281 }
282 /**/
283 if (apply_filters ("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_other_methods", true, get_defined_vars ()))
284 {
285 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_other_methods", get_defined_vars ());
286 /**/
287 echo '<div class="ws-menu-page-group" title="Other List Server Integration Methods">' . "\n";
288 /**/
289 echo '<div class="ws-menu-page-section ws-plugin--s2member-other-methods-section">' . "\n";
290 echo '<h3>Other List Server Integrations ( there\'s always a way )</h3>' . "\n";
291 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";
292 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_other_methods", get_defined_vars ());
293 echo '</div>' . "\n";
294 /**/
295 echo '</div>' . "\n";
296 /**/
297 do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_other_methods", get_defined_vars ());
298 }
299 /**/
300 do_action ("ws_plugin__s2member_during_els_ops_page_after_left_sections", get_defined_vars ());
301 /**/
302 echo '<div class="ws-menu-page-hr"></div>' . "\n";
303 /**/
304 echo '<p class="submit"><input type="submit" class="button-primary" value="Save All Changes" /></p>' . "\n";
305 /**/
306 echo '</form>' . "\n";
307 /**/
308 echo '</td>' . "\n";
309 /**/
310 echo '<td class="ws-menu-page-table-r">' . "\n";
311 c_ws_plugin__s2member_menu_pages_rs::display ();
312 echo '</td>' . "\n";
313 /**/
314 echo '</tr>' . "\n";
315 echo '</tbody>' . "\n";
316 echo '</table>' . "\n";
317 /**/
318 echo '</div>' . "\n";
319 }
320 }
321 }
322 /**/
323 new c_ws_plugin__s2member_menu_page_els_ops ();
324 ?>