BossBey File Manager
PHP:
7.2.34
OS:
Linux
User:
tcommcom
Root
/
home
/
tcommcom
/
public_html
/
wp-content
/
plugins
/
personizely
📤 Upload
📝 New File
📁 New Folder
Close
Editing: class.personizely-admin.php
<?php class Personizely_Admin { private static $initiated = false; public static function init() { if (!self::$initiated) { self::init_plugin_options(); } } public static function init_plugin_options() { if (current_user_can('activate_plugins')) { add_action('admin_menu', array('Personizely_Admin', 'plugin_settings')); add_action('admin_init', array('Personizely_Admin', 'handle_form')); add_filter('allowed_redirect_hosts', array('Personizely_Admin', 'allowed_redirect_hosts')); add_filter('plugin_action_links_' . plugin_basename(plugin_dir_path(__FILE__) . 'personizely.php'), array('Personizely_Admin', 'admin_plugin_settings_link')); } } public static function allowed_redirect_hosts($hosts) { $hosts[] = PERSONIZELY_APP_HOST; return $hosts; } public static function admin_plugin_settings_link($links) { $settings_link = '<a href="' . esc_url(self::get_page_url()) . '">' . __('Settings', 'personizely') . '</a>'; array_unshift($links, $settings_link); return $links; } public static function plugin_settings() { add_menu_page('Personizely Settings', 'Personizely', 'manage_options', 'personizely', array('Personizely_Admin', 'plugin_settings_view'), PERSONIZELY__PLUGIN_URL . '/assets/img/icon.svg'); } public static function validate_api_key($api_key) { return strlen($api_key) === 10 && preg_match('/^[a-z0-9]+$/', $api_key); } public static function sanitize_api_key($api_key) { return sanitize_key($api_key); } public static function plugin_settings_view() { global $wp; $nonce = wp_create_nonce('personizely_api_key_save'); $params = [ 'site' => home_url(add_query_arg(array(), $wp->request)), 'initial' => 1, 'nonce' => $nonce ]; $info = [ 'email' => get_option('admin_email'), 'name' => get_option('blogname'), 'domain' => parse_url(get_option('siteurl'))['host'] ]; $connectUrl = '/connect/wordpress?'. http_build_query($params); $data = array( 'app_url' => PERSONIZELY_APP_URL, 'api_key' => Personizely::get_api_key(), 'async' => Personizely::get_async(), 'connect_url' => $connectUrl, 'nonce' => $nonce, 'register_url' => '/register?redirect='. urlencode($connectUrl) . '&' . http_build_query($info), ); include PERSONIZELY__PLUGIN_DIR . '/views/settings-main.php'; } public static function handle_form() { if (get_option('personizely_api_key') === false) add_option('personizely_api_key', ''); if (get_option('personizely_async') === false) add_option('personizely_async', true); if ($_POST) { if (isset($_POST['api_key']) && $_POST['api_key'] && isset($_POST['nonce']) && wp_verify_nonce($_POST['nonce'], 'personizely_api_key_save') && self::validate_api_key($_POST['api_key']) ) { update_option('personizely_api_key', self::sanitize_api_key($_POST['api_key'])); update_option('personizely_async', (boolean) $_POST['async']); wp_safe_redirect(self::get_page_url()); } } if (isset($_GET['api_key']) && $_GET['api_key'] && isset($_GET['nonce']) && wp_verify_nonce($_GET['nonce'], 'personizely_api_key_save') && self::validate_api_key($_GET['api_key']) ) { update_option('personizely_api_key', self::sanitize_api_key($_GET['api_key'])); if (isset($_GET['get_started'])) { wp_safe_redirect(PERSONIZELY_APP_URL . '/start?source=wordpress'); } else { wp_safe_redirect(self::get_page_url()); } } } public static function get_page_url() { $args = array('page' => 'personizely'); $url = add_query_arg($args, admin_url('admin.php')); return $url; } public static function log($personizely_debug) { if (defined('WP_DEBUG_LOG') && WP_DEBUG_LOG) error_log(print_r(compact('personizely_debug'), 1)); // send message to debug.log when in debug mode } }
Save
Cancel