/
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/Support.php
(9192B)
<?php /** * Support Class, handles generating info for support. * * @since 1.9.10 * * @package OMAPI * @author Justin Sternberg */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Rest Api class. * * @since 1.9.10 */ class OMAPI_Support { /** * The Base OMAPI Object * * @since 1.9.10 * * @var OMAPI */ protected $base; /** * Class constructor. * * @since 1.9.10 */ public function __construct() { $this->base = OMAPI::get_instance(); } /** * Combine Support data together. * * @since 1.9.10 * * @param string $format The format to return the data in. * * @return array */ public function get_support_data( $format = 'raw' ) { return array( 'server' => $this->get_server_data( $format ), 'settings' => $this->get_settings_data( $format ), 'campaigns' => $this->get_campaign_data( $format ), ); } /** * Build Current Optin data array to localize * * @since 1.9.10 * * @param string $format The format to return the data in. * * @return array */ public function get_campaign_data( $format = 'raw' ) { $campaigns = $this->base->get_optins( array( 'post_status' => 'any' ) ); $data = array(); if ( empty( $campaigns ) ) { return $data; } foreach ( (array) $campaigns as $campaign ) { if ( empty( $campaign->ID ) ) { continue; } $slug = $campaign->post_name; $design_type = get_post_meta( $campaign->ID, '_omapi_type', true ); $data[ $slug ] = array( 'Campaign Type' => $design_type, 'WordPress ID' => $campaign->ID, 'Associated IDs' => get_post_meta( $campaign->ID, '_omapi_ids', true ), 'Current Status' => get_post_meta( $campaign->ID, '_omapi_enabled', true ) ? 'Enabled' : 'Disabled', 'User Settings' => get_post_meta( $campaign->ID, '_omapi_users', true ), 'Pages to Never show on' => get_post_meta( $campaign->ID, '_omapi_never', true ), 'Pages to Only show on' => get_post_meta( $campaign->ID, '_omapi_only', true ), 'Categories' => get_post_meta( $campaign->ID, '_omapi_categories', true ), 'Taxonomies' => get_post_meta( $campaign->ID, '_omapi_taxonomies', true ), 'Template types to Show on' => get_post_meta( $campaign->ID, '_omapi_show', true ), 'Shortcodes Synced and Recognized' => get_post_meta( $campaign->ID, '_omapi_shortcode', true ) ? OMAPI_Save::decode_shortcode( get_post_meta( $campaign->ID, '_omapi_shortcode_output', true ) ) : 'None recognized', ); if ( OMAPI_Utils::is_inline_type( $design_type ) ) { $data[ $slug ]['Automatic Output Status'] = get_post_meta( $campaign->ID, '_omapi_automatic', true ) ? 'Enabled' : 'Disabled'; $data[ $slug ]['Automatic Output Location'] = get_post_meta( $campaign->ID, '_omapi_auto_location', true ); } if ( 'raw' === $format ) { $data[ $slug ]['raw'] = $this->base->collect_campaign_data( $campaign ); } } return $data; } /** * Build array of server information to localize * * @since 1.9.10 * * @param string $format The format to return the data in. * * @return array */ public function get_server_data( $format = 'raw' ) { if ( ! function_exists( 'get_plugins' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } $theme_data = wp_get_theme(); // phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $theme = 'raw' === $format ? array( 'Name' => $theme_data->Name, 'Author' => $theme_data->Author, 'Author Name' => $theme_data->{'Author Name'}, 'Author URI' => $theme_data->{'Author URI'}, 'Description' => $theme_data->Description, 'Version' => $theme_data->Version, 'Template' => $theme_data->Template, 'Stylesheet' => $theme_data->Stylesheet, 'Template Files' => $theme_data->{'Template Files'}, 'Stylesheet Files' => $theme_data->{'Stylesheet Files'}, 'Template Dir' => $theme_data->{'Template Dir'}, 'Stylesheet Dir' => $theme_data->{'Stylesheet Dir'}, 'Screenshot' => $theme_data->Screenshot, 'Tags' => $theme_data->Tags, 'Theme Root' => $theme_data->{'Theme Root'}, 'Theme Root URI' => $theme_data->{'Theme Root URI'}, 'Parent Theme' => $theme_data->{'Parent Theme'}, ) : $theme_data->Name . ' ' . $theme_data->Version; // phpcs:enable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $active_plugins = get_option( 'active_plugins', array() ); $plugins = 'raw' === $format ? array() : "\n"; foreach ( get_plugins() as $plugin_path => $plugin ) { if ( ! in_array( $plugin_path, $active_plugins, true ) ) { continue; } if ( 'raw' === $format ) { $plugins[] = $plugin; } else { $plugins .= $plugin['Name'] . ': ' . $plugin['Version'] . "\n"; } } $api_ping = wp_remote_request( OPTINMONSTER_API_URL . '/v2/ping' ); $array = array( 'Plugin Version' => esc_html( $this->base->version ), // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 'Server Info' => esc_html( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ?? '' ) ), 'PHP Version' => function_exists( 'phpversion' ) ? esc_html( phpversion() ) : 'Unable to check.', 'Error Log Location' => function_exists( 'ini_get' ) ? ini_get( 'error_log' ) : 'Unable to locate.', 'Default Timezone' => date_default_timezone_get(), 'Site Timezone' => wp_timezone_string(), 'Site Name' => esc_html( get_option( 'blogname' ) ), 'Admin Email' => esc_html( get_site_option( 'admin_email' ) ), 'WordPress Home URL' => esc_url_raw( get_home_url() ), 'WordPress Site URL' => esc_url_raw( get_site_url() ), 'WordPress REST URL' => esc_url_raw( get_rest_url() ), 'WordPress Admin URL' => esc_url_raw( OMAPI_Urls::admin() ), 'WordPress Version' => $GLOBALS['wp_version'], 'Multisite' => is_multisite(), 'Language' => get_locale(), 'API Ping Response' => wp_remote_retrieve_response_code( $api_ping ), 'Active Theme' => $theme, 'Active Plugins' => $plugins, ); if ( 'raw' !== $format ) { $array['Multisite'] = $array['Multisite'] ? 'Multisite Enabled' : 'Not Multisite'; } return $array; } /** * Includes the plugin settings. * * @since 2.4.0 * * @return array Array of plugin settings. */ public function get_settings_data() { $options = $this->base->get_option(); // Remove the optins key. We don't need this in the settings data. unset( $options['optins'] ); // List of keys to mask in the settings array. $sensitive_keys = array( array( 'api', 'apikey' ), array( 'api', 'key' ), array( 'api', 'user' ), array( 'edd', 'key' ), array( 'edd', 'token' ), array( 'woocommerce', 'key_id' ), ); /** * Filters the extra keys array, allowing additional keys to be added. * * @since 2.16.3 * * @param array $extra_keys The list of sensitive keys. Defaults to an empty array. */ $extra_keys = (array) apply_filters( 'optin_monster_redacted_sensitive_keys', array() ); $this->mask_sensitive_data_recursive( $options, array_merge( $sensitive_keys, $extra_keys ) ); return $options; } /** * Recursively mask sensitive data in an array. * * @since 2.16.3 * * @param array $data The data array. * @param array $sensitive_keys The list of sensitive keys. * * @return void */ public function mask_sensitive_data_recursive( &$data, $sensitive_keys = array() ) { foreach ( $sensitive_keys as $path ) { $ref = &$data; $path_count = 0; foreach ( (array) $path as $key ) { ++$path_count; // If the key doesn't exist, break out of the loop. if ( ! isset( $ref[ $key ] ) ) { break; } // Set a reference to the next level of the array. $ref = &$ref[ $key ]; // If we're at the end of the path array, mask the value. if ( count( $path ) === $path_count && ! empty( $ref ) ) { $ref = self::mask_value( (string) $ref ); } } } } /** * Mask a sensitive value, revealing only its first and last two characters. * * Values four characters or shorter are masked entirely: revealing the * leading and trailing two characters would expose the whole value, and * for values shorter than four str_repeat() would also throw a ValueError * on PHP 8.0+ for the negative count it would produce. * * @since 2.17.0 * * @param string $value The value to mask. * * @return string */ public static function mask_value( $value ) { $value = (string) $value; $length = strlen( $value ); // Too short to partially reveal without leaking the whole value; mask entirely. if ( $length <= 4 ) { return str_repeat( '*', $length ); } return substr( $value, 0, 2 ) . str_repeat( '*', $length - 4 ) . substr( $value, -2 ); } }
Save
cmd:
run