at path:
ROOT
/
wp-content
/
plugins
/
optinmonster
/
OMAPI
/
Urls.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
📄
Urls.php
Save
<?php /** * Urls class. * * @since 2.2.0 * * @package OMAPI * @author Justin Sternberg */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Urls class. * * @since 2.2.0 */ class OMAPI_Urls { /** * Get the settings url. * * @since 2.2.0 * * @param array $args Array of query args. * * @return string */ public static function settings( $args = array() ) { return self::om_admin( 'settings', $args ); } /** * Get the campaigns url. * * @since 2.2.0 * * @param array $args Array of query args. * * @return string */ public static function campaigns( $args = array() ) { return self::om_admin( 'campaigns', $args ); } /** * Get the templates url. * * @since 2.2.0 * * @param array $args Array of query args. * * @return string */ public static function templates( $args = array() ) { return self::om_admin( 'templates', $args ); } /** * Get the playbooks url. * * @since 2.12.0 * * @param array $args Array of query args. * * @return string */ public static function playbooks( $args = array() ) { return self::om_admin( 'playbooks', $args ); } /** * Get the OM wizard url. * * @since 2.2.0 * * @return string */ public static function wizard() { return self::dashboard( array( 'onboarding' => true ) ); } /** * Get the contextual OM dashboard url. * * @since 2.2.0 * * @param array $args Array of query args. * * @return string */ public static function dashboard( $args = array() ) { return self::om_admin( 'dashboard', $args ); } /** * Get the contextual OM university url. * * @since 2.13.8 * * @param array $args Array of query args. * * @return string */ public static function university( $args = array() ) { return self::om_admin( 'university', $args ); } /** * Get the campaign output settings edit url. * * @since 2.2.0 * * @param string $campaign_slug The campaign slug to edit. * @param array $args Array of query args. * * @return string */ public static function campaign_output_settings( $campaign_slug, $args = array() ) { $args = array_merge( $args, array( 'campaignId' => $campaign_slug ) ); return self::campaigns( $args ); } /** * Get the OM onboarding dashboard url. * * @since 2.2.0 * * @return string */ public static function onboarding() { return self::wizard(); } /** * Get a link to an OM admin page. * * @since 2.2.0 * * @param string $page Page shortened slug. * @param array $args Array of query args. * * @return string */ public static function om_admin( $page, $args ) { $defaults = array( 'page' => 'optin-monster-' . $page, ); return self::admin( wp_parse_args( $args, $defaults ) ); } /** * Get an admin page url. * * @since 2.2.0 * * @param array $args Array of query args. * * @return string */ public static function admin( $args = array() ) { $url = add_query_arg( $args, admin_url( 'admin.php' ) ); return esc_url_raw( $url ); } /** * Get app url, with proper query args set to ensure going to correct account, and setting return * query arg to come back (if relevant on the destination page). * * @since 2.2.0 * * @param string $path The path on the app. * @param string $return_url Url to return. Will default to wp_get_referer(). * * @return string The app url. */ public static function om_app( $path, $return_url = '' ) { $app_url = OPTINMONSTER_APP_URL . '/'; $final_destination = $app_url . $path; if ( empty( $return_url ) ) { $return_url = wp_get_referer(); if ( empty( $return_url ) ) { $return_url = self::dashboard(); } } $return_url = rawurlencode( $return_url ); $final_destination = add_query_arg( 'return', $return_url, $final_destination ); $url = add_query_arg( 'redirect_to', rawurlencode( $final_destination ), $app_url ); $account_id = OMAPI::get_instance()->get_option( 'accountUserId' ); if ( ! empty( $account_id ) ) { $url = add_query_arg( 'accountId', $account_id, $url ); } return $url; } /** * Get upgrade url, with utm_medium param and optional feature. * * @since 2.4.0 * * @param string $utm_medium The utm_medium query param. * @param string $feature The feature to pass to the upgrade page. * @param string $return_url Url to return. Will default to wp_get_referer(). * @param array $args Additional query args. * * @return string The upgrade url. */ public static function upgrade( $utm_medium, $feature = 'none', $return_url = '', $args = array() ) { $args = self::upgrade_params( $utm_medium, $feature, $args ); $path = add_query_arg( $args, 'account/wp-upgrade/' ); return self::om_app( $path, $return_url ); } /** * Get the query args for the upgrade url. * * @since 2.15.0 * * @param string $utm_medium The utm_medium query param. * @param string $feature The feature to pass to the upgrade page. * @param array $args Additional query args. * * @return array The query args. */ public static function upgrade_params( $utm_medium, $feature = 'none', $args = array() ) { $defaults = wp_parse_args( self::get_partner_params( OPTINMONSTER_APP_URL . '/account/wp-upgrade/' ), array( 'utm_source' => 'WordPress', 'utm_medium' => $utm_medium, 'utm_campaign' => 'Plugin', 'feature' => $feature, ) ); foreach ( $defaults as $key => $value ) { if ( null === $value ) { unset( $defaults[ $key ] ); } } return wp_parse_args( $args, $defaults ); } /** * Get marketing url, with utm_medium params. * * @since 2.11.0 * * @param string $path The path on the app. * @param array $args Additional query args. * * @return string The marketing url. */ public static function marketing( $path = '', $args = array() ) { $url = sprintf( OPTINMONSTER_URL . '/%1$s', $path ); $defaults = wp_parse_args( self::get_partner_params( $url ), array( 'utm_source' => 'WordPress', 'utm_medium' => '', 'utm_campaign' => 'Plugin', ) ); $args = wp_parse_args( $args, $defaults ); return add_query_arg( $args, $url ); } /** * Returns the API credentials for OptinMonster. * * @since 2.2.0 * * @return string The API url to use for embedding on the page. */ public static function om_api() { $custom_api_url = OMAPI::get_instance()->get_option( 'customApiUrl' ); return ! empty( $custom_api_url ) ? $custom_api_url : OPTINMONSTER_APIJS_URL; } /** * Sets the partner id param if found, and parses the partner url for additional args to set. * * @since 2.15.0 * * @param string $destination_url The destination url to compare against. * * @return array The additional args. */ protected static function get_partner_params( $destination_url = '' ) { $args = array(); // Next, let's parse the partner url for additional query args // stuffed on the urllink query arg redirect url. $partner_url = OMAPI_Partners::has_partner_url(); if ( ! $partner_url || false === strpos( $partner_url, 'urllink' ) ) { return $args; } // No params, no problem. $parsed = wp_parse_url( $partner_url ); if ( empty( $parsed['query'] ) ) { return $args; } // No urllink param, do not pass go, do not collect $200. $query = wp_parse_args( $parsed['query'] ); if ( empty( $query['urllink'] ) ) { return $args; } // Normalize the url. $url = urldecode( $query['urllink'] ); $url = false === strpos( $url, 'http' ) ? 'https://' . $url : str_replace( 'http://', 'https://', $url ); // Now let's make sure the url matches the destination url, // before we go attaching its query args. if ( $destination_url && rtrim( $destination_url, '/' ) && 0 !== stripos( $url, $destination_url ) ) { return $args; } // No args, do not pass go, do not collect $200. $bits = wp_parse_url( $url ); if ( empty( $bits['query'] ) ) { return $args; } $query = wp_parse_args( $bits['query'] ); if ( ! empty( $query ) ) { // Ok, let's add the found query args to the args array. $args = wp_parse_args( $query, $args ); } return $args; } /** * Filters the `allowed_redirect_hosts`. * * Adds the OptinMonster app and OptinMonster site to the allowed hosts. * * @since 2.16.3 * * @param array $hosts Array of allowed hosts. * * @return array The allowed hosts. */ public static function allowed_redirect_hosts( $hosts = array() ) { if ( ! is_array( $hosts ) ) { $hosts = array(); } $hosts[] = str_replace( 'https://', '', OPTINMONSTER_APP_URL ); $hosts[] = str_replace( 'https://', '', OPTINMONSTER_URL ); return $hosts; } }