HEX
Server: nginx/1.20.1
System: Linux VM-0-8-centos 3.10.0-1160.11.1.el7.x86_64 #1 SMP Fri Dec 18 16:34:56 UTC 2020 x86_64
User: www (1000)
PHP: 7.3.29
Disabled: passthru,system,chroot,chgrp,chown,shell_exec,popen,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,popepassthru,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.ycfawu.com/wp-content/plugins/tidio-live-chat/src/Admin/AdminRouting.php
<?php

namespace TidioLiveChat\Admin;

if (!defined('WPINC')) {
    die('File loaded directly. Exiting.');
}

use TidioLiveChat\Admin\Notice\DismissibleNoticeController;

class AdminRouting
{
    const CLEAR_ACCOUNT_DATA_ACTION = 'tidio-live-chat-clear-account-data';
    const INTEGRATE_PROJECT_ACTION = 'tidio-live-chat-integrate-project';
    const TOGGLE_ASYNC_LOADING_ACTION = 'tidio-live-chat-toggle-async-loading';
    const AUTHORIZE_WOOCOMMERCE_ACTION = 'tidio-live-chat-authorize-woocommerce';
    const INTEGRATE_WOOCOMMERCE_ACTION = 'tidio-live-chat-integrate-woocommerce';
    const DISMISS_NOTICE_ACTION = 'tidio-live-chat-dismiss-notice';

    /**
     * @var AdminController
     */
    private $adminController;

    /**
     * @var DismissibleNoticeController
     */
    private $dismissibleNoticeController;

    /**
     * @param AdminController $adminController
     * @param DismissibleNoticeController $dismissibleNoticeController
     */
    public function __construct($adminController, $dismissibleNoticeController)
    {
        $this->adminController = $adminController;
        $this->dismissibleNoticeController = $dismissibleNoticeController;
    }

    public function load()
    {
        add_action('admin_post_' . self::INTEGRATE_PROJECT_ACTION, [$this->adminController, 'handleIntegrateProjectAction']);
        add_action('admin_post_' . self::TOGGLE_ASYNC_LOADING_ACTION, [$this->adminController, 'handleToggleAsyncLoadingAction']);
        add_action('admin_post_' . self::CLEAR_ACCOUNT_DATA_ACTION, [$this->adminController, 'handleClearAccountDataAction']);
        add_action('admin_post_' . self::AUTHORIZE_WOOCOMMERCE_ACTION, [$this->adminController, 'handleAuthorizeWooCommerceAction']);
        add_action('admin_post_' . self::INTEGRATE_WOOCOMMERCE_ACTION, [$this->adminController, 'handleIntegrateWooCommerceAction']);
        add_action('admin_post_' . self::DISMISS_NOTICE_ACTION, [$this->dismissibleNoticeController, 'handleDismissNotice']);
    }

    /**
     * @return string
     */
    public static function getEndpointForIntegrateProjectAction()
    {
        return self::getEndpointForAction(self::INTEGRATE_PROJECT_ACTION);
    }

    /**
     * @return string
     */
    public static function getEndpointForToggleAsyncLoadingAction()
    {
        return self::getEndpointForAction(self::TOGGLE_ASYNC_LOADING_ACTION);
    }

    /**
     * @return string
     */
    public static function getEndpointForClearAccountDataAction()
    {
        return self::getEndpointForAction(self::CLEAR_ACCOUNT_DATA_ACTION);
    }

    /**
     * @return string
     */
    public static function getEndpointForAuthorizeWooCommerceAction()
    {
        return self::getEndpointForAction(self::AUTHORIZE_WOOCOMMERCE_ACTION);
    }

    /**
     * @return string
     */
    public static function getEndpointForIntegrateWooCommerceAction()
    {
        return self::getEndpointForAction(self::INTEGRATE_WOOCOMMERCE_ACTION);
    }

    /**
     * @param string $noticeOptionName
     * @return string
     */
    public static function getEndpointForHandleDismissNotice($noticeOptionName)
    {
        return self::getEndpointForAction(
            self::DISMISS_NOTICE_ACTION,
            [DismissibleNoticeController::TIDIO_NOTICE_QUERY_PARAM_NAME => $noticeOptionName]
        );
    }

    /**
     * @param string $action
     * @return string
     */
    private static function getEndpointForAction($action, array $params = [])
    {
        $params['action'] = $action;
        $params['_wpnonce'] = wp_create_nonce($action);

        $queryString = http_build_query($params);

        return admin_url('admin-post.php?' . $queryString);
    }
}