GRAYBYTE WORDPRESS FILE MANAGER7642

Server IP : 162.213.255.40 / Your IP : 216.73.216.114
System : Linux server146.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
PHP Version : 8.0.30
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF

HOME

/home/hellrfbn/public_html/wp-content/updraft/plugins-old/optinmonster/OMAPI/
Upload Files :
Current_dir [ Writeable ] Document_root [ Writeable ]

Command :


Current File : /home/hellrfbn/public_html/wp-content/updraft/plugins-old/optinmonster/OMAPI//Refresh.php
<?php
/**
 * Refresh class.
 *
 * @since 1.0.0
 *
 * @package OMAPI
 * @author  Thomas Griffin
 */

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

/**
 * Refresh class.
 *
 * @since 1.0.0
 */
class OMAPI_Refresh {

	/**
	 * Holds the class object.
	 *
	 * @since 1.0.0
	 *
	 * @var object
	 */
	public static $instance;

	/**
	 * Path to the file.
	 *
	 * @since 1.0.0
	 *
	 * @var string
	 */
	public $file = __FILE__;

	/**
	 * Holds the base class object.
	 *
	 * @since 1.0.0
	 *
	 * @var object
	 */
	public $base;

	/**
	 * Arguments for the API requests.
	 *
	 * @since 1.6.5
	 *
	 * @var array
	 */
	protected $api_args = array(
		'limit'  => 100,
		'status' => 'all',
	);

	/**
	 * OMAPI_Api object
	 *
	 * @var null|OMAPI_Api
	 */
	public $api = null;

	/**
	 * WP_Error object if refresh fails.
	 *
	 * @var null|WP_Error
	 */
	public $error = null;

	/**
	 * Primary class constructor.
	 *
	 * @since 1.0.0
	 */
	public function __construct() {

		// Set our object.
		$this->set();
	}

	/**
	 * Sets our object instance and base class instance.
	 *
	 * @since 1.0.0
	 */
	public function set() {
		self::$instance = $this;
		$this->base     = OMAPI::get_instance();
	}

	/**
	 * Refresh the optins.
	 *
	 * @since  1.0.0
	 *
	 * @param  string $api_key API key.
	 *
	 * @return WP_Error|bool True if successful.
	 */
	public function refresh( $api_key = null ) {
		$this->api = OMAPI_Api::build( 'v1', 'optins', 'GET', $api_key ? array( 'apikey' => $api_key ) : $api_key );
		$args      = $this->setup_api( $api_key, $this->api_args );

		$results = array();
		$body    = $this->api->request( $args );

		// Loop through paginated requests until we have fetched all the campaigns.
		while ( ! is_wp_error( $body ) || empty( $body ) ) {
			$limit       = absint( wp_remote_retrieve_header( $this->api->response, 'limit' ) );
			$page        = absint( wp_remote_retrieve_header( $this->api->response, 'page' ) );
			$total       = absint( wp_remote_retrieve_header( $this->api->response, 'total' ) );
			$total_pages = ceil( $total / $limit );
			$results     = array_merge( $results, (array) $body );

			// If we've reached the end, prevent any further requests.
			if ( $page >= $total_pages || 0 === $limit ) {
				break;
			}

			$args['page'] = $page + 1;

			// Request the next page.
			$body = $this->api->request( $args );
		}

		if ( is_wp_error( $body ) ) {
			$this->handle_error( $body );
		} else {
			// Store the optin data.
			$this->base->save->store_optins( $results );

			// Update our sites as well.
			$result = $this->base->sites->fetch( $api_key );

			// Update the option to remove stale error messages.
			$option                = $this->base->get_option();
			$option['is_invalid']  = false;
			$option['is_expired']  = false;
			$option['is_disabled'] = false;
			$option['connected']   = time();
			if ( is_wp_error( $result ) ) {
				$this->error = $result;
			} else {
				$option = array_merge( $option, $result );
			}

			$this->base->save->update_option( $option );
		}

		return $this->error ? $this->error : true;
	}

	/**
	 * Trigger a refresh for given campaign.
	 *
	 * @since  1.9.10
	 *
	 * @param  string $campaign_id The campaign id (slug).
	 *
	 * @return WP_Error|bool True if successful.
	 */
	public function sync( $campaign_id ) {
		$time = time();
		$path = "for-wp/{$campaign_id}?t={$time}";

		$this->api = OMAPI_Api::build( 'v1', $path, 'GET' );

		$body = $this->api->request( $this->setup_api() );

		if ( is_wp_error( $body ) ) {

			// If campaign is gone, delete the optin.
			if (
				'campaign-error' === $body->get_error_code()
				&& (string) '404' === (string) $body->get_error_data()
			) {
				$result = $this->base->save->delete_optin( $campaign_id, true );
			}

			$this->handle_error( $body );
		} else {

			// Store the optin data.
			$this->base->save->add_optins( (array) $body, false );
		}

		return $this->error ? $this->error : true;
	}

	/**
	 * Gets contextual info for API requests.
	 *
	 * @since  1.9.10
	 *
	 * @param  array $args Array of args.
	 *
	 * @return arry        Modified array of args.
	 */
	public function get_info_args( $args = array() ) {

		// Set additional flags.
		$args['wp'] = $GLOBALS['wp_version'];
		$args['av'] = $this->base->asset_version();
		$args['v']  = $this->base->version;

		if ( OMAPI_WooCommerce::is_active() ) {
			$args['wc'] = OMAPI_WooCommerce::version();
		}

		$args = array_merge( $args, OMAPI_Api::get_url_args() );

		return $args;
	}

	/**
	 * Handles setting up the API request.
	 *
	 * @since  1.9.10
	 *
	 * @param  string $api_key API key.
	 * @param  array  $args    Array of request args.
	 *
	 * @return arry             Modified array of request args.
	 */
	protected function setup_api( $api_key = null, $args = array() ) {
		if ( $api_key ) {
			$this->api->set( 'apikey', $api_key );
		}

		$this->api->clear_additional_data();

		// Set additional flags.
		return $this->get_info_args( $args );
	}

	/**
	 * Handles errors occurring during refresh.
	 *
	 * @since  1.9.10
	 *
	 * @param  WP_Error $error WP_Error object.
	 *
	 * @return OMAPI_Refresh
	 */
	protected function handle_error( $error ) {
		switch ( $error->get_error_code() ) {
			// If no optins available, make sure they get deleted.
			case 'optins':
			case 'no-campaigns-error':
				$this->base->save->store_optins( array() );
				break;

			case 'referrer-error':
				$api    = OMAPI_Api::instance();
				$result = $this->base->sites->check_existing_site( $api->get_creds() );
				if ( is_wp_error( $result ) ) {
					$error = $result;
				}
				break;
		}

		// Set an error message.
		$this->error = $error;

		return $this;
	}

}

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
July 23 2025 07:38:28
hellrfbn / hellrfbn
0755
EasyDigitalDownloads
--
July 23 2025 07:38:28
hellrfbn / hellrfbn
0755
Elementor
--
July 23 2025 07:38:28
hellrfbn / hellrfbn
0755
Integrations
--
July 23 2025 07:38:28
hellrfbn / hellrfbn
0755
MemberPress
--
July 23 2025 07:38:28
hellrfbn / hellrfbn
0755
Plugins
--
July 23 2025 07:38:28
hellrfbn / hellrfbn
0755
Promos
--
July 23 2025 07:38:28
hellrfbn / hellrfbn
0755
Rules
--
July 23 2025 07:38:28
hellrfbn / hellrfbn
0755
Shortcodes
--
July 23 2025 07:38:28
hellrfbn / hellrfbn
0755
WPForms
--
July 23 2025 07:38:28
hellrfbn / hellrfbn
0755
WooCommerce
--
July 23 2025 07:38:28
hellrfbn / hellrfbn
0755
.htaccess
0.41 KB
July 23 2025 07:38:28
hellrfbn / hellrfbn
0644
Actions.php
6.183 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Ajax.php
1.459 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Api.php
13.006 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
ApiAuth.php
2.405 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
ApiKey.php
5.083 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
AssetLoader.php
5.587 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
BaseRestApi.php
5.91 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Blocks.php
12.7 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
ClassicEditor.php
6.919 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
ConstantContact.php
7.424 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Debug.php
4.349 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
EasyDigitalDownloads.php
9.329 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Elementor.php
5.364 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Inserter.php
11.291 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
InstallSkin.php
1.354 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
InstallSkinCompat.php
1.362 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
MailPoet.php
13.359 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
MemberPress.php
4.117 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Menu.php
14.82 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Notifications.php
18.448 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
OmuApi.php
4.025 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Output.php
23.859 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Pages.php
16.629 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Partners.php
4.692 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Plugins.php
24.339 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Promos.php
1.105 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Refresh.php
5.55 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
RestApi.php
36.425 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
RevenueAttribution.php
2.966 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Review.php
1.447 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Rules.php
23.44 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Save.php
10.798 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Shortcode.php
3.582 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Sites.php
8.354 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Support.php
8.248 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Type.php
2.438 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Urls.php
8.979 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Utils.php
5.198 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Validate.php
9.063 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
WPForms.php
2.604 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Widget.php
6.496 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
WooCommerce.php
19.576 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
Wordfence.php
5.475 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644
WpErrorException.php
0.697 KB
July 02 2024 06:02:38
hellrfbn / hellrfbn
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF