File Manager
<?php
namespace WP_Rocket\Engine\License\API;
use WP_Rocket\Admin\Options_Data;
use WP_Rocket\Engine\Common\JobManager\APIHandler\AbstractSafeAPIClient;
class UserClient extends AbstractSafeAPIClient {
const USER_ENDPOINT = 'https://api.wp-rocket.me/stat/1.0/wp-rocket/user.php';
/**
* WP Rocket options instance
*
* @var Options_Data
*/
private $options;
/**
* Get the transient key for plugin updates.
*
* This method returns the transient key used for caching plugin updates.
*
* @return string The transient key for plugin updates.
*/
protected function get_transient_key() {
return 'wpr_user_information';
}
/**
* Get the API URL for plugin updates.
*
* This method returns the API URL used for fetching plugin updates.
*
* @return string The API URL for plugin updates.
*/
protected function get_api_url() {
return self::USER_ENDPOINT;
}
/**
* Instantiate the class
*
* @param Options_Data $options WP Rocket options instance.
*/
public function __construct( Options_Data $options ) {
$this->options = $options;
}
/**
* Gets user data from cache if it exists, else gets it from the user endpoint
*
* Cache the user data for 24 hours in a transient
*
* @since 3.7.3
*
* @return bool|object
*/
public function get_user_data() {
$cached_data = get_transient( 'wp_rocket_customer_data' );
if ( false !== $cached_data ) {
return $cached_data;
}
$data = $this->get_raw_user_data();
if ( false === $data ) {
return false;
}
set_transient( 'wp_rocket_customer_data', $data, DAY_IN_SECONDS );
return $data;
}
/**
* Gets the user data from the user endpoint
*
* @since 3.7.3
*
* @return bool|object
*/
private function get_raw_user_data() {
$customer_key = ! empty( $this->options->get( 'consumer_key', '' ) )
? $this->options->get( 'consumer_key', '' )
: rocket_get_constant( 'WP_ROCKET_KEY', '' );
$customer_email = ! empty( $this->options->get( 'consumer_email', '' ) )
? $this->options->get( 'consumer_email', '' )
: rocket_get_constant( 'WP_ROCKET_EMAIL', '' );
$response = $this->send_post_request(
[
'body' => 'user_id=' . rawurlencode( $customer_email ) . '&consumer_key=' . sanitize_key( $customer_key ),
],
true
);
if ( is_wp_error( $response ) ) {
return false;
}
$body = wp_remote_retrieve_body( $response );
if ( empty( $body ) ) {
return false;
}
return json_decode( $body );
}
}
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com