/** * Returns and/or create the single instance of this class. * * @return Charitable_Settings * @access public * @since 1.2.0 */ public static function get_instance() { if (is_null(self::$instance)) { self::$instance = new Charitable_Settings(); } return self::$instance; }
/** * Returns the Charitable_Settings helper. * * @return Charitable_Settings * @since 1.0.0 */ function charitable_get_admin_settings() { return Charitable_Settings::get_instance(); }
/** * Include admin-only files. * * @return void * @access private * @since 1.0.0 */ private function load_dependencies() { $admin_dir = charitable()->get_path('admin'); require_once $admin_dir . 'charitable-core-admin-functions.php'; require_once $admin_dir . 'class-charitable-meta-box-helper.php'; require_once $admin_dir . 'class-charitable-admin-pages.php'; /* Campaigns */ require_once $admin_dir . 'campaigns/class-charitable-campaign-post-type.php'; /* Donations */ require_once $admin_dir . 'donations/class-charitable-donation-post-type.php'; /* Settings */ require_once $admin_dir . 'settings/class-charitable-settings.php'; require_once $admin_dir . 'settings/class-charitable-general-settings.php'; require_once $admin_dir . 'settings/class-charitable-email-settings.php'; require_once $admin_dir . 'settings/class-charitable-gateway-settings.php'; require_once $admin_dir . 'settings/class-charitable-licenses-settings.php'; require_once $admin_dir . 'settings/class-charitable-advanced-settings.php'; require_once $admin_dir . 'settings/charitable-settings-admin-hooks.php'; /* Dashboard widgets */ require_once $admin_dir . 'dashboard-widgets/class-charitable-donations-dashboard-widget.php'; require_once $admin_dir . 'dashboard-widgets/charitable-dashboard-widgets-hooks.php'; /* Upgrades */ require_once $admin_dir . 'upgrades/class-charitable-upgrade.php'; require_once $admin_dir . 'upgrades/class-charitable-upgrade-page.php'; require_once $admin_dir . 'upgrades/charitable-upgrade-hooks.php'; /** * We are registering this object only for backwards compatibility. It * will be removed in or after Charitable 1.3. * * @deprecated */ charitable()->register_object(Charitable_Settings::get_instance()); charitable()->register_object(Charitable_Campaign_Post_Type::get_instance()); charitable()->register_object(Charitable_Donation_Post_Type::get_instance()); charitable()->register_object(Charitable_Admin_Pages::get_instance()); }
* * @see Charitable_Settings::add_notices() */ add_action('charitable_before_admin_settings', array(Charitable_Settings::get_instance(), 'add_notices')); /** * Maybe add "Extensions" settings tab. * * @see Charitable_Settings::maybe_add_extensions_tab() */ add_action('charitable_settings_tabs', array(Charitable_Settings::get_instance(), 'maybe_add_extensions_tab')); /** * Sanitize checkbox values when settings are submitted. * * @see Charitable_Settings::sanitize_checkbox_value() */ add_filter('charitable_sanitize_value', array(Charitable_Settings::get_instance(), 'sanitize_checkbox_value'), 10, 2); /** * Save the license when saving settings. * * @see Charitable_Licenses_Settings::save_license() */ add_filter('charitable_save_settings', array(Charitable_Licenses_Settings::get_instance(), 'save_license'), 10, 2); /** * Add dynamic settings groups. * * @see Charitable_Gateway_Settings::add_gateway_settings_dynamic_groups() * @see Charitable_Email_Settings::add_email_settings_dynamic_groups() * @see Charitable_Email_Settings::add_licenses_group() */ add_filter('charitable_dynamic_groups', array(Charitable_Gateway_Settings::get_instance(), 'add_gateway_settings_dynamic_groups')); add_filter('charitable_dynamic_groups', array(Charitable_Email_Settings::get_instance(), 'add_email_settings_dynamic_groups'));
/** * Disable an email. * * @return void * @access protected * @since 1.0.0 */ protected function disable_email($email) { $settings = get_option('charitable_settings'); if (!isset($settings['enabled_emails'][$email])) { return; } unset($settings['enabled_emails'][$email]); update_option('charitable_settings', $settings); Charitable_Settings::get_instance()->add_update_message(__('Email disabled', 'charitable'), 'success'); do_action('charitable_email_disable', $email); }
/** * Disable a payment gateway. * * @param string $gateway * @return void * @access protected * @since 1.0.0 */ protected function disable_gateway($gateway) { $settings = get_option('charitable_settings'); if (!isset($settings['active_gateways'][$gateway])) { return; } unset($settings['active_gateways'][$gateway]); /* Set a new default gateway */ if ($gateway == $this->get_default_gateway()) { $settings['default_gateway'] = count($settings['active_gateways']) ? key($settings['active_gateways']) : ''; } update_option('charitable_settings', $settings); Charitable_Settings::get_instance()->add_update_message(__('Gateway disabled', 'charitable'), 'success'); do_action('charitable_gateway_disable', $gateway); }