1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: 320: 321: 322: 323: 324: 325: 326: 327: 328: 329: 330: 331: 332: 333: 334: 335: 336:
<?php
if ( !class_exists('Inbound_Mailer_Settings') ) {
class Inbound_Mailer_Settings {
static $core_settings;
static $active_tab;
public function __construct() {
self::add_hooks();
}
public static function add_hooks() {
add_filter('inbound_settings/extend', array( __CLASS__ , 'define_pro_settings' ) );
}
public static function define_pro_settings( $settings ) {
global $inbound_settings;
$service = (isset($inbound_settings['mailer']['mail-service'])) ? $inbound_settings['mailer']['mail-service'] : 'sparkpost';
$inbound_settings['mailer']['mail-service'] = $service;
$settings['inbound-pro-setup'][] = array(
'group_name' => INBOUND_EMAIL_SLUG ,
'keywords' => __('email,mailer,marketing automation' , 'inbound-pro'),
'fields' => array (
array(
'id' => 'header-mailer',
'type' => 'header',
'default' => __('Inbound Mailer Settings', 'inbound-pro' ),
'options' => null
),
array(
'id' => 'subheader-unsubscribe',
'type' => 'sub-header',
'default' => __('Unsubscribe Page', 'inbound-pro' ),
'options' => null
),
array(
'id' => 'unsubscribe-shortcode',
'label' => __('Shortcode:', 'inbound-pro' ),
'description' => __( 'This shortcode can be used to produce an unsubscribe form. Inbound Now automatically creates an Unsubscribe page with this shortcode on activation.' , 'inbound-pro' ),
'type' => 'text',
'readonly' => true,
'default' => '[inbound-email-unsubscribe]',
),
array(
'id' => 'unsubscribe-page',
'label' => __('Unsubscribe Location', 'inbound-pro' ),
'description' => __( 'Where to send readers to unsubscribe. We auto create an unsubscribe page on activation, but you can use our shortcode on any page [inbound-email-unsubscribe]. ' , 'inbound-pro' ),
'type' => 'dropdown',
'default' => '',
'options' => Inbound_Mailer_Settings::get_pages_array()
),
array(
'id' => 'unsubscribe-show-lists',
'label' => __('Show Lists', 'inbound-pro' ),
'description' => __( 'Leave this set to on to give the reader the option to unsubscribe from individual lists.' , 'inbound-pro' ),
'type' => 'dropdown',
'default' => 'on',
'options' => array(
'on' => __('On' , 'inbound-pro'),
'off' => __('Off' , 'inbound-pro'),
)
),
array(
'id' => 'subheader-language',
'type' => 'sub-header',
'default' => __('Unsubscribe Labels', 'inbound-pro' ),
'options' => null
),
array(
'id' => 'unsubscribe-header-text',
'label' => __('Unsubscribe Header', 'inbound-pro' ),
'description' => __( 'This text will display inside the unsubscribe button' , 'inbound-pro' ),
'type' => 'text',
'default' => __('Unsubscribe:','inbound-pro')
),
array(
'id' => 'unsubscribe-button-text',
'label' => __('Unsubscribe Button', 'inbound-pro' ),
'description' => __( 'This text will display inside the unsubscribe button' , 'inbound-pro' ),
'type' => 'text',
'default' => __('Unsubscribe','inbound-pro')
),
array(
'id' => 'mute-header-text',
'label' => __('Mute Section Header', 'inbound-pro' ),
'description' => __( 'This text will display inside the mute button' , 'inbound-pro' ),
'type' => 'text',
'default' => __('Mute:','inbound-pro')
),
array(
'id' => 'unsubscribe-confirmation-message',
'label' => __('Confirmation Message #1', 'inbound-pro' ),
'description' => __( 'This message will show after a reader has unsubscribed.' , 'inbound-pro' ),
'type' => 'text',
'default' => __('Thank you!','inbound-pro')
),
array(
'id' => 'automation-unsubscribe-confirmation-message',
'label' => __('Confirmation Message #2', 'inbound-pro' ),
'description' => __( 'This message will show after a reader has clicked unsubscribe from an automated email series.' , 'inbound-pro' ),
'type' => 'text',
'default' => __( 'You have been unsubscribed from this series!' , 'inbound-pro' )
),
array(
'id' => 'unsubscribe-comments-header-1',
'label' => __('Comment Prompt', 'inbound-pro' ),
'description' => __( 'This message is meant to encourage the reader to leave an unsubscribe comments.' , 'inbound-pro' ),
'type' => 'text',
'default' => __( 'Please help us improve by providing us with feedback.' , 'inbound-pro' )
),
array(
'id' => 'unsubscribe-comments-header-2',
'label' => __('Comment Area Header', 'inbound-pro' ),
'description' => __( 'This is a general header denoting the comment textarea below.' , 'inbound-pro' ),
'type' => 'text',
'default' => __( 'Comments' , 'inbound-pro' )
),
array(
'id' => 'unsubscribe-all-lists-label',
'label' => __('"All Lists" label', 'inbound-pro' ),
'description' => __( 'When readers are given the option to unsubscribe from all lists, this label is displayed.' , 'inbound-pro' ),
'type' => 'text',
'default' => __( 'All Lists' , 'inbound-pro' )
),
array(
'id' => 'unsubscribe-1-months',
'label' => __('1 Month Label', 'inbound-pro' ),
'description' => __( 'When readers are given the option to unsubscribe for 1 month, this label is displayed.' , 'inbound-pro' ),
'type' => 'text',
'default' => __( '1 Month' , 'inbound-pro' )
),
array(
'id' => 'unsubscribe-3-months',
'label' => __('3 Months Label', 'inbound-pro' ),
'description' => __( 'When readers are given the option to unsubscribe for 3 months, this label is displayed.' , 'inbound-pro' ),
'type' => 'text',
'default' => __( '3 Months' , 'inbound-pro' )
),
array(
'id' => 'unsubscribe-6-months',
'label' => __('6 Months Label', 'inbound-pro' ),
'description' => __( 'When readers are given the option to unsubscribe for 6 months, this label is displayed.' , 'inbound-pro' ),
'type' => 'text',
'default' => __( '6 Months' , 'inbound-pro' )
),
array(
'id' => 'unsubscribe-12-months',
'label' => __('12 Months Label', 'inbound-pro' ),
'description' => __( 'When readers are given the option to unsubscribe for 12 months, this label is displayed.' , 'inbound-pro' ),
'type' => 'text',
'default' => __( '12 Months' , 'inbound-pro' )
),
array(
'id' => 'subheader-unsubscribe',
'type' => 'sub-header',
'default' => __('Processing Engine', 'inbound-pro' ),
'options' => null
),
array(
'id' => 'processing-limit',
'label' => __('Processing Limit', 'inbound-pro' ),
'description' => __( 'We will schedule/process this many emails to be sent to your email service every two minutes. If your server is having trouble handling 30 emails per cycle, please try reducing the number. Note that this will slow down the send process. To make up for delayed sends please schedule your email to be sent in the future. ' , 'inbound-pro' ),
'type' => 'number',
'default' => '30'
),
array(
'id' => 'processing-threads',
'label' => __('Processing Threads', 'inbound-pro' ),
'description' => __( '(Inactive) We can increase this number to multiply our processing powers. Be very careful though, this could cause your server to overwork and damage your sending efforts. If you\'re not sure what you are doing leave this to 1.' , 'inbound-pro' ),
'type' => 'number',
'default' => '1'
),
array(
'id' => 'subheader-unsubscribe',
'type' => 'sub-header',
'default' => __('Mail Service Setup', 'inbound-pro' ),
'options' => null
),
array(
'id' => 'mail-service',
'label' => __('Mail Service', 'inbound-pro' ),
'description' => __( 'Choose which email service will power the email component.' , 'inbound-pro' ),
'type' => 'dropdown',
'default' => 'none',
'options' => array(
'none' => __( 'none' ),
'sparkpost' => __( 'SparkPost' , 'inbound-pro' )
),
'hidden' => false,
'reveal' => array(
'selector' => null ,
'value' => null
)
),
array(
'id' => 'sparkpost-key',
'label' => __('SparkPost API Key', 'inbound-pro' ),
'description' => __( 'Enter in your SparkPost API Key here.' , 'inbound-pro' ),
'type' => 'text',
'default' => '',
'options' => null,
'hidden' => ( $service == 'sparkpost' ? false : true ) ,
'reveal' => array(
'selector' => '#mail-service' ,
'value' => 'sparkpost'
)
),
array(
'id' => 'sparkpost-status-display',
'type' => 'html',
'label' => __( 'Status:' , 'inbound-pro' ),
'value' => '',
'callback' => array( 'Inbound_SparkPost_Stats' , 'display_api_status' ),
'hidden' => ( $service == 'sparkpost' ? false : true ) ,
'reveal' => array(
'selector' => '#mail-service' ,
'value' => 'sparkpost'
)
),
array(
'id' => 'sparkpost-setup-instructions',
'type' => 'ol',
'label' => __( 'Setup Instructions:' , 'inbound-pro' ),
'options' => array(
'<a href="https://app.sparkpost.com/account/credentials" target="_blank">'.__('Create an API Key','inbound-pro').'</a>'
),
'hidden' => ( $service == 'sparkpost' ? false : true ) ,
'reveal' => array(
'selector' => '#mail-service' ,
'value' => 'sparkpost'
)
)
)
);
return $settings;
}
public static function get_pages_array() {
$pages = get_pages();
$pages_array = array() ;
foreach ($pages as $page) {
$pages_array[ $page->ID ] = $page->post_title;
}
return $pages_array;
}
public static function get_settings() {
global $inbound_settings;
$keys['unsubscribe_page'] = (isset($inbound_settings['mailer']['unsubscribe-page'])) ? $inbound_settings['mailer']['unsubscribe-page'] : null;
$keys['sparkpost-key'] = (isset($inbound_settings['mailer']['sparkpost-key'])) ? $inbound_settings['mailer']['sparkpost-key'] : null;
$keys['mail-service'] = (isset($inbound_settings['mailer']['mail-service'])) ? $inbound_settings['mailer']['mail-service'] : null;
return $keys;
}
public static function get_settings_url() {
if (!defined('INBOUND_PRO_CURRENT_VERSION')) {
$settings_url = admin_url('edit.php?post_type=inbound-email&page=inbound_email_global_settings');
} else {
$settings_url = admin_url('admin.php?page=inbound-pro&setting=email');
}
return $settings_url;
}
}
function load_Inbound_Mailer_Settings() {
$Inbound_Mailer_Settings = new Inbound_Mailer_Settings;
}
add_action( 'admin_init' , 'load_Inbound_Mailer_Settings' );
}