at path:
ROOT
/
wp-content
/
plugins
/
optinmonster
/
OMAPI
/
ApiKey.php
run:
R
W
Run
EasyDigitalDownloads
DIR
2025-12-13 10:18:03
R
W
Run
Elementor
DIR
2025-12-13 10:18:03
R
W
Run
Integrations
DIR
2025-12-13 10:18:03
R
W
Run
MemberPress
DIR
2025-12-13 10:18:02
R
W
Run
Plugins
DIR
2025-12-13 10:18:03
R
W
Run
Promos
DIR
2025-12-13 10:18:03
R
W
Run
Rules
DIR
2025-12-13 10:18:02
R
W
Run
Shortcodes
DIR
2025-12-13 10:18:03
R
W
Run
WPForms
DIR
2025-12-13 10:18:02
R
W
Run
WooCommerce
DIR
2025-12-13 10:18:02
R
W
Run
Actions.php
6.96 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Ajax.php
1.46 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Api.php
14.17 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
ApiAuth.php
2.41 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
ApiKey.php
5.08 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
AssetLoader.php
5.59 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
BaseRestApi.php
6.65 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Blocks.php
12.81 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
ClassicEditor.php
6.92 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
ConstantContact.php
7.42 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Debug.php
4.35 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
EasyDigitalDownloads.php
9.33 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Elementor.php
5.36 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Inserter.php
11.29 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
InstallSkin.php
1.35 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
InstallSkinCompat.php
1.36 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
MailPoet.php
13.36 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
MemberPress.php
4.12 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Menu.php
16.88 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Notifications.php
18.47 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
OmuApi.php
4.03 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Output.php
24.28 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Pages.php
17.61 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Partners.php
5.43 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Plugins.php
24.34 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Promos.php
1.11 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Refresh.php
5.75 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
RestApi.php
38.58 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
RevenueAttribution.php
2.97 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Review.php
1.45 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Rules.php
23.44 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Save.php
10.8 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Shortcode.php
3.58 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Sites.php
8.35 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Support.php
8.25 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Type.php
2.44 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Urls.php
8.64 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Utils.php
7.41 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Validate.php
9.06 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
WPForms.php
2.6 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Welcome.php
4.81 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
Widget.php
6.5 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
WooCommerce.php
19.58 KB
2025-11-20 19:51:54
R
W
Run
Delete
Rename
WpErrorException.php
714 By
2025-11-20 19:51:54
R
W
Run
Delete
Rename
error_log
up
📄
ApiKey.php
Save
<?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(), ) ); } }