/
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/Validate.php
(9266B)
<?php /** * Validate class. * * @since 1.0.0 * * @package OMAPI * @author Thomas Griffin */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Validate class. * * @since 1.0.0 */ class OMAPI_Validate { /** * 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(); // Possibly validate our API credentials. $this->maybe_validate(); // Add validation messages. add_action( 'admin_notices', array( $this, 'notices' ) ); // Add nonce check to dismiss-wp-pointer for the "please connect nag" dismissal. add_action( 'wp_ajax_dismiss-wp-pointer', array( $this, 'validate_please_connect_notice_dismiss' ), 0 ); } /** * Sets our object instance and base class instance. * * @since 1.0.0 */ public function set() { self::$instance = $this; $this->base = OMAPI::get_instance(); } /** * Maybe validate our API credentials if the transient has expired. * * @since 1.0.0 */ public function maybe_validate() { // Check to see if welcome options have been set. If not, let's delay this check for a day. // Also set a transient so that we know the plugin has been activated. $options = $this->base->get_option(); if ( empty( $options['welcome']['status'] ) || 'welcomed' !== $options['welcome']['status'] ) { set_transient( '_omapi_validate', true, DAY_IN_SECONDS ); return; } // Check if the transient has expired. if ( false !== get_transient( '_omapi_validate' ) ) { return; } // Validate API. $this->validate(); // Provide action to refresh optins. do_action( 'optin_monster_api_validate_api' ); } /** * Validate API credentials. * * @since 1.0.0 */ public function validate() { $creds = $this->base->get_api_credentials(); if ( empty( $creds['apikey'] ) && empty( $creds['user'] ) && empty( $creds['key'] ) ) { return; } // Check for new apikey and only use the old user/key if we don't have it. if ( empty( $creds['apikey'] ) ) { $api = new OMAPI_Api( 'validate/', array( 'user' => ! empty( $creds['user'] ) ? $creds['user'] : '', 'key' => ! empty( $creds['key'] ) ? $creds['key'] : '', ) ); } else { $api = new OMAPI_Api( 'verify/', array( 'apikey' => $creds['apikey'] ) ); } $ret = $api->request(); if ( is_wp_error( $ret ) ) { $option = $this->base->get_option(); $type = $ret->get_error_code(); switch ( $type ) { case 'missing': case 'auth': // Set option values. $option['is_invalid'] = true; $option['is_expired'] = false; $option['is_disabled'] = false; break; case 'disabled': // Set option values. $option['is_invalid'] = false; $option['is_expired'] = false; $option['is_disabled'] = true; break; case 'expired': // Set option values. $option['is_invalid'] = false; $option['is_expired'] = true; $option['is_disabled'] = false; break; default: break; } // Update option. update_option( 'optin_monster_api', $option ); // Set our transient to run again in an hour. set_transient( '_omapi_validate', true, HOUR_IN_SECONDS ); } else { set_transient( '_omapi_validate', true, DAY_IN_SECONDS ); } } /** * Outputs any validation notices. * * @since 1.0.0 */ public function notices() { global $pagenow; // phpcs:ignore WordPress.Security.NonceVerification.Recommended $page = isset( $_GET['page'] ) ? sanitize_key( wp_unslash( $_GET['page'] ) ) : ''; $option = $this->base->get_option(); if ( isset( $option['is_invalid'] ) && $option['is_invalid'] ) { if ( 'optin-monster-dashboard' !== $page ) { if ( ! OMAPI_Partners::has_partner_url() ) { echo '<div class="notice notice-error"><p>' . esc_html__( 'There was an error verifying your OptinMonster API credentials. They are either missing or they are no longer valid.', 'optin-monster-api' ) . '</p>'; echo '<p><a href="' . esc_url_raw( OMAPI_Urls::settings() ) . '" class="button button-primary button-large omapi-new-optin" title="' . esc_html__( 'View API Settings', 'optin-monster-api' ) . '">' . esc_html__( 'View API Settings', 'optin-monster-api' ) . '</a></p></div>'; } } } elseif ( isset( $option['is_disabled'] ) && $option['is_disabled'] ) { echo '<div class="notice notice-error"><p>' . esc_html__( 'The subscription to this OptinMonster account has been disabled, likely due to a refund or other administrator action. Please contact OptinMonster support to resolve this issue.', 'optin-monster-api' ) . '</p>'; echo '<p><a href="' . esc_url( OPTINMONSTER_APP_URL ) . '/account/support/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpdashboard" class="button button-primary button-large omapi-new-optin" title="' . esc_html__( 'Contact OptinMonster Support', 'optin-monster-api' ) . '" target="_blank">' . esc_html__( 'Contact Support', 'optin-monster-api' ) . '</a></p></div>'; } elseif ( isset( $option['is_expired'] ) && $option['is_expired'] ) { echo '<div class="notice notice-error"><p>' . esc_html__( 'The subscription to this OptinMonster account has expired. Please renew your subscription to use the OptinMonster API.', 'optin-monster-api' ) . '</p>'; echo '<p><a href="' . esc_url( OPTINMONSTER_APP_URL ) . '/account/billing/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpdashboard" class="button button-primary button-large omapi-new-optin" title="' . esc_html__( 'Renew Subscription', 'optin-monster-api' ) . '" target="_blank">' . esc_html__( 'Renew Subscription', 'optin-monster-api' ) . '</a></p></div>'; } elseif ( $this->should_user_see_connect_nag() ) { echo ' <div id="omapi-please-connect-notice" class="notice notice-success is-dismissible"> <h3 style="padding:2px;font-weight:normal;margin:.5em 0 0;">' . esc_html__( 'Get More Email Subscribers with OptinMonster', 'optin-monster-api' ) . '</h3> <p>' . esc_html__( 'Please connect to or create an OptinMonster account to start using OptinMonster. This will enable you to start turning website visitors into subscribers & customers.', 'optin-monster-api' ) . ' </p> <p> <a href="' . esc_url_raw( OMAPI_Urls::onboarding() ) . '" class="button button-primary button-large omapi-new-optin" title="' . esc_html__( 'Get Started', 'optin-monster-api' ) . '">' . esc_html__( 'Get Started', 'optin-monster-api' ) . '</a> <a style="margin-left:8px" href="' . esc_url( OMAPI_Urls::onboarding() ) . '" title="' . esc_attr__( 'Learn More', 'optin-monster-api' ) . '">' . esc_html__( 'Learn More →', 'optin-monster-api' ) . '</a> </p> </div> '; } } /** * Script to hide the please connect nag */ public function hide_connect_notice_script() { ?> <script type="text/javascript"> jQuery(document).on( 'click', '#omapi-please-connect-notice .notice-dismiss', function( event ) { event.preventDefault(); // Set the pointer to be closed for this user jQuery.post( ajaxurl, { pointer: 'omapi_please_connect_notice', _wpnonce: '<?php echo esc_js( wp_create_nonce( 'dismiss_pointer' ) ); ?>', action: 'dismiss-wp-pointer' }); jQuery( '#omapi-please-connect-notice' ).fadeTo( 100, 0, function() { jQuery( this ).slideUp(100, function() { jQuery( this ).remove() }) }); }); </script> <?php } /** * Check user meta and see if they have previously dismissed the please connect nag * * @return bool default false and true only if the 'omapi_please_connect_notice' is not in the wp dismissed pointers usermeta */ public function should_user_see_connect_nag() { global $pagenow; // phpcs:ignore WordPress.Security.NonceVerification.Recommended $page = isset( $_GET['page'] ) ? sanitize_key( wp_unslash( $_GET['page'] ) ) : ''; if ( $this->base->menu->is_om_page() || 'index.php' === $pagenow || $this->base->get_api_credentials() ) { return false; } // Get array list of dismissed pointers for current user and convert it to array. $dismissed_pointers = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ); // Check if our pointer is not among dismissed ones and that the user should see this. if ( ! in_array( 'omapi_please_connect_notice', $dismissed_pointers, true ) && current_user_can( 'activate_plugins' ) ) { // Add footer script to save when user dismisses. add_action( 'admin_print_footer_scripts', array( $this, 'hide_connect_notice_script' ) ); return true; } return false; } /** * Validates the please connect notice dismissal. * * @since 2.16.0 * * @return void */ public function validate_please_connect_notice_dismiss() { if ( isset( $_POST['pointer'] ) && 'omapi_please_connect_notice' !== $_POST['pointer'] ) { return; } check_ajax_referer( 'dismiss_pointer' ); } }
Save
cmd:
run