File Editor
Directories:
.. (Back)
EasyDigitalDownloads
Elementor
Integrations
MemberPress
Plugins
Promos
Rules
Shortcodes
WPForms
WooCommerce
Files:
Actions.php
Ajax.php
Api.php
ApiAuth.php
ApiKey.php
AssetLoader.php
BaseRestApi.php
Blocks.php
ClassicEditor.php
ConstantContact.php
Debug.php
EasyDigitalDownloads.php
Elementor.php
Inserter.php
InstallSkin.php
InstallSkinCompat.php
MailPoet.php
MemberPress.php
Menu.php
Notifications.php
OmuApi.php
Output.php
Pages.php
Partners.php
Plugins.php
Promos.php
Refresh.php
RestApi.php
RevenueAttribution.php
Review.php
Rules.php
Save.php
Shortcode.php
Sites.php
Support.php
Type.php
Urls.php
Utils.php
Validate.php
WPForms.php
Welcome.php
Widget.php
WooCommerce.php
Wordfence.php
WpErrorException.php
Create New File
Create
Edit File: Partners.php
<?php /** * Partners class. * * @since 2.0.0 * * @package OMAPI * @author Justin Sternberg */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * The Partners class. * * @since 2.0.0 */ class OMAPI_Partners { /** * The OM landing page url. * * @since 1.8.4 */ const LANDING_URL = 'https://optinmonster.com/wp/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpdashboard'; /** * The SaS affiliate url. * * @since 2.0.0 */ const SAS_URL = 'https://www.shareasale.com/r.cfm?u=%1$s&b=601672&m=49337&afftrack=&urllink=optinmonster.com'; /** * Get the SAS Partner ID. * * 3 ways to specify an ID, ordered by highest to lowest priority: * - add_filter( 'optinmonster_sas_id', function() { return 1234; } ); * - define( 'OPTINMONSTER_SAS_ID', 1234 ); * - get_option( 'optinmonster_sas_id' ); (with the option being in the * wp_options table) If an ID is present, returns the affiliate link * with the affiliate ID. * * @since 2.0.0 * * @return string */ public static function get_sas_id() { $sas_id = ''; // Check if sas ID is a constant. if ( defined( 'OPTINMONSTER_SAS_ID' ) ) { $sas_id = OPTINMONSTER_SAS_ID; } // Now run any filters that may be on the sas ID. $sas_id = apply_filters( 'optinmonster_sas_id', $sas_id ); /** * If we still don't have a sas ID by this point * check the DB for an option */ if ( empty( $sas_id ) ) { $sas_id = get_option( 'optinmonster_sas_id', $sas_id ); } return $sas_id; } /** * Get the trial Partner ID. * * 3 ways to specify an ID, ordered by highest to lowest priority: * - add_filter( 'optinmonster_trial_id', function() { return 1234; } ); * - define( 'OPTINMONSTER_TRIAL_ID', 1234 ); * - get_option( 'optinmonster_trial_id' ); (with the option being in the * wp_options table) If an ID is present, returns the affiliate link * with the affiliate ID. * * @since 2.0.0 * * @return string */ public static function get_trial_id() { $trial_id = ''; // Check if trial ID is a constant. if ( defined( 'OPTINMONSTER_TRIAL_ID' ) ) { $trial_id = OPTINMONSTER_TRIAL_ID; } // Now run any filters that may be on the trial ID. $trial_id = apply_filters( 'optinmonster_trial_id', $trial_id ); /** * If we still don't have a trial ID by this point * check the DB for an option */ if ( empty( $trial_id ) ) { $trial_id = get_option( 'optinmonster_trial_id', $trial_id ); } return $trial_id; } /** * Get the affiliate url for given id. * * @since 1.8.4 * * @param mixed $partner_id The Partner ID. * * @return string The affilaite url. */ protected static function get_affiliate_url( $partner_id ) { return sprintf( self::SAS_URL, rawurlencode( trim( $partner_id ) ) ); } /** * Get the partner url. * * Not used directly, but parsed for query args. * * @since 2.0.0 * * @return boolean */ protected static function get_partner_url() { $id = self::get_trial_id(); $type = 'trial'; if ( empty( $id ) ) { $id = self::get_sas_id(); $type = 'sas'; } // Return the regular WP landing page by default. $url = self::LANDING_URL; // Return the trial link if we have a trial ID. if ( ! empty( $id ) ) { $url = self::get_affiliate_url( $id ); } return apply_filters( 'optin_monster_action_link', $url, array( 'type' => $type, 'id' => $id, ) ); } /** * Returns partner url, if it exists. * * Not used directly, but parsed for query args. * * @since 2.0.0 * * @return string|boolean */ public static function has_partner_url() { $url = self::get_partner_url(); return false === strpos( $url, 'optinmonster.com/wp' ) ? $url : false; } /** * Get the Partner ID. * * @since 2.0.0 * @since 2.15.0 Fallback to parsing the partner url for the ID. * * @return string */ public static function get_id() { $id = self::get_trial_id(); if ( empty( $id ) ) { $id = self::get_sas_id(); } if ( empty( $id ) ) { // Try to get the ID from the partner url. $url = self::has_partner_url(); if ( $url ) { $parsed = parse_url( $url ); if ( ! empty( $parsed['host'] ) // Only get the ID if it's a shareasale url. && false !== stripos( $parsed['host'], 'shareasale.com' ) && ! empty( $parsed['query'] ) ) { $args = wp_parse_args( $parsed['query'] ); if ( ! empty( $args['u'] ) ) { $id = $args['u']; } } } } return $id; } /** * Get the referrer, if stored. * * @since 2.10.0 * * @return string Referrer */ public static function referred_by() { return sanitize_text_field( get_option( 'optinmonster_referred_by', '' ) ); } }
Save Changes
Rename File
Rename