File "elementor-safe-mode.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/elementor/modules/safe-mode/mu-plugin/elementor-safe-mode.php
File
size: 2.48 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
if (!defined('ABSPATH')) {
exit;
}
class Safe_Mode
{
const OPTION_ENABLED = 'elementor_safe_mode';
const OPTION_TOKEN = self::OPTION_ENABLED . '_token';
public function is_enabled()
{
return get_option(self::OPTION_ENABLED);
}
public function is_valid_token()
{
$token = isset($_COOKIE[self::OPTION_TOKEN]) ? $_COOKIE[self::OPTION_TOKEN] : null;
if ($token && get_option(self::OPTION_TOKEN) === $token) {
return true;
}
return false;
}
public function is_requested()
{
return !empty($_REQUEST['elementor-mode']) && 'safe' === $_REQUEST['elementor-mode'];
}
public function is_editor()
{
return is_admin() && isset($_GET['action']) && 'elementor' === $_GET['action'];
}
public function is_editor_preview()
{
return isset($_GET['elementor-preview']);
}
public function is_editor_ajax()
{
return is_admin() && isset($_POST['action']) && 'elementor_ajax' === $_POST['action'];
}
public function add_hooks()
{
add_filter('pre_option_active_plugins', function () {
return get_option('elementor_safe_mode_allowed_plugins');
});
add_filter('pre_option_stylesheet', function () {
return 'elementor-safe';
});
add_filter('pre_option_template', function () {
return 'elementor-safe';
});
add_action('elementor/init', function () {
do_action('elementor/safe_mode/init');
});
}
public function plugin_row_meta($plugin_meta, $plugin_file, $plugin_data, $status)
{
if (basename(__FILE__) === $plugin_file) {
$row_meta = ['docs' => '<a href="https://go.elementor.com/safe-mode/" aria-label="' . esc_attr(__('Learn More', 'elementor')) . '" target="_blank">' . __('Learn More', 'elementor') . '</a>'];
$plugin_meta = array_merge($plugin_meta, $row_meta);
}
return $plugin_meta;
}
public function __construct()
{
add_filter('plugin_row_meta', [$this, 'plugin_row_meta'], 10, 4);
$enabled_type = $this->is_enabled();
if (!$enabled_type || !$this->is_valid_token()) {
return;
}
if (!$this->is_requested() && 'global' !== $enabled_type) {
return;
}
if (!$this->is_editor() && !$this->is_editor_preview() && !$this->is_editor_ajax()) {
return;
}
$this->add_hooks();
}
}
new Safe_Mode();