function __construct() { // Don't allow more than one instance of the class if (isset(self::$_this)) { wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'bloom'), get_class($this))); } self::$_this = $this; $this->protocol = is_ssl() ? 'https' : 'http'; add_action('admin_menu', array($this, 'add_menu_link')); add_action('plugins_loaded', array($this, 'add_localization')); add_filter('et_bloom_import_sub_array', array($this, 'import_settings')); add_filter('et_bloom_import_array', array($this, 'import_filter')); add_filter('et_bloom_export_exclude', array($this, 'filter_export_settings')); add_filter('et_bloom_save_button_class', array($this, 'save_btn_class')); // generate home tab in dashboard add_action('et_bloom_after_header_options', array($this, 'generate_home_tab')); add_action('et_bloom_after_main_options', array($this, 'generate_premade_templates')); add_action('et_bloom_after_save_button', array($this, 'add_next_button')); $plugin_file = plugin_basename(__FILE__); add_filter("plugin_action_links_{$plugin_file}", array($this, 'add_settings_link')); // construct dashboard at the plugins_loaded hook, to make sure localization applied correctly. add_action('plugins_loaded', array($this, 'construct_dashboard')); // Register save settings function for ajax request add_action('wp_ajax_et_bloom_save_settings', array($this, 'bloom_save_settings')); add_action('admin_enqueue_scripts', array($this, 'register_scripts'), 99); add_action('wp_enqueue_scripts', array($this, 'load_scripts_styles')); add_action('wp_ajax_reset_options_page', array($this, 'reset_options_page')); add_action('wp_ajax_bloom_remove_optin', array($this, 'remove_optin')); add_action('wp_ajax_bloom_duplicate_optin', array($this, 'duplicate_optin')); add_action('wp_ajax_bloom_add_variant', array($this, 'add_variant')); add_action('wp_ajax_bloom_home_tab_tables', array($this, 'home_tab_tables')); add_action('wp_ajax_bloom_toggle_optin_status', array($this, 'toggle_optin_status')); add_action('wp_ajax_bloom_authorize_account', array($this, 'authorize_account')); add_action('wp_ajax_bloom_reset_accounts_table', array($this, 'reset_accounts_table')); add_action('wp_ajax_bloom_generate_mailing_lists', array($this, 'generate_mailing_lists')); add_action('wp_ajax_bloom_generate_new_account_fields', array($this, 'generate_new_account_fields')); add_action('wp_ajax_bloom_generate_accounts_list', array($this, 'generate_accounts_list')); add_action('wp_ajax_bloom_generate_current_lists', array($this, 'generate_current_lists')); add_action('wp_ajax_bloom_generate_edit_account_page', array($this, 'generate_edit_account_page')); add_action('wp_ajax_bloom_save_account_tab', array($this, 'save_account_tab')); add_action('wp_ajax_bloom_ab_test_actions', array($this, 'ab_test_actions')); add_action('wp_ajax_bloom_get_stats_graph_ajax', array($this, 'get_stats_graph_ajax')); add_action('wp_ajax_bloom_refresh_optins_stats_table', array($this, 'refresh_optins_stats_table')); add_action('wp_ajax_bloom_reset_stats', array($this, 'reset_stats')); add_action('wp_ajax_bloom_pick_winner_optin', array($this, 'pick_winner_optin')); add_action('wp_ajax_bloom_clear_stats', array($this, 'clear_stats')); add_action('wp_ajax_bloom_get_premade_values', array($this, 'get_premade_values')); add_action('wp_ajax_bloom_generate_premade_grid', array($this, 'generate_premade_grid')); add_action('wp_ajax_bloom_display_preview', array($this, 'display_preview')); add_action('wp_ajax_bloom_handle_stats_adding', array($this, 'handle_stats_adding')); add_action('wp_ajax_nopriv_bloom_handle_stats_adding', array($this, 'handle_stats_adding')); add_action('wp_ajax_bloom_subscribe', array($this, 'subscribe')); add_action('wp_ajax_nopriv_bloom_subscribe', array($this, 'subscribe')); add_action('widgets_init', array($this, 'register_widget')); add_action('after_setup_theme', array($this, 'register_image_sizes')); add_shortcode('et_bloom_inline', array($this, 'display_inline_shortcode')); add_shortcode('et_bloom_locked', array($this, 'display_locked_shortcode')); add_filter('body_class', array($this, 'add_body_class')); register_activation_hook(__FILE__, array($this, 'activate_plugin')); register_deactivation_hook(__FILE__, array($this, 'deactivate_plugin')); add_action('bloom_lists_auto_refresh', array($this, 'perform_auto_refresh')); add_action('bloom_stats_auto_refresh', array($this, 'perform_stats_refresh')); $this->frontend_register_locations(); foreach (array('post.php', 'post-new.php') as $hook) { add_action("admin_head-{$hook}", array($this, 'tiny_mce_vars')); add_action("admin_head-{$hook}", array($this, 'add_mce_button_filters')); } }