$99 GRAYBYTE WORDPRESS FILE MANAGER $12

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.157
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/home/bravrvjk/itiministry.org/wp-content/plugins/give/includes/

HOME
Current File : /home/bravrvjk/itiministry.org/wp-content/plugins/give/includes//class-give-cache-setting.php
<?php
/**
 * Class for managing plugin settings cache
 *
 * Note: only use for internal purpose.
 *
 * @package     Give
 * @subpackage  Classes/Give_Cache_Setting
 * @copyright   Copyright (c) 2018, GiveWP
 * @license     https://opensource.org/licenses/gpl-license GNU Public License
 * @since       2.4.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class Give_Cache_Setting
 */
class Give_Cache_Setting {
	/**
	 * Instance.
	 *
	 * @since  2.4.0
	 * @access private
	 * @var Give_Cache_Setting
	 */
	private static $instance;

	/**
	 * Cache key.
	 *
	 * @since  2.4.0
	 * @access private
	 * @var string
	 */
	private $cache_key = 'giveAllOptions';


	/**
	 * Cache group.
	 *
	 * @since  2.4.0
	 * @access private
	 * @var string
	 */
	private $cache_group = 'give-options';

	/**
	 * Array of cached settings
	 *
	 * @since  2.4.0
	 * @access private
	 * @var array
	 */
	private $settings = [
		'give_settings'                        => [],
		'give_version'                         => '',
		'give_completed_upgrades'              => [],
		'give_doing_upgrade'                   => [],
		'give_paused_batches'                  => [],
		'give_install_pages_created'           => '',
		'give_show_db_upgrade_complete_notice' => '',
		'give_addon_last_activated'            => '',
		'currencies'                           => [],
		'gateways'                             => [],
	];

	/**
	 * Array of cached setting db option names
	 *
	 * @since  2.4.0
	 * @access private
	 * @var array
	 */
	private $db_option_ids = [
		'give_settings',
		'give_version',
		'give_completed_upgrades',
		'give_doing_upgrade',
		'give_install_pages_created',
		'give_show_db_upgrade_complete_notice',
		'give_addon_last_activated',
		'give_paused_batches',
	];

	/**
	 * Array of cached setting option names
	 *
	 * @since  2.4.0
	 * @access private
	 * @var array
	 */
	private static $all_option_ids;

	/**
	 * Singleton pattern.
	 *
	 * @since  2.4.0
	 * @access private
	 */
	private function __construct() {
	}


	/**
	 * Get instance.
	 *
	 * @since  2.4.0
	 * @access public
	 * @return Give_Cache_Setting
	 */
	public static function get_instance() {
		if ( null === static::$instance ) {
			self::$instance = new static();

			self::$instance->setup();
		}

		return self::$instance;
	}

	/**
	 * Setup
	 *
     * @since 4.3.0 use init hook for currency and gateway list
	 * @since  2.4.0
	 * @access private
	 */
	private function setup() {
		self::$all_option_ids = array_keys( $this->settings );

		$this->load_plugin_settings();

		add_action( 'added_option', [ $this, 'reload_plugin_settings' ] );
		add_action( 'updated_option', [ $this, 'reload_plugin_settings' ] );
		add_action( 'deleted_option', [ $this, 'reload_plugin_settings' ] );

		add_action( 'init', [ $this, 'setup_currencies_list' ]);
		add_action( 'init', [ $this, 'setup_gateways_list' ]);
	}

	/**
	 * Load plugin settings
	 *
	 * @since  2.4.0
	 * @access private
	 */
	private function load_plugin_settings() {
		global $wpdb;

		/**
		 * Fire the filter
		 *
		 * This filter can be used if admin facing any caching issue.
		 * This is a switch to enable or disable setting cache.
		 * Thus filter can be removed in future.
		 *
		 * @since 2.4.1
		 */
		if ( ! apply_filters( 'give_disable_setting_cache', false ) ) {
			$cache = wp_cache_get( $this->cache_key, $this->cache_group );

			// Load options from cache.
			if ( ! empty( $cache ) ) {
				$this->settings = $cache;

				return;
			}
		}

		$db_option_ids = '\'' . implode( '\',\'', $this->db_option_ids ) . '\'';

		$sql     = "SELECT option_name, option_value FROM $wpdb->options WHERE option_name IN ({$db_option_ids}) ";
		$results = $wpdb->get_results( $sql );

		if ( ! empty( $results ) ) {

			/* @var  stdClass $result */
			foreach ( $results as $result ) {
				$this->settings[ $result->option_name ] = maybe_unserialize( $result->option_value );
			}

			wp_cache_set( $this->cache_key, $this->settings, $this->cache_group );
		}
	}

	/**
	 * Reload option when add, update or delete
	 *
	 * Note: only for internal logic
	 *
	 * @since 2.4.0
	 *
	 * @param $option_name
	 */
	public function reload_plugin_settings( $option_name ) {
		// Bailout.
		if ( ! in_array( $option_name, $this->db_option_ids ) ) {
			return;
		}

		wp_cache_delete( $this->cache_key, $this->cache_group );
		$this->load_plugin_settings();
	}

	/**
	 * Setup currencies list
	 *
	 * @since 2.4.0
	 * @since 2.9.6 Replaced require_once with require to support multiple calls.
	 */
	public function setup_currencies_list() {
		$currencies = require GIVE_PLUGIN_DIR . 'includes/currencies-list.php';

		/**
		 * Filter the supported currency list
		 *
		 * @since 2.4.0
		 */
		$currencies = apply_filters( 'give_register_currency', $currencies );

		$this->settings['currencies'] = $currencies;
	}


	/**
	 * Setup gateway list
	 *
	 * Note: use give_get_enabled_payment_gateways function to get list of registered gateway.
	 *
     * @since 3.0.0 test and offline gateways are defaulted in the new Gateway API
	 * @since 2.4.0
	 * @since 2.15.0 Set payment gateway checkout label to  admin defined payment gateway checkout label.
	 */
	public function setup_gateways_list() {
		$gateways = [];

		/**
		 * Filter the supported gateways list
		 *
		 * @since 2.4.0
		 */
		$gateways = apply_filters( 'give_register_gateway', $gateways );

		$this->settings['gateways'] = $gateways;
	}


	/**
	 * Get option
	 *
	 * @since  2.4.0
	 * @access public
	 *
	 * @param      $option_name
	 * @param bool        $default
	 *
	 * @return mixed
	 */
	public static function get_option( $option_name, $default = false ) {
		$value = $default;

		if ( in_array( $option_name, self::$all_option_ids ) ) {
			$value = ! empty( self::$instance->settings[ $option_name ] )
				? self::$instance->settings[ $option_name ]
				: $default;
		}

		return $value;
	}

	/**
	 * Get plugin settings
	 *
	 * @since  2.4.0
	 * @access public
	 */
	public static function get_settings() {

		/**
		 * Filter the plugin setting
		 */
		return (array) apply_filters( 'give_get_settings', self::get_option( 'give_settings', [] ) );
	}
}

Give_Cache_Setting::get_instance();


Current_dir [ WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
admin
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
api
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
database
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
deprecated
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
donors
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
emails
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
forms
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
frontend
--
7 Apr 2026 5.25 AM
bravrvjk / bravrvjk
0755
gateways
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
libraries
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
payments
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
actions.php
10.004 KB
17 Sep 2025 8.52 PM
bravrvjk / bravrvjk
0644
ajax-functions.php
21.116 KB
17 Sep 2025 8.52 PM
bravrvjk / bravrvjk
0644
class-give-async-process.php
1.332 KB
14 Aug 2024 11.11 PM
bravrvjk / bravrvjk
0644
class-give-background-updater.php
15.351 KB
17 Sep 2025 8.52 PM
bravrvjk / bravrvjk
0644
class-give-cache-setting.php
6.059 KB
22 May 2025 12.18 AM
bravrvjk / bravrvjk
0644
class-give-cache.php
17.805 KB
17 Sep 2025 8.52 PM
bravrvjk / bravrvjk
0644
class-give-cli-commands.php
32.395 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
class-give-comment.php
17.029 KB
17 Sep 2025 8.52 PM
bravrvjk / bravrvjk
0644
class-give-cron.php
5.212 KB
17 Sep 2025 8.52 PM
bravrvjk / bravrvjk
0644
class-give-donate-form.php
24.154 KB
18 Jul 2024 12.34 AM
bravrvjk / bravrvjk
0644
class-give-donor.php
40.059 KB
11 Jan 2024 12.22 AM
bravrvjk / bravrvjk
0644
class-give-email-access.php
8.304 KB
23 Mar 2021 1.24 AM
bravrvjk / bravrvjk
0644
class-give-license-handler.php
34.26 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
class-give-logging.php
7.414 KB
17 Sep 2025 8.52 PM
bravrvjk / bravrvjk
0644
class-give-readme-parser.php
1.376 KB
17 Jun 2022 4.03 AM
bravrvjk / bravrvjk
0644
class-give-roles.php
11.103 KB
28 Jan 2026 8.00 PM
bravrvjk / bravrvjk
0644
class-give-scripts.php
26 KB
16 Oct 2025 6.10 PM
bravrvjk / bravrvjk
0644
class-give-session.php
14.961 KB
17 Sep 2025 8.52 PM
bravrvjk / bravrvjk
0644
class-give-stats.php
11.767 KB
31 Mar 2020 4.14 AM
bravrvjk / bravrvjk
0644
class-give-template-loader.php
3.553 KB
31 Mar 2020 4.14 AM
bravrvjk / bravrvjk
0644
class-give-tooltips.php
4.561 KB
31 Mar 2020 4.14 AM
bravrvjk / bravrvjk
0644
class-give-translation.php
8.268 KB
20 Jan 2022 11.45 AM
bravrvjk / bravrvjk
0644
class-notices.php
19.3 KB
17 Sep 2025 8.52 PM
bravrvjk / bravrvjk
0644
country-functions.php
76.284 KB
18 Nov 2025 7.37 PM
bravrvjk / bravrvjk
0644
currencies-list.php
52.224 KB
18 Nov 2025 7.37 PM
bravrvjk / bravrvjk
0644
currency-functions.php
11.573 KB
8 Jul 2022 3.27 AM
bravrvjk / bravrvjk
0644
error-tracking.php
2.926 KB
31 Mar 2020 4.14 AM
bravrvjk / bravrvjk
0644
filters.php
8.836 KB
17 Sep 2025 8.52 PM
bravrvjk / bravrvjk
0644
formatting.php
28.439 KB
1 Oct 2025 3.37 PM
bravrvjk / bravrvjk
0644
install.php
17.08 KB
17 Sep 2025 8.52 PM
bravrvjk / bravrvjk
0644
login-register.php
10.33 KB
10 Apr 2024 9.54 PM
bravrvjk / bravrvjk
0644
misc-functions.php
113.723 KB
17 Sep 2025 8.52 PM
bravrvjk / bravrvjk
0644
plugin-compatibility.php
3.171 KB
31 Mar 2020 4.14 AM
bravrvjk / bravrvjk
0644
post-types.php
17.825 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
price-functions.php
2.827 KB
31 Mar 2020 4.14 AM
bravrvjk / bravrvjk
0644
process-donation.php
49.202 KB
6 Nov 2024 11.55 PM
bravrvjk / bravrvjk
0644
setting-functions.php
4.356 KB
11 Jul 2019 8.38 AM
bravrvjk / bravrvjk
0644
shortcodes.php
33.278 KB
22 May 2025 12.18 AM
bravrvjk / bravrvjk
0644
template-functions.php
13.151 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
user-functions.php
15.768 KB
18 Aug 2022 10.28 PM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF