SILENT KILLERPanel

Current Path: > home > codekrsu > > escapematrixonline.com > wp-content > plugins > optinmonster > OMAPI


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: /home/codekrsu//escapematrixonline.com/wp-content/plugins/optinmonster/OMAPI

NameTypeSizeLast ModifiedActions
EasyDigitalDownloads Directory - -
Elementor Directory - -
Integrations Directory - -
MemberPress Directory - -
Plugins Directory - -
Promos Directory - -
Rules Directory - -
Shortcodes Directory - -
WPForms Directory - -
WooCommerce Directory - -
Actions.php File 7126 bytes February 25 2025 01:06:30.
Ajax.php File 1494 bytes November 17 2021 04:02:26.
Api.php File 14508 bytes February 25 2025 01:06:30.
ApiAuth.php File 2463 bytes October 07 2021 23:34:50.
ApiKey.php File 5205 bytes July 01 2024 22:14:00.
AssetLoader.php File 5721 bytes April 01 2021 19:57:40.
BaseRestApi.php File 6807 bytes October 15 2024 19:52:30.
Blocks.php File 13118 bytes March 26 2025 18:07:30.
ClassicEditor.php File 7085 bytes July 19 2022 01:42:26.
ConstantContact.php File 7602 bytes July 01 2024 22:14:00.
Debug.php File 4453 bytes July 01 2024 22:14:00.
EasyDigitalDownloads.php File 9553 bytes July 01 2024 22:14:00.
Elementor.php File 5493 bytes January 18 2023 22:34:56.
Inserter.php File 11562 bytes September 14 2022 06:35:44.
InstallSkin.php File 1386 bytes January 20 2021 22:11:00.
InstallSkinCompat.php File 1395 bytes January 20 2021 22:11:00.
MailPoet.php File 13680 bytes July 01 2024 22:14:00.
MemberPress.php File 4216 bytes June 23 2023 01:24:22.
Menu.php File 15787 bytes November 27 2024 23:45:46.
Notifications.php File 18910 bytes October 15 2024 19:52:30.
OmuApi.php File 4122 bytes October 27 2021 22:35:34.
Output.php File 24860 bytes September 16 2024 23:28:26.
Pages.php File 17172 bytes March 31 2025 18:30:04.
Partners.php File 4805 bytes July 01 2024 22:14:00.
Plugins.php File 24923 bytes April 23 2024 17:54:30.
Promos.php File 1132 bytes September 14 2022 06:35:44.
Refresh.php File 5891 bytes March 31 2025 18:30:04.
RestApi.php File 39506 bytes October 15 2024 19:52:30.
RevenueAttribution.php File 3037 bytes May 17 2022 18:55:22.
Review.php File 1482 bytes September 08 2021 19:22:54.
Rules.php File 24003 bytes July 01 2024 22:14:00.
Save.php File 11057 bytes October 13 2023 01:19:08.
Shortcode.php File 3668 bytes November 30 2021 23:04:18.
Sites.php File 8554 bytes July 01 2024 22:14:00.
Support.php File 8446 bytes February 25 2025 01:06:30.
Type.php File 2496 bytes February 11 2023 00:30:54.
Urls.php File 8996 bytes November 13 2024 02:13:58.
Utils.php File 7590 bytes March 31 2025 18:30:04.
Validate.php File 9280 bytes February 22 2024 23:03:38.
WPForms.php File 2666 bytes July 27 2023 00:06:52.
Welcome.php File 4930 bytes November 17 2021 04:02:26.
Widget.php File 6652 bytes November 17 2021 04:02:26.
WooCommerce.php File 20046 bytes July 01 2024 22:14:00.
Wordfence.php File 5606 bytes October 09 2024 11:38:44.
WpErrorException.php File 714 bytes November 17 2020 01:51:02.

Reading File: /home/codekrsu//escapematrixonline.com/wp-content/plugins/optinmonster/OMAPI/ApiKey.php

<?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(),
				)
			);
	}

}


SILENT KILLER Tool