Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 18.220.194.29
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/wavevlvu/diixadigital.com/wp-content/plugins/pinterest-for-woocommerce/src/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/wavevlvu/diixadigital.com/wp-content/plugins/pinterest-for-woocommerce/src/RefreshToken.php
<?php
/**
 * Pinterest for WooCommerce Refresh Token.
 *
 * @package Pinterest_For_WooCommerce/Classes/
 * @version 1.4.2
 */

namespace Automattic\WooCommerce\Pinterest;

use Exception;
use Pinterest_For_Woocommerce;
use WC_Log_Levels;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class Handling Token Refresh.
 */
class RefreshToken {

	/**
	 * Initialize Refresh Token actions and Action Scheduler hooks.
	 *
	 * @since 1.4.0
	 */
	public static function schedule_event() {
		if ( ! Pinterest_For_Woocommerce::is_connected() ) {
			return;
		}

		if ( ! has_action( Heartbeat::DAILY, array( self::class, 'handle_refresh' ) ) ) {
			add_action( Heartbeat::DAILY, array( self::class, 'handle_refresh' ), 20 );
		}
	}

	/**
	 * Checks if it is time to refresh the token and refreshes it if needed.
	 *
	 * @since 1.4.0
	 *
	 * @return true
	 */
	public static function handle_refresh(): bool {
		$token_data   = Pinterest_For_Woocommerce::get_data( 'token_data', true );
		$expires_in   = intval( $token_data['expires_in'] );
		$refresh_time = intval( $token_data['refresh_time'] );

		/**
		 * Filters to determine if it is time to start refreshing the token.
		 *
		 * @since 1.4.0
		 *
		 * @param bool $maybe_refresh - True if it is time to refresh the token.
		 */
		$maybe_refresh = apply_filters(
			PINTEREST_FOR_WOOCOMMERCE_OPTION_NAME . '_maybe_refresh_token',
			( $refresh_time + $expires_in - 2 * DAY_IN_SECONDS ) <= time()
		);

		if ( ! $maybe_refresh ) {
			return true;
		}

		try {
			$refreshed_token_data = self::refresh_token( $token_data );
			Pinterest_For_Woocommerce::save_token_data( $refreshed_token_data );
			return true;
		} catch ( Exception $e ) {
			self::log( $e->getMessage(), WC_Log_Levels::ERROR );
			return false;
		}
	}

	/**
	 * Refreshes the token by sending a request to the Pinterest API.
	 *
	 * @param array $token_data The token data to be refreshed.
	 *
	 * @since 1.4.0
	 *
	 * @throws Exception If the request fails.
	 *
	 * @return array|false The refreshed token data or false if the request failed.
	 */
	private static function refresh_token( $token_data ) {
		$endpoint = Pinterest_For_Woocommerce::get_connection_proxy_url() . 'integrations/renew/' . PINTEREST_FOR_WOOCOMMERCE_WOO_CONNECT_SERVICE;
		$options  = array(
			'headers' => array(
				'Content-Type' => 'application/x-www-form-urlencoded',
			),
			'body'    => array(
				'refresh_token' => Crypto::decrypt( $token_data['refresh_token'] ),
				'url'           => get_site_url(),
			),
			'sslverify' => false,
		);

		// Translators: %s is the endpoint.
		$request_log = sprintf( __( 'Refresh token request to %s.', 'pinterest-for-woocommerce' ), $endpoint );
		self::log( $request_log );

		$response = wp_safe_remote_post( $endpoint, $options );

		if ( is_wp_error( $response ) ) {
			throw new Exception( $response->get_error_message() ); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
		}

		$body = trim( wp_remote_retrieve_body( $response ) );
		$body = json_decode( $body, true );

		$response['body'] = wp_json_encode(
			array_merge(
				$body,
				array(
					'access_token'  => '***** Sensitive data. *******',
					'refresh_token' => '******* Sensitive data. *******',
				)
			)
		);
		self::log( wp_json_encode( $response ) );

		if ( ! is_array( $body ) || ! isset( $body['access_token'], $body['expires_in'] ) ) {
			return false;
		}

		return $body;
	}

	/**
	 * Logs a message to the log file.
	 *
	 * @since 1.4.0
	 *
	 * @param string $message The message to be logged.
	 * @param string $level The level of the message.
	 *
	 * @return void
	 */
	public static function log( $message, $level = WC_Log_Levels::DEBUG ) {
		Logger::log( $message, $level, 'pinterest-for-woocommerce-oauth-refresh' );
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit