/** * Initialization * * @wp-action admin_init */ public static function init() { if (!is_admin()) { return false; } register_setting('bbsub_options', 'bbsub_handler_type', array(__CLASS__, 'validate_type')); register_setting('bbsub_options', 'bbsub_replyto', array(__CLASS__, 'validate_replyto')); register_setting('bbsub_options', 'bbsub_from_email', array(__CLASS__, 'validate_from_email')); register_setting('bbsub_options', 'bbsub_send_to_author', array(__CLASS__, 'validate_send_to_author')); register_setting('bbsub_options', 'bbsub_send_async', array(__CLASS__, 'validate_send_async')); register_setting('bbsub_options', 'bbsub_handler_options', array(__CLASS__, 'validate_handler_options')); // Global Settings add_settings_section('bbsub_options_global', 'Main Settings', array(__CLASS__, 'settings_section_main'), 'bbsub_options'); add_settings_field('bbsub_options_global_type', 'Messaging Handler', array(__CLASS__, 'settings_field_type'), 'bbsub_options', 'bbsub_options_global'); add_settings_field('bbsub_options_global_replyto', 'Reply-To Address', array(__CLASS__, 'settings_field_replyto'), 'bbsub_options', 'bbsub_options_global'); add_settings_field('bbsub_options_global_from_email', 'From Address', array(__CLASS__, 'settings_field_from'), 'bbsub_options', 'bbsub_options_global'); add_settings_field('bbsub_options_global_send_to_author', 'Send To', array(__CLASS__, 'settings_field_send_to_author'), 'bbsub_options', 'bbsub_options_global'); add_settings_field('bbsub_options_global_send_async', 'Send Asynchronously', array(__CLASS__, 'settings_field_send_async'), 'bbsub_options', 'bbsub_options_global'); // Note: title is false so that we can handle it ourselves add_settings_section('bbsub_options_handleroptions', false, array(__CLASS__, 'settings_section_handler'), 'bbsub_options'); foreach (Falcon::get_connectors() as $connector) { if (!is_callable($connector, 'register_settings')) { continue; } $connector->register_settings(); } Falcon_Manager::register_default_settings(); }
public static function register_default_settings() { if (Falcon::is_network_mode()) { self::register_network_settings(); } add_settings_section('bbsub_options_notifications', 'Default Notification Settings', array(get_class(), 'output_default_settings_header'), 'bbsub_options'); $connectors = Falcon::get_connectors(); foreach ($connectors as $type => $connector) { if (!is_callable(array($connector, 'get_available_settings'))) { continue; } $args = array('type' => $type, 'connector' => $connector); add_settings_field('falcon_options_notifications-' . $type, $connector->get_name(), array(get_class(), 'output_default_settings'), 'bbsub_options', 'bbsub_options_notifications', $args); $available = $connector->get_available_settings(); self::$available[$type] = $available; foreach ($available as $key => $title) { $setting_key = self::key_for_setting($type, 'notifications.' . $key); register_setting('bbsub_options', $setting_key); // Add the filter ourselves, so that we can specify two params add_filter("sanitize_option_{$setting_key}", array(get_class(), 'sanitize_notification_option'), 10, 2); // Save the key for later self::$registered_settings[$setting_key] = array($type, $key); } } }