403Webshell
Server IP : 104.21.14.103  /  Your IP : 3.145.10.49
Web Server : LiteSpeed
System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : giankuin ( 1871)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/giankuin/public_html/wp-content/themes/flatsome/inc/classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/giankuin/public_html/wp-content/themes/flatsome/inc/classes/class-flatsome-envato-admin.php
<?php
/**
 * Flatsome_Envato_Admin class.
 *
 * @package Flatsome
 */

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

/**
 * The Flatsome Envato.
 */
final class Flatsome_Envato_Admin {

	/**
	 * The single class instance.
	 *
	 * @var object
	 */
	private static $instance = null;

	/**
	 * Main Flatsome_Envato_Admin instance
	 *
	 * @return Flatsome_Envato_Admin.
	 */
	public static function instance() {
		if ( is_null( self::$instance ) ) {
			self::$instance = new self();
		}
		return self::$instance;
	}

	/**
	 * Setup instance properties.
	 */
	private function __construct() {}

	/**
	 * Register actions and filters.
	 */
	public function init() {
		add_action( 'admin_menu', array( $this, 'add_pages' ) );
		add_action( 'current_screen', array( $this, 'render_version_info_iframe' ) );
		add_action( 'admin_post_flatsome_envato_migrate', array( $this, 'ajax_delete_purchase_code' ) );
		add_action( 'admin_post_flatsome_envato_register', array( $this, 'ajax_save_registration_form' ) );
	}

	/**
	 * Add necessary admin pages.
	 */
	public function add_pages() {
		add_submenu_page( null, '', '', 'manage_options', 'flatsome-version-info', '__return_empty_string' );
	}

	/**
	 * Renders the update modal iframe.
	 *
	 * @param WP_Screen $screen WordPress admin screen.
	 */
	public function render_version_info_iframe( $screen ) {
		if ( $screen->base === 'admin_page_flatsome-version-info' ) {
			$url     = isset( $_GET['url'] ) ? wp_unslash( $_GET['url'] ) : '';
			$version = isset( $_GET['version'] ) ? wp_unslash( $_GET['version'] ) : '';
			include get_template_directory() . '/template-parts/admin/envato/version-info-iframe.php';
			die;
		}
	}

	/**
	 * Renders a message for sites with a purchase code.
	 *
	 * @return string
	 */
	public function render_message_form() {
		ob_start();
		include get_template_directory() . '/template-parts/admin/envato/message-form.php';
		return ob_get_clean();
	}

	/**
	 * Clears the purchase code and errors.
	 */
	public function ajax_delete_purchase_code() {
		check_admin_referer( 'flatsome_envato_migrate', 'flatsome_envato_migrate_nonce' );

		$referer = wp_unslash( $_POST['_wp_http_referer'] );

		$this->delete_wupdates_data();

		wp_safe_redirect( $referer );
		exit;
	}

	/**
	 * Renders a warning about unusual theme directory name.
	 *
	 * @return string
	 */
	public function render_directory_warning() {
		$template = get_template();

		ob_start();
		include get_template_directory() . '/template-parts/admin/envato/directory-warning.php';
		return ob_get_clean();
	}

	/**
	 * Renders the theme registration form.
	 *
	 * @param string $args Visibility options.
	 * @return string
	 */
	public function render_registration_form( $args = array() ) {
		$token         = flatsome_envato()->get_option( 'token' );
		$is_confirmed  = flatsome_envato()->get_option( 'confirmed' );
		$is_registered = flatsome_envato()->is_registered();
		$errors        = flatsome_envato()->get_errors();
		$args          = wp_parse_args( $args, array(
			'show_intro'  => true,
			'show_terms'  => true,
			'show_submit' => true,
		) );

		if ( $is_registered ) {
			$token = flatsome_hide_chars( $token );
		}

		ob_start();
		include get_template_directory() . '/template-parts/admin/envato/register-form.php';
		return ob_get_clean();
	}

	/**
	 * Saves the theme registration form.
	 */
	public function ajax_save_registration_form() {
		check_admin_referer( 'flatsome_envato_register', 'flatsome_envato_register_nonce' );

		$token     = wp_unslash( $_POST['flatsome_envato_token'] );
		$confirmed = (bool) wp_unslash( $_POST['flatsome_envato_terms'] );
		$referer   = wp_unslash( $_POST['_wp_http_referer'] );

		if ( ! empty( $token ) ) {
			$this->update_token( $token, $confirmed );
		} else {
			// Unregister theme if no token was provided.
			flatsome_envato()->delete_options();
			flatsome_envato()->set_errors( array() );
		}

		wp_safe_redirect( $referer );
		exit;
	}

	/**
	 * Updates the token in the options.
	 *
	 * @param string $token     The new token.
	 * @param bool   $confirmed Whether the user has confirmed the Envato License Terms.
	 * @return void
	 */
	public function update_token( $token, $confirmed = false ) {
		flatsome_envato()->set_option( 'token', $token );
		flatsome_envato()->set_option( 'confirmed', (bool) $confirmed );

		$result = flatsome_envato()->api()->whoami();
		$theme  = flatsome_envato()->api()->get_flatsome();
		$errors = array();

		if ( ! $confirmed ) {
			$errors[] = __( 'Must confirm Envato License Terms.', 'flatsome' );
		}

		if ( is_wp_error( $result ) ) {
			// Fail if the token was invalid or an HTTP error occurred.
			$errors[] = $result->get_error_message();
		} elseif ( is_wp_error( $theme ) ) {
			// Fail if the token dosn't have Flatsome as one if it's purchased items.
			$errors[] = $theme->get_error_message();
		}

		if ( empty( $errors ) ) {
			// Delete all WP Updates data if the token is valid.
			$this->delete_wupdates_data();
		}

		flatsome_envato()->set_option( 'is_valid', empty( $errors ) );
		flatsome_envato()->set_errors( $errors );
	}

	/**
	 * Delete data associated with WP Updates.
	 *
	 * @return void
	 */
	protected function delete_wupdates_data() {
		$slug = flatsome_theme_key();

		delete_option( $slug . '_wup_buyer' );
		delete_option( $slug . '_wup_sold_at' );
		delete_option( $slug . '_wup_purchase_code' );
		delete_option( $slug . '_wup_supported_until' );
		delete_option( $slug . '_wup_errors' );

		// Delete `update_themes` transients in case
		// there are pending updates from wupdates.
		delete_site_transient( 'update_themes' );
		delete_transient( 'update_themes' );
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit