File "WebhookEventStorage.php"
Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/woocommerce-paypal-payments/modules/ppcp-webhooks/src/WebhookEventStorage.php
File size: 1.31 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Stores the info about webhook events.
*
* @package WooCommerce\PayPalCommerce\Webhooks
*/
declare(strict_types=1);
namespace WooCommerce\PayPalCommerce\Webhooks;
use WooCommerce\PayPalCommerce\ApiClient\Entity\WebhookEvent;
/**
* Class WebhookEventStorage
*/
class WebhookEventStorage {
/**
* The WP option key.
*
* @var string
*/
private $key;
/**
* WebhookInfoStorage constructor.
*
* @param string $key The WP option key.
*/
public function __construct(
string $key
) {
$this->key = $key;
}
/**
* Saves the info about webhook event.
*
* @param WebhookEvent $webhook_event The webhook event to save.
*/
public function save( WebhookEvent $webhook_event ): void {
$data = array(
'id' => $webhook_event->id(),
'received_time' => time(),
);
update_option( $this->key, $data );
}
/**
* Returns the stored data or null.
*/
public function get_data(): ?array {
$data = get_option( $this->key );
if ( ! $data || ! is_array( $data ) ) {
return null;
}
return $data;
}
/**
* Checks if there is any stored data.
*/
public function is_empty(): bool {
$data = get_option( $this->key );
return ! $data || ! is_array( $data );
}
/**
* Removes the stored data.
*/
public function clear(): void {
delete_option( $this->key );
}
}