/
home
/
techb158
/
public_html
/
wp-content
/
plugins
/
optinmonster
/
OMAPI
/
/home/techb158/public_html/wp-content/plugins/optinmonster/OMAPI
mkdir
upload
Name
Size
Mode
Actions
EasyDigitalDownloads/
-
0755
rm
Elementor/
-
0755
rm
Integrations/
-
0755
rm
MemberPress/
-
0755
rm
Plugins/
-
0755
rm
Promos/
-
0755
rm
Rules/
-
0755
rm
Shortcodes/
-
0755
rm
WooCommerce/
-
0755
rm
WPForms/
-
0755
rm
Actions.php
7970
0666
edit
dl
rm
Ajax.php
1494
0666
edit
dl
rm
Api.php
14507
0666
edit
dl
rm
ApiAuth.php
2463
0666
edit
dl
rm
ApiKey.php
5203
0666
edit
dl
rm
AssetLoader.php
5489
0666
edit
dl
rm
BaseRestApi.php
6889
0666
edit
dl
rm
Blocks.php
13105
0666
edit
dl
rm
ClassicEditor.php
7084
0666
edit
dl
rm
ConstantContact.php
7591
0666
edit
dl
rm
Debug.php
4592
0666
edit
dl
rm
EasyDigitalDownloads.php
9553
0666
edit
dl
rm
Elementor.php
5493
0666
edit
dl
rm
Inserter.php
11571
0666
edit
dl
rm
InstallSkin.php
1386
0666
edit
dl
rm
InstallSkinCompat.php
1395
0666
edit
dl
rm
MailPoet.php
13974
0666
edit
dl
rm
MemberPress.php
4216
0666
edit
dl
rm
Menu.php
17301
0666
edit
dl
rm
Notifications.php
18910
0666
edit
dl
rm
OmuApi.php
4122
0666
edit
dl
rm
Output.php
25848
0666
edit
dl
rm
Pages.php
18019
0666
edit
dl
rm
Partners.php
5557
0666
edit
dl
rm
Plugins.php
24923
0666
edit
dl
rm
Promos.php
1131
0666
edit
dl
rm
Refresh.php
6553
0666
edit
dl
rm
RestApi.php
44190
0666
edit
dl
rm
RevenueAttribution.php
3037
0666
edit
dl
rm
Review.php
1482
0666
edit
dl
rm
Rules.php
24000
0666
edit
dl
rm
Save.php
11999
0666
edit
dl
rm
Shortcode.php
3667
0666
edit
dl
rm
Sites.php
8553
0666
edit
dl
rm
Support.php
9192
0666
edit
dl
rm
Type.php
3722
0666
edit
dl
rm
Urls.php
8951
0666
edit
dl
rm
Utils.php
7589
0666
edit
dl
rm
Validate.php
9266
0666
edit
dl
rm
Welcome.php
4929
0666
edit
dl
rm
Widget.php
6662
0666
edit
dl
rm
WooCommerce.php
20045
0666
edit
dl
rm
WpErrorException.php
714
0666
edit
dl
rm
WPForms.php
2665
0666
edit
dl
rm
Edit:
/home/techb158/public_html/wp-content/plugins/optinmonster/OMAPI/Actions.php
(7970B)
<?php /** * Actions class. * * @since 1.0.0 * * @package OMAPI * @author Thomas Griffin */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Actions class. * * @since 1.0.0 */ class OMAPI_Actions { /** * 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; /** * Primary class constructor. * * @since 1.0.0 */ public function __construct() { // Set our object. $this->set(); // Add validation messages. add_action( 'admin_init', array( $this, 'maybe_fetch_missing_data_admin' ), 99 ); // We can run upgrade routines on cron runs and admin requests. if ( defined( 'DOING_CRON' ) && DOING_CRON ) { add_action( 'optin_monster_api_global_loaded', array( $this, 'check_upgrade_routines' ), 99 ); } else { add_action( 'admin_init', array( $this, 'check_upgrade_routines_admin' ), 100 ); } } /** * Sets our object instance and base class instance. * * @since 1.0.0 */ public function set() { self::$instance = $this; $this->base = OMAPI::get_instance(); } /** * The admin_init entry point for the data backfill. * * The admin_init hook fires for any logged-in user, so gate the backfill * here. Other callers (the notifications REST route) authorize themselves * before calling maybe_fetch_missing_data(), so the guard lives on this * wrapper rather than on the shared method (mirrors * check_upgrade_routines_admin()). * * @since 2.17.0 * * @return void */ public function maybe_fetch_missing_data_admin() { if ( ! $this->base->can_access() ) { return; } $this->maybe_fetch_missing_data(); } /** * When the plugin is first installed * Or Migrated from a pre-1.8.0 version * We need to fetch some additional data * * Shared implementation — callers are responsible for the capability check * (admin_init via maybe_fetch_missing_data_admin(), REST via its route * permission callback). * * @since 1.8.0 * * @return void */ public function maybe_fetch_missing_data() { $creds = $this->base->get_api_credentials(); $option = $this->base->get_option(); $changed = false; // Set some onboarding connection related variables. // phpcs:ignore WordPress.Security.NonceVerification.Recommended $onboarding_connect = empty( $_GET['onboardingConnect'] ) ? 'false' : sanitize_key( wp_unslash( $_GET['onboardingConnect'] ) ); $connection_token = $this->base->get_option( 'connectionToken' ); $is_onboarding_connect = ! empty( $connection_token ) && wp_validate_boolean( $onboarding_connect ); // Determine if we're missing API key credentials. $missing_api_key = ! OMAPI_ApiKey::has_credentials(); // If we don't have an API Key yet, we can't fetch anything else. if ( $missing_api_key && ! $is_onboarding_connect ) { return; } // Set the onboarding credentials if we don't already have credentials. if ( empty( $creds ) ) { $creds = array( 'onboardingApiKey' => 'omwpoct_' . $connection_token ); } // Fetch the userId and accountId, if we don't have them. if ( empty( $option['userId'] ) || empty( $option['accountId'] ) || empty( $option['accountUserId'] ) || empty( $option['currentLevel'] ) || empty( $option['plan'] ) || empty( $creds['apikey'] ) ) { $result = OMAPI_Api::fetch_me( $option, $creds ); if ( ! is_wp_error( $result ) ) { $changed = true; $option = $result; } } if ( $changed && ! empty( $option['connectionToken'] ) ) { unset( $option['connectionToken'] ); } // Fetch the SiteIds for this site, if we don't have them. if ( empty( $option['siteIds'] ) || empty( $option['siteId'] ) || $this->site_ids_are_numeric( $option['siteIds'] ) || ! isset( $option['apiCname'] ) ) { $result = $this->base->sites->fetch(); if ( ! is_wp_error( $result ) ) { $option = array_merge( $option, $result ); $changed = true; } } // Only update the option if we've changed something. if ( $changed ) { update_option( 'optin_monster_api', $option ); } } /** * In one version of the Plugin, we fetched the numeric SiteIds, * But we actually needed the alphanumeric SiteIds. * * So we use this check to determine if we need to re-fetch Site Ids. * * @param array $site_ids Site ids to convert. * @return bool True if the ids are numeric. */ protected function site_ids_are_numeric( $site_ids ) { foreach ( $site_ids as $id ) { if ( ! ctype_digit( (string) $id ) ) { return false; } } return true; } /** * Runs upgrade routines in the admin, and refreshes the page if needed * (if options changed, etc). * * @since 2.6.5 * * @return void */ public function check_upgrade_routines_admin() { // Cron uses check_upgrade_routines() directly (no user); this admin // wrapper runs on admin_init for any logged-in user, so gate it. if ( ! $this->base->can_access() ) { return; } $refresh = $this->check_upgrade_routines(); if ( $refresh ) { wp_safe_redirect( esc_url_raw( add_query_arg( 'om', 1 ) ) ); exit; } } /** * Handles running the upgrade routines for each version. * * @since 2.6.5 * * @return bool Whether page should be refreshed. */ public function check_upgrade_routines() { $in_progress = get_option( 'optinmonster_current_upgrade' ); if ( ! empty( $in_progress ) ) { return false; } $refresh = false; $plugin_version = $this->base->version; $upgrade_completed = get_option( 'optinmonster_upgrade_completed', 0 ); $upgrade_map = array( '2.6.5' => 'v265_upgrades', '2.9.0' => 'v290_upgrades', ); foreach ( $upgrade_map as $upgrade_version => $method ) { if ( version_compare( $plugin_version, $upgrade_version, '>=' ) && version_compare( $upgrade_completed, $upgrade_version, '<' ) ) { update_option( 'optinmonster_current_upgrade', $upgrade_version ); $refresh = $this->{$method}(); delete_option( 'optinmonster_current_upgrade' ); } } if ( (string) $plugin_version !== (string) $upgrade_completed ) { $this->base->notifications->update(); update_option( 'optinmonster_upgrade_completed', $plugin_version ); } return $refresh; } /** * Upgrades for version 2.6.5. * * @since 2.6.5 * * @return bool Whether upgrade routine was completed successfully. */ public function v265_upgrades() { $creds = $this->base->get_api_credentials(); // Missing previous api key to verify. if ( empty( $creds['apikey'] ) ) { return false; } $api = OMAPI_Api::build( 'v1', 'verify/', 'POST', $creds ); $results = $api->request(); // Current key is fine. if ( ! is_wp_error( $results ) ) { return false; } $error_code = ! empty( $api->response_body->code ) ? $api->response_body->code : 0; if ( in_array( (string) $api->response_code, array( '410', '401', '424', '403' ), true ) && '10051' === (string) $error_code ) { OMAPI_ApiKey::regenerate( $creds['apikey'] ); // Regenerated, so we want to refresh the page. return true; } // No luck. return false; } /** * Upgrades for version 2.9.0. * * This adds an admin_url to the site. * * @since 2.9.0 * * @return bool Whether upgrade routine was completed successfully. */ public function v290_upgrades() { $creds = $this->base->get_api_credentials(); $site_id = $this->base->get_site_id(); if ( empty( $creds['apikey'] ) || empty( $site_id ) ) { return false; } $args = array( 'admin_url' => esc_url_raw( get_admin_url() ), ); $api = OMAPI_Api::build( 'v2', 'sites/' . $site_id, 'PUT', $creds ); $results = $api->request( $args ); return ! is_wp_error( $results ); } }
Save
cmd:
run