Файловый менеджер - Редактировать - /home/avadvi5/public_html/wp-content/plugins/metform/core/admin/base.php
Ðазад
<?php namespace MetForm\Core\Admin; use MetForm\Core\Integrations\Onboard\Onboard; use MetForm_Pro\Base\Package; use MetForm\Utils\Util; defined( 'ABSPATH' ) || exit; /** * Metform settings related all functionalities. * * @version 1.1.8 */ class Base { use \MetForm\Traits\Singleton; private $key_settings_option; public function __construct(){ $this->key_settings_option = 'metform_option__settings'; } public static function parent_slug(){ return 'metform-menu'; } public function init(){ add_action('admin_menu', [$this, 'register_settings'], 999); add_action('admin_init', [$this, 'register_actions'], 999); add_action('wp_ajax_metform_admin_settings', [$this, 'mf_setting_data_save']); } /** * Save settings data via ajax. * * @since 3.9.9 * @return void */ public function mf_setting_data_save(){ if ( ! current_user_can( 'manage_options' ) || ! isset( $_SERVER['HTTP_X_WP_NONCE'] ) || ! wp_verify_nonce( $_SERVER['HTTP_X_WP_NONCE'], 'wp_rest' ) ) { wp_send_json_error('You are not allowed to do this.'); wp_die(); } $request = isset($_POST['form_data']) ? $_POST['form_data'] : []; if (empty($request)) { wp_send_json_error('No data provided'); wp_die(); } //get existing settings $settings = get_option($this->key_settings_option, []); $checkboxes = array('mf_save_progress', 'mf_field_name_show', 'mf_enable_entry_file_delete', 'mf_paypal_sandbox', 'mf_stripe_sandbox'); //if checkbox is not set, unset it from settings that was set previously. foreach ($checkboxes as $key) { if (!isset($request[$key]) && isset($settings[$key])) { unset($settings[$key]); } } $settings = is_array($request) ? array_merge($settings, $request) : $settings; $status = \MetForm\Core\Forms\Action::instance()->store( -1, $settings); wp_send_json_success($status); exit; } public function register_settings(){ add_submenu_page( self::parent_slug(), esc_html__( 'Settings', 'metform' ), esc_html__( 'Settings', 'metform' ), 'manage_options', self::parent_slug().'-settings', [$this, 'register_settings_contents__settings'], 11); } public function register_settings_contents__settings(){ if(isset($_GET['met-onboard-steps']) && $_GET['met-onboard-steps'] == 'loaded' && isset($_GET['met-onboard-steps-nonce']) && wp_verify_nonce(sanitize_text_field(wp_unslash($_GET['met-onboard-steps-nonce'])),'met-onboard-steps-action')) { Onboard::instance()->views(); } else { $code = ''; $disabledAttr = ''; $selectTheTab= false; if(did_action('xpd_metform_pro/plugin_loaded')) { #Must be pro loaded.... if(!empty($_REQUEST['access_token']) && !empty($_REQUEST['refresh_token']) && !empty($_REQUEST['not_hubspot'])) { $code = isset($_REQUEST['code']) ? sanitize_text_field(wp_unslash($_REQUEST['code'])) : ''; $nonce = isset($_REQUEST['state']) ? sanitize_text_field(wp_unslash($_REQUEST['state'])): ''; $option = get_option(\MetForm_Pro\Core\Integrations\Aweber::NONCE_VERIFICATION_KEY); $accessToken = []; $accessToken['retrieved'] = time(); $accessToken['token_type'] = isset($_REQUEST['token_type'])? sanitize_text_field( wp_unslash( $_REQUEST['token_type'] )) : ''; $accessToken['expires_in'] = isset($_REQUEST['expires_in'])? sanitize_text_field( wp_unslash( $_REQUEST['expires_in'] )) : ''; $accessToken['refresh_token'] = isset($_REQUEST['refresh_token'])? sanitize_text_field( wp_unslash( $_REQUEST['refresh_token'] )) : ''; $accessToken['access_token'] = isset($_REQUEST['access_token'])? sanitize_text_field( wp_unslash( $_REQUEST['access_token'] )) : ''; set_transient('mf_aweber_token_transient', $accessToken['access_token'], $accessToken['expires_in'] - 20 ); update_option(\MetForm_Pro\Core\Integrations\Aweber::ACCESS_TOKEN_KEY, $accessToken); ?> <script type="text/javascript"> // redirect to newsletter section location.href = '<?php echo esc_url(admin_url('admin.php?page=metform-menu-settings#mf-newsletter_integration')); ?>'; </script> <?php $option = get_option(\MetForm_Pro\Core\Integrations\Aweber::ACCESS_TOKEN_KEY); if($option) { $code = $option; } $disabledAttr = 'disabled'; $selectTheTab = true; } else { $code = get_option(\MetForm_Pro\Core\Integrations\Aweber::ACCESS_TOKEN_KEY); $disabledAttr = empty($code)? '': 'disabled'; } if (class_exists(Package::class) && class_exists('\MetForm_Pro\Core\Integrations\Dropbox\Dropbox_Access_Token') && (Util::is_mid_tier() || Util::is_top_tier())) { /** * Handle Dropbox disconnect request */ if(!empty($_REQUEST['mf_dropbox_disconnect'])) { delete_option('mf_dropbox_access_token'); delete_transient('mf_dropbox_token'); ?> <script type="text/javascript"> // redirect to general settings section location.href = '<?php echo esc_url(admin_url('admin.php?page=metform-menu-settings#mf-general_options')); ?>'; </script> <?php } /** * Checks if the current request is from Dropbox OAuth callback * * Validates that the request contains a 'code' parameter (Dropbox authorization code), * does not have a 'state' parameter, does not have a 'scope' parameter set, * and the scope does not contain 'googleapis' (to distinguish from Google OAuth) * * @var bool $is_dropbox True if request appears to be from Dropbox OAuth flow, false otherwise */ $is_dropbox = !empty($_REQUEST['code']) && empty($_REQUEST['state']) && (!isset($_REQUEST['scope']) || strpos($_REQUEST['scope'], 'googleapis') === false); if($is_dropbox ){ $dropbox = new \MetForm_Pro\Core\Integrations\Dropbox\Dropbox_Access_Token; $access_code = $dropbox->get_access_token(); if(isset($access_code['body'])){ // Save access token and set transient $expire_time = isset(json_decode($access_code['body'], true)['expires_in'] ) ? json_decode($access_code['body'], true)['expires_in'] : ''; update_option( 'mf_dropbox_access_token', $access_code['body'] ); set_transient( 'mf_dropbox_token', $access_code['body'] , $expire_time - 20 ); ?> <script type="text/javascript"> // redirect to general settings section location.href = '<?php echo esc_url(admin_url('admin.php?page=metform-menu-settings#mf-general_options')); ?>'; </script> <?php } } } if(!empty($_REQUEST['mf_google_disconnect'])) { delete_option('wf_google_access_token'); delete_transient('mf_google_sheet_token'); ?> <script type="text/javascript"> // redirect to google sheet integration section location.href = '<?php echo esc_url(admin_url('admin.php?page=metform-menu-settings#mf-google_sheet_integration')); ?>'; </script> <?php } if( !empty($_REQUEST['code']) && empty($_REQUEST['state']) ) { $google = new \MetForm_Pro\Core\Integrations\Google_Sheet\Google_Access_Token; $access_code = $google->get_access_token(); if(isset($access_code['body'])){ $expire_time = isset(json_decode($access_code['body'], true)['expires_in'] ) ? json_decode($access_code['body'], true)['expires_in'] : ''; update_option( 'wf_google_access_token', $access_code['body'] ); set_transient( 'mf_google_sheet_token', $access_code['body'] , $expire_time - 20 ); } } } #Let check if this is returned from aweber.. #Give state check include( 'views/settings.php' ); } } public function get_settings_option($key = null , $default = null){ if($key != null){ $this->key_settings_option = $key; } return get_option($this->key_settings_option); } public function set_option($key, $default = null){ } public function register_actions(){ if(isset( $_POST['mf_settings_page_action'])) { // run a quick security check if( !check_admin_referer('metform-settings-page', 'metform-settings-page')){ return; } $request = $_POST; $status = \MetForm\Core\Forms\Action::instance()->store( -1, $request); return $status; } } }
| ver. 1.1 | |
.
| PHP 8.3.30 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка