| 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® 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® 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 <em>( e.g. newsletters / auto-responders )</em>. 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 <a href="http://www.primothemes.com/forums/viewtopic.php?f=36&t=15496" target="_blank" rel="external">Custom Email Parser</a> inside your AWeber® account.</p>' . "\n"; |
| 123 |
echo '<p>Log into AWeber®, and go to <em>My Lists -> Email Parser</em>. If you like, choose the PayPal® Parser <em>( even if you\'re not using PayPal® as your Payment Gateway )</em>. You can safely ignore the additional instructions they provide. s2Member just needs the PayPal® box checked, and that\'s all. Or, even better, integrate <a href="http://www.primothemes.com/forums/viewtopic.php?f=36&t=15496" target="_blank" rel="external">s2Member\'s Custom Email Parser</a> for AWeber, which <strong>will improve reliability</strong> and flexibility.</p>' . "\n"; |
| 124 |
do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_aweber", get_defined_vars ()); |
| 125 |
/**/ |
| 126 |
echo '<table class="form-table">' . "\n"; |
| 127 |
echo '<tbody>' . "\n"; |
| 128 |
/**/ |
| 129 |
for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++) |
| 130 |
{ |
| 131 |
echo '<tr>' . "\n"; |
| 132 |
/**/ |
| 133 |
echo '<th>' . "\n"; |
| 134 |
echo '<label for="ws-plugin--s2member-level' . $n . '-aweber-list-ids">' . "\n"; |
| 135 |
echo 'List ID(s) for ' . (($n === 0) ? 'Free Subscribers' : 'Level #' . $n . ' Members') . ' ( comma-delimited ):' . "\n"; |
| 136 |
echo '</label>' . "\n"; |
| 137 |
echo '</th>' . "\n"; |
| 138 |
/**/ |
| 139 |
echo '</tr>' . "\n"; |
| 140 |
echo '<tr>' . "\n"; |
| 141 |
/**/ |
| 142 |
echo '<td>' . "\n"; |
| 143 |
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"; |
| 144 |
echo 'New ' . (($n === 0) ? 'Free Subscribers' : 'Level #' . $n . ' Members') . ' will be subscribed to these List IDs.<br />' . "\n"; |
| 145 |
echo 'Ex: <code>mylist, myotherlist, anotherlist</code>' . "\n"; |
| 146 |
echo '</td>' . "\n"; |
| 147 |
/**/ |
| 148 |
echo '</tr>' . "\n"; |
| 149 |
} |
| 150 |
/**/ |
| 151 |
echo '</tbody>' . "\n"; |
| 152 |
echo '</table>' . "\n"; |
| 153 |
echo '</div>' . "\n"; |
| 154 |
/**/ |
| 155 |
echo '</div>' . "\n"; |
| 156 |
/**/ |
| 157 |
do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_aweber", get_defined_vars ()); |
| 158 |
} |
| 159 |
/**/ |
| 160 |
if (apply_filters ("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_opt_in", true, get_defined_vars ())) |
| 161 |
{ |
| 162 |
do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_opt_in", get_defined_vars ()); |
| 163 |
/**/ |
| 164 |
echo '<div class="ws-menu-page-group" title="Registration / Double Opt-In Box?">' . "\n"; |
| 165 |
/**/ |
| 166 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-opt-in-section">' . "\n"; |
| 167 |
echo '<h3>Double Opt-In Checkbox Field ( optional )</h3>' . "\n"; |
| 168 |
echo '<p>A Double Opt-In Checkbox will ONLY be displayed, if you\'ve integrated one <em>or more</em> List Servers.</p>' . "\n"; |
| 169 |
do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_opt_in", get_defined_vars ()); |
| 170 |
/**/ |
| 171 |
echo '<table class="form-table">' . "\n"; |
| 172 |
echo '<tbody>' . "\n"; |
| 173 |
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"; |
| 174 |
/**/ |
| 175 |
echo '<th>' . "\n"; |
| 176 |
echo '<label for="ws-plugin--s2member-custom-reg-opt-in-label">' . "\n"; |
| 177 |
echo 'Double Opt-In Checkbox Label:' . "\n"; |
| 178 |
echo '</label>' . "\n"; |
| 179 |
echo '</th>' . "\n"; |
| 180 |
/**/ |
| 181 |
echo '</tr>' . "\n"; |
| 182 |
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"; |
| 183 |
/**/ |
| 184 |
echo '<td>' . "\n"; |
| 185 |
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"; |
| 186 |
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"; |
| 187 |
echo '</td>' . "\n"; |
| 188 |
/**/ |
| 189 |
echo '</tr>' . "\n"; |
| 190 |
echo '<tr>' . "\n"; |
| 191 |
/**/ |
| 192 |
echo '<th>' . "\n"; |
| 193 |
echo '<label for="ws-plugin--s2member-custom-reg-opt-in">' . "\n"; |
| 194 |
echo 'Require Double Opt-In Checkbox?' . "\n"; |
| 195 |
echo '</label>' . "\n"; |
| 196 |
echo '</th>' . "\n"; |
| 197 |
/**/ |
| 198 |
echo '</tr>' . "\n"; |
| 199 |
echo '<tr>' . "\n"; |
| 200 |
/**/ |
| 201 |
echo '<td>' . "\n"; |
| 202 |
echo '<select name="ws_plugin__s2member_custom_reg_opt_in" id="ws-plugin--s2member-custom-reg-opt-in">' . "\n"; |
| 203 |
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"; |
| 204 |
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"; |
| 205 |
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"; |
| 206 |
echo '</select><br />' . "\n"; |
| 207 |
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"; |
| 208 |
echo '</td>' . "\n"; |
| 209 |
/**/ |
| 210 |
echo '</tr>' . "\n"; |
| 211 |
echo '</tbody>' . "\n"; |
| 212 |
echo '</table>' . "\n"; |
| 213 |
echo '</div>' . "\n"; |
| 214 |
/**/ |
| 215 |
echo '</div>' . "\n"; |
| 216 |
/**/ |
| 217 |
do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_opt_in", get_defined_vars ()); |
| 218 |
} |
| 219 |
/**/ |
| 220 |
if (apply_filters ("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_opt_out", true, get_defined_vars ())) |
| 221 |
{ |
| 222 |
do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_opt_out", get_defined_vars ()); |
| 223 |
/**/ |
| 224 |
echo '<div class="ws-menu-page-group" title="Automate Un-Subscribe/Opt-Outs?">' . "\n"; |
| 225 |
/**/ |
| 226 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-opt-out-section">' . "\n"; |
| 227 |
echo '<h3>Automate Un-Subscribe/Opt-Out Removals ( optional )</h3>' . "\n"; |
| 228 |
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"; |
| 229 |
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 when it emails List Removal requests to AWeber®.</em></p>' . "\n"; |
| 230 |
do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_opt_out", get_defined_vars ()); |
| 231 |
/**/ |
| 232 |
echo '<table class="form-table">' . "\n"; |
| 233 |
echo '<tbody>' . "\n"; |
| 234 |
echo '<tr>' . "\n"; |
| 235 |
/**/ |
| 236 |
echo '<th>' . "\n"; |
| 237 |
echo '<label for="ws-plugin--s2member-custom-reg-auto-opt-outs">' . "\n"; |
| 238 |
echo 'Process List Removals Automatically? ( choose events )' . "\n"; |
| 239 |
echo '</label>' . "\n"; |
| 240 |
echo '</th>' . "\n"; |
| 241 |
/**/ |
| 242 |
echo '</tr>' . "\n"; |
| 243 |
echo '<tr>' . "\n"; |
| 244 |
/**/ |
| 245 |
echo '<td>' . "\n"; |
| 246 |
echo '<div class="ws-menu-page-scrollbox" style="height:150px;">' . "\n"; |
| 247 |
echo '<input type="hidden" name="ws_plugin__s2member_custom_reg_auto_opt_outs[]" value="update-signal" />' . "\n"; |
| 248 |
foreach (array ("removal-deletion" => "<strong>Anytime a User is deleted ( including manual deletions )</strong>", "ipn-refund-reversal-deletion" => "└─ Anytime s2Member deletes an account because of a Refund/Reversal.", "(ipn|auto-eot)-cancellation-expiration-deletion" => "└─ 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" => "└─ Anytime s2Member demotes an account because of a Refund/Reversal.", "(ipn|auto-eot)-cancellation-expiration-demotion" => "└─ Anytime s2Member demotes an account because of a Cancellation/Expiration.", "ipn-upgrade-downgrade" => "└─ 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) |
| 249 |
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"; |
| 250 |
echo '</div>' . "\n"; |
| 251 |
echo '</td>' . "\n"; |
| 252 |
/**/ |
| 253 |
echo '</tr>' . "\n"; |
| 254 |
echo '<tr>' . "\n"; |
| 255 |
/**/ |
| 256 |
echo '<th>' . "\n"; |
| 257 |
echo '<label for="ws-plugin--s2member-custom-reg-auto-opt-out-transitions">' . "\n"; |
| 258 |
echo 'Also Process List Transitions Automatically?' . "\n"; |
| 259 |
echo '</label>' . "\n"; |
| 260 |
echo '</th>' . "\n"; |
| 261 |
/**/ |
| 262 |
echo '</tr>' . "\n"; |
| 263 |
echo '<tr>' . "\n"; |
| 264 |
/**/ |
| 265 |
echo '<td>' . "\n"; |
| 266 |
echo '<select name="ws_plugin__s2member_custom_reg_auto_opt_out_transitions" id="ws-plugin--s2member-custom-reg-auto-opt-out-transitions">' . "\n"; |
| 267 |
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"; |
| 268 |
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"; |
| 269 |
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"; |
| 270 |
echo '</select><br />' . "\n"; |
| 271 |
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"; |
| 272 |
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 ( e.g. 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 ( e.g. this is NOT silent, because you absolutely NEED the subscriber\'s permission in this case ).</em><br /><br />' . "\n"; |
| 273 |
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 ALWAYS 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 AWeber® in a future release. Ideally, a Customer would be transitioned silently behind the scene with AWeber® too, when appropriate.</em>' . "\n"; |
| 274 |
echo '</td>' . "\n"; |
| 275 |
/**/ |
| 276 |
echo '</tr>' . "\n"; |
| 277 |
echo '</tbody>' . "\n"; |
| 278 |
echo '</table>' . "\n"; |
| 279 |
echo '</div>' . "\n"; |
| 280 |
/**/ |
| 281 |
echo '</div>' . "\n"; |
| 282 |
/**/ |
| 283 |
do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_opt_out", get_defined_vars ()); |
| 284 |
} |
| 285 |
/**/ |
| 286 |
if (apply_filters ("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_other_methods", true, get_defined_vars ())) |
| 287 |
{ |
| 288 |
do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_other_methods", get_defined_vars ()); |
| 289 |
/**/ |
| 290 |
echo '<div class="ws-menu-page-group" title="Other List Server Integration Methods">' . "\n"; |
| 291 |
/**/ |
| 292 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-other-methods-section">' . "\n"; |
| 293 |
echo '<h3>Other List Server Integrations ( there\'s always a way )</h3>' . "\n"; |
| 294 |
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"; |
| 295 |
do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_other_methods", get_defined_vars ()); |
| 296 |
echo '</div>' . "\n"; |
| 297 |
/**/ |
| 298 |
echo '</div>' . "\n"; |
| 299 |
/**/ |
| 300 |
do_action ("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_other_methods", get_defined_vars ()); |
| 301 |
} |
| 302 |
/**/ |
| 303 |
do_action ("ws_plugin__s2member_during_els_ops_page_after_left_sections", get_defined_vars ()); |
| 304 |
/**/ |
| 305 |
echo '<div class="ws-menu-page-hr"></div>' . "\n"; |
| 306 |
/**/ |
| 307 |
echo '<p class="submit"><input type="submit" class="button-primary" value="Save All Changes" /></p>' . "\n"; |
| 308 |
/**/ |
| 309 |
echo '</form>' . "\n"; |
| 310 |
/**/ |
| 311 |
echo '</td>' . "\n"; |
| 312 |
/**/ |
| 313 |
echo '<td class="ws-menu-page-table-r">' . "\n"; |
| 314 |
c_ws_plugin__s2member_menu_pages_rs::display (); |
| 315 |
echo '</td>' . "\n"; |
| 316 |
/**/ |
| 317 |
echo '</tr>' . "\n"; |
| 318 |
echo '</tbody>' . "\n"; |
| 319 |
echo '</table>' . "\n"; |
| 320 |
/**/ |
| 321 |
echo '</div>' . "\n"; |
| 322 |
} |
| 323 |
} |
| 324 |
} |
| 325 |
/**/ |
| 326 |
new c_ws_plugin__s2member_menu_page_els_ops (); |
| 327 |
?> |