/home/techb158/public_html/wp-content/plugins/optinmonster/OMAPI
NameSizeModeActions
EasyDigitalDownloads/-0755rm
Elementor/-0755rm
Integrations/-0755rm
MemberPress/-0755rm
Plugins/-0755rm
Promos/-0755rm
Rules/-0755rm
Shortcodes/-0755rm
WooCommerce/-0755rm
WPForms/-0755rm
Actions.php79700666editdlrm
Ajax.php14940666editdlrm
Api.php145070666editdlrm
ApiAuth.php24630666editdlrm
ApiKey.php52030666editdlrm
AssetLoader.php54890666editdlrm
BaseRestApi.php68890666editdlrm
Blocks.php131050666editdlrm
ClassicEditor.php70840666editdlrm
ConstantContact.php75910666editdlrm
Debug.php45920666editdlrm
EasyDigitalDownloads.php95530666editdlrm
Elementor.php54930666editdlrm
Inserter.php115710666editdlrm
InstallSkin.php13860666editdlrm
InstallSkinCompat.php13950666editdlrm
MailPoet.php139740666editdlrm
MemberPress.php42160666editdlrm
Menu.php173010666editdlrm
Notifications.php189100666editdlrm
OmuApi.php41220666editdlrm
Output.php258480666editdlrm
Pages.php180190666editdlrm
Partners.php55570666editdlrm
Plugins.php249230666editdlrm
Promos.php11310666editdlrm
Refresh.php65530666editdlrm
RestApi.php441900666editdlrm
RevenueAttribution.php30370666editdlrm
Review.php14820666editdlrm
Rules.php240000666editdlrm
Save.php119990666editdlrm
Shortcode.php36670666editdlrm
Sites.php85530666editdlrm
Support.php91920666editdlrm
Type.php37220666editdlrm
Urls.php89510666editdlrm
Utils.php75890666editdlrm
Validate.php92660666editdlrm
Welcome.php49290666editdlrm
Widget.php66620666editdlrm
WooCommerce.php200450666editdlrm
WpErrorException.php7140666editdlrm
WPForms.php26650666editdlrm
Edit: /home/techb158/public_html/wp-content/plugins/optinmonster/OMAPI/Validate.php (9266B)
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 '

' . esc_html__( 'There was an error verifying your OptinMonster API credentials. They are either missing or they are no longer valid.', 'optin-monster-api' ) . '

'; echo '

' . esc_html__( 'View API Settings', 'optin-monster-api' ) . '

'; } } } elseif ( isset( $option['is_disabled'] ) && $option['is_disabled'] ) { echo '

' . 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' ) . '

'; echo '

' . esc_html__( 'Contact Support', 'optin-monster-api' ) . '

'; } elseif ( isset( $option['is_expired'] ) && $option['is_expired'] ) { echo '

' . esc_html__( 'The subscription to this OptinMonster account has expired. Please renew your subscription to use the OptinMonster API.', 'optin-monster-api' ) . '

'; echo '

' . esc_html__( 'Renew Subscription', 'optin-monster-api' ) . '

'; } elseif ( $this->should_user_see_connect_nag() ) { echo '

' . esc_html__( 'Get More Email Subscribers with OptinMonster', 'optin-monster-api' ) . '

' . 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' ) . '

' . esc_html__( 'Get Started', 'optin-monster-api' ) . ' ' . esc_html__( 'Learn More →', 'optin-monster-api' ) . '

'; } } /** * Script to hide the please connect nag */ public function hide_connect_notice_script() { ?> 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' ); } }