/
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/Sites.php
(8553B)
<?php /** * Rest API Class, where we register/execute any REST API Routes * * @since 1.8.0 * @package OMAPI * @author Justin Sternberg */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Rest Api class. * * @since 1.8.0 */ class OMAPI_Sites { /** * Holds the class object. * * @since 2.3.0 * * @var object */ public static $instance; /** * Path to the file. * * @since 2.3.0 * * @var string */ public $file = __FILE__; /** * The Base OMAPI Object * * @since 1.8.0 * * @var OMAPI */ protected $base; /** * Sets our object instance and base class instance. * * @since 1.8.0 */ public function __construct() { self::$instance = $this; $this->base = OMAPI::get_instance(); } /** * Refresh the site data. * * @since 1.8.0 * * @param string $api_key If we want to use a custom API Key, pass it in. * @param bool $get_cached Whether to get the cached response. Defaults to false. * * @return array|null|WP_Error $sites An array of sites if the request is successful. */ public function fetch( $api_key = '', $get_cached = false ) { $cache_key = 'om_sites' . md5( $api_key ? $api_key : '' ); if ( $get_cached ) { $results = get_transient( $cache_key ); if ( ! empty( $results ) ) { return $results; } } // Delete any cached sites. delete_transient( $cache_key ); $creds = ! empty( $api_key ) ? array( 'apikey' => $api_key ) : array(); $body = OMAPI_Api::build( 'v2', 'sites/origin', 'GET', $creds )->request(); if ( is_wp_error( $body ) ) { return $this->handle_payment_required_error( $body ); } // phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $results = array( 'siteId' => '', 'siteIds' => array(), 'customApiUrl' => '', 'apiCname' => '', ); $domain = $this->get_domain(); $tld = $this->get_tld( $domain ); if ( ! empty( $body->data ) ) { $check_cnames = true; foreach ( $body->data as $site ) { if ( empty( $site->domain ) ) { continue; } $matches = $domain === (string) $site->domain; $wildcard_domain = '*.' === substr( $site->domain, 0, 2 ) && $tld === $this->get_tld( $site->domain ); // Doesn't match, and not a wildcard? Bail. if ( ! $matches && ! $wildcard_domain ) { continue; } $results['siteIds'][] = (string) $site->siteId; // If we don't have a siteId yet, set it to this one. // If we DO already have a siteId and this one is NOT a wildcard, // we want to overwrite with this one. if ( empty( $results['siteId'] ) || ! $wildcard_domain ) { $results['siteId'] = (string) $site->siteId; } // Do we have a custom cnamed api url to use? if ( $check_cnames && $site->settings->enableCustomCnames ) { $found = false; if ( $site->settings->cdnCname && $site->settings->cdnCnameVerified ) { // If we have a custom CNAME, let's enable it and add the data to the output array. $results['customApiUrl'] = 'https://' . $site->settings->cdnUrl . '/app/js/api.min.js'; $found = true; if ( ! empty( $site->settings->apiCname ) && ! empty( $site->settings->apiCnameVerified ) ) { $results['apiCname'] = $site->settings->apiCname; } } // If this isn't a wildcard domain, and we found a custom api url, we don't // need to continue checking cnames. if ( $found && ! $wildcard_domain ) { $check_cnames = false; } } } } if ( empty( $results['siteId'] ) ) { $result = $this->check_existing_site( $creds ); if ( is_wp_error( $result ) ) { return $result; } $site = $this->attempt_create_site( $creds ); if ( is_wp_error( $site ) ) { return $this->handle_payment_required_error( $site ); } // phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase if ( ! empty( $site->siteId ) ) { $results['siteId'] = (string) $site->siteId; // phpcs:enable } } if ( ! is_wp_error( $results ) && ! empty( $results['siteIds'] ) ) { set_transient( $cache_key, $results, 5 * MINUTE_IN_SECONDS ); } // phpcs:enable return $results; } /** * Attempt to create the associated site in the app. * * @since 1.9.10 * * @param array $creds Array of credentials for request. * * @return mixed Site-created response or WP_Error. */ public function attempt_create_site( $creds ) { $settings = OMAPI_Api::get_url_args(); $settings['wordpress'] = 1; $site_args = array( 'domain' => esc_url_raw( site_url() ), 'name' => esc_attr( get_option( 'blogname' ) ), 'settings' => $settings, ); // Create/update the site for this WordPress site. $result = OMAPI_Api::build( 'v2', 'sites', 'POST', $creds ) ->request( $site_args ); return 201 === (int) OMAPI_Api::instance()->response_code ? OMAPI_Api::instance()->response_body : $result; } /** * Get the domain for this WP site. * Borrowed heavily from AwesomeMotive\OptinMonsterApp\Utils\Url * * @since 1.9.10 * * @return string */ public function get_domain() { $url = site_url(); $parsed = wp_parse_url( $url ); $hostname = ! empty( $parsed['host'] ) ? $parsed['host'] : $url; $domain = preg_replace( '/^www\./', '', $hostname ); return $domain; } /** * Get the top-level-domain for the given domain. * * @since 2.0.1 * * @param string $domain Domain to get tld for. * * @return string The tld. */ public function get_tld( $domain ) { $parts = explode( '.', $domain ); $count = count( $parts ); $tld = array_slice( $parts, max( 0, $count - 2 ) ); return implode( '.', $tld ); } /** * Updates the error text when we try to auto-create this WP site, but it fails. * * @since 1.9.10 * * @param WP_Error $error The error object. * * @return WP_Error */ public function handle_payment_required_error( $error ) { $instance = OMAPI_Api::instance(); if ( 402 === (int) $error->get_error_data() && ! empty( $instance->response_body->siteAmount ) ) { $message = sprintf( /* translators: %1$s - Link to account upgrade page, %2$s Link to account page to purchase additional licenses */ __( 'We tried to register your WordPress site with OptinMonster, but You have reached the maximum number of registered sites for your current OptinMonster plan.<br>Additional sites can be added to your account by <a href="%1$s" target="_blank" rel="noopener">upgrading</a> or <a href="%2$s" target="_blank" rel="noopener">purchasing additional site licenses</a>.', 'optin-monster-api' ), esc_url_raw( OPTINMONSTER_APP_URL . '/account/upgrade/?utm_source=app&utm_medium=upsell&utm_campaign=header&feature=sites/' ), esc_url_raw( OPTINMONSTER_APP_URL . '/account/billing/#additional-licenses' ) ); $error = new WP_Error( $error->get_error_code(), $message, array( 'status' => 402 ) ); } return $error; } /** * Check if user has already connected existing site, and return error. * * @since 2.3.0 * * @param array $creds Array of credentials for request. * * @return WP_Error|bool WP_Error if user already has connected site. */ public function check_existing_site( $creds ) { // Check if they already have a registered site. $site_id = $this->base->get_site_id(); if ( empty( $site_id ) ) { return false; } // Now check for that previously-registered site in our API. $body = OMAPI_Api::build( 'v2', "sites/{$site_id}", 'GET', $creds )->request(); if ( empty( $body->name ) ) { return false; } $site_edit_url = OMAPI_Urls::om_app( "sites/{$site_id}/edit/" ); // 'This domain does not match your registered site, %s (%s)' $message = sprintf( /* translators: %s - Current site domain, Link to registered OptinMonster site, name of registered OptinMonster site, domain for registered OptinMonster site */ __( 'This domain (%1$s) does not match your registered site — <a href="%2$s" target="_blank" rel="noopener">%3$s (%4$s)</a>', 'optin-monster-api' ), $this->get_domain(), esc_url_raw( $site_edit_url ), sanitize_text_field( $body->name ), sanitize_text_field( $body->domain ) ); $args = array( 'status' => 404, 'site' => array( 'name' => $body->name, 'domain' => $body->domain, 'editUrl' => $site_edit_url, ), ); return new WP_Error( 'omapp_wrong_site', $message, $args ); } }
Save
cmd:
run