HEX
Server: Apache/2
System: Linux bq-e705.pointdnshere.com 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64
User: wellmix (1103)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/wellmix/public_html/wp-content/plugins/pymntpl-paypal-woocommerce/src/Cache/CacheHandler.php
<?php

namespace PaymentPlugins\WooCommerce\PPCP\Cache;

class CacheHandler implements CacheInterface {

	private $key;

	/**
	 * @var \WC_Session
	 */
	private $session;

	private $data = [];

	public function __construct( $key ) {
		$this->key     = $key;
		$this->session = WC()->session;
		if ( $this->session ) {
			$this->data = $this->session->get( $this->key, [] );
		}
		$this->initialize();
	}

	public function initialize() {
		add_action( 'wc_ppcp_order_payment_complete', [ $this, 'clear_cache' ] );
	}

	public function set( $key, $value ) {
		$this->data[ $key ] = $value;
		$this->stash();
	}

	public function get( $key ) {
		return isset( $this->data[ $key ] ) ? $this->data[ $key ] : null;
	}

	public function delete( $key ) {
		unset( $this->data[ $key ] );
		$this->stash();
	}

	public function exists( $key ) {
		return isset( $this->data[ $key ] );
	}

	public function clear_cache() {
		unset( $this->session->{$this->key} );
		$this->data = [];
	}

	private function stash() {
		if ( $this->session && ! empty( $this->data ) ) {
			$this->session->set( $this->key, $this->data );
		}
	}

}