403Webshell
Server IP : 162.0.217.223  /  Your IP : 216.73.216.150
Web Server : LiteSpeed
System : Linux premium269.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : mypckeys ( 1539)
PHP Version : 8.1.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/mypckeys/backup/msckey.com/wp-content/plugins/microsoft-clarity/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/mypckeys/backup/msckey.com/wp-content/plugins/microsoft-clarity/clarity-page.php
<?php
/*******************************************************************************
* File with Clarity page
*******************************************************************************/

function generate_wordpress_id_option_if_empty() {
    $clarity_wp_site = get_option('clarity_wordpress_site_id');
	if (empty($clarity_wp_site)) {
        update_option('clarity_wordpress_site_id', wp_generate_uuid4());
    };
}

/**
* generate a guid identifier for this wordpress site
* runs in the callback of register_activation_hook, rerunning here for existing plugin which updated 
**/
function refresh_wordpress_id_option() {
    update_option('clarity_wordpress_site_id', wp_generate_uuid4());
}

/**
* Displays the embedded iframe in Clarity settings
**/
function clarity_section_iframe_callback() {
    $nonce = wp_create_nonce('wp_ajax_edit_clarity_project_id'); 

    $clarity_project_id_option = get_option(
        'clarity_project_id', /* option */
        clarity_project_id_default_value() /* default */
    );
    $clarity_wp_site = get_option(
        'clarity_wordpress_site_id' /* option */
        /* default */
    );

    $clarity_domain = "https://clarity.microsoft.com/embed";

    $query_params = "?nonce=$nonce&integration=Wordpress&wpsite=$clarity_wp_site";

    // set a QP if user is admin
    if(current_user_can('manage_options')) {
        $query_params = $query_params . "&WPAdmin=1";
    }

    // initially set iframe src to the new users path
    $iframe_src = $clarity_domain.$query_params;

    // clarity project exist
    if(!empty($clarity_project_id_option))
    {
        $iframe_src = $iframe_src."&project=".$clarity_project_id_option;
    }

	?>
    <div style="width:100%;padding-right:15px;margin-top:20px;box-sizing:border-box;">
        <iframe sandbox="allow-modals allow-forms allow-scripts allow-same-origin allow-popups allow-storage-access-by-user-activation" src="<?php echo $iframe_src ?>" width="100%" height="1300px" title="Microsoft Clarity" /> 
    </div>
    <?php
}

/**
* clarity project id default value is empty string
**/
function clarity_project_id_default_value() {
	return '';
}

/**
* Generates a menu page
**/
 
add_action('admin_menu', 'clarity_page_generation');
function clarity_page_generation() {
	add_menu_page(
        'microsoft-clarity', /* $page_title */
        'Clarity', /* menu_title */
        'edit_posts', /* capability */
        'microsoft-clarity', /* menu_slug */
        'clarity_section_iframe_callback', /* callback */
        'https://claritystatic.blob.core.windows.net/images/logo.svg', /* icon_url */
        99 /* position */
    );
}

/**
* Register Plugin settings
* clarity_project_id: option for currently integrated Clarity project id
* clarity_wordpress_site_id: a guid generated by the Clarity plugin to uniquely identify this wordpress site
* clarity_section_iframe_callback: part of the settings page in which the iframe is embedded
**/
add_action('admin_init', 'clarity_register_settings');
function clarity_register_settings() {
	register_setting(
        'clarity_settings_fields', /* $option_group */
        'clarity_project_id' /* option_name */
        /* args */
    );
	register_setting(
        'general', /* $option_group */
        'clarity_wordpress_site_id' /* option_name */
        /* args */
    );
}

/** 
* Notice for when wordpress admins did not finish intalling Clarity
* did not integrate a project
*/
add_action('admin_notices', 'setup_clarity_notice__info');
function setup_clarity_notice__info() {
	global $pagenow;
	$url = get_admin_url() . 'admin.php?page=microsoft-clarity';

    $learnMoreUrl = 'https://wordpress.org/plugins/microsoft-clarity/';

    $clarity_project_id_option = get_option(
        'clarity_project_id', /* option */
        clarity_project_id_default_value() /* default */
    );
    $pageQPExists = isset($_GET['page']);
    if($pageQPExists) {
        $pageQP =  $_GET['page'];
    } else {
        $pageQP = "";
    }


	if(empty($clarity_project_id_option) && $pageQP !== "microsoft-clarity" && current_user_can("manage_options")) {
        echo
        '<div class="notice notice-info is-dismissible">
            <p style="font-weight:700">
                Unlock User Insights with Microsoft Clarity!
            </p>
            <p style="font-weight:500">
                Almost there! Start tracking user behavior on your site with Microsoft Clarity. See exactly where on your site users click, scroll, and get stuck. It takes just a few moments to set up.
            </p>
            <p>
                <a class="button-primary" href="'. $url .'">
                    Setup Clarity
                </a>
                <a class="button-primary" style="margin-left:10px" href="'. $learnMoreUrl .'">
                    Learn more
                </a>
            </p>
        </div>';
    }
}

/**
* Add js function to listen to message on all admin pages
* These message contain changes to integrated Clarity project
* remove - change - add new
*/
add_action('admin_enqueue_scripts', 'add_event_listeners');
function add_event_listeners($hook) {
    $pageQPExists = isset($_GET['page']);
    if($pageQPExists) {
        $pageQP =  $_GET['page'];
    } else {
        $pageQP = "";
    }

    if($pageQP !== "microsoft-clarity") {
        return;
    }

    if(!current_user_can("edit_posts")) {
        return;
    }

    wp_register_script(
        'window_listeners_js', /* handle */
        plugins_url('js\add_window_listeners.js', __FILE__ ), /* src */
        array(), /* deps  */
        false, /* ver  */
        false /* in_footer */
    );
    wp_enqueue_script(
        'window_listeners_js' /* handle */
        /* src */
        /* deps  */
        /* ver  */
        /* in_footer */    
    );
}

/**
* Add callback triggered when a new message is received
* Edits the clarity project id option respectively
*/
add_action('wp_ajax_edit_clarity_project_id', "edit_clarity_project_id");
function edit_clarity_project_id() {
    $new_value = $_POST['new_value'];
    $nonce = $_POST['nonce'];
    if(!wp_verify_nonce($nonce, "wp_ajax_edit_clarity_project_id")) {
        die(
            json_encode(
                array(
                    'success' => false,
                    'message' => 'Invalid nonce.',
                )
            )
        );
    }
    // only admins are allowed to edit the Clarity project id
    if (!current_user_can('manage_options')) {
        die(
            json_encode(
                array(
                    'success' => false,
                    'message' => 'User must be WordPress admin.'
                )
            )
        );
    } else {
        update_option(
            'clarity_project_id', /* option */
            $new_value /* value */
            /* autoload */
        );
        die(
            json_encode(
                array(
                    'success' => true,
                    'message' => 'Clarity project updated successfully.'
                    )
                )
        );
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit