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/AdminActionLink.php
<?php

namespace TidioLiveChat\Admin;

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

use TidioLiveChat\IntegrationState;
use TidioLiveChat\TidioLiveChat;
use TidioLiveChat\Translation\I18n;

class AdminActionLink
{
    /**
     * @var IntegrationState
     */
    private $integrationState;

    /**
     * @param IntegrationState $integrationsState
     */
    public function __construct($integrationsState)
    {
        $this->integrationState = $integrationsState;
    }

    public function load()
    {
        add_filter('plugin_action_links', [$this, 'addPluginActionLinks'], 10, 2);
    }

    /**
     * @param string[] $links
     * @param string $file
     * @return string[]
     */
    public function addPluginActionLinks($links, $file)
    {
        if (!$this->isPluginConfigurationFile($file) ||
            !$this->integrationState->isPluginIntegrated()
        ) {
            return $links;
        }

        $links[] = $this->prepareClearAccountDataActionLink();
        $links[] = $this->prepareToggleAsyncLoadingActionLink();

        return $links;
    }

    /**
     * @param string $file
     * @return bool
     */
    private function isPluginConfigurationFile($file)
    {
        return strpos($file, TidioLiveChat::TIDIO_PLUGIN_TECHNICAL_NAME) !== false;
    }

    /**
     * @return string
     */
    private function prepareClearAccountDataActionLink()
    {
        return sprintf(
            '<a href="%s">%s</a>',
            AdminRouting::getEndpointForClearAccountDataAction(),
            esc_html(I18n::_t('Clear Account Data'))
        );
    }

    /**
     * @return string
     */
    private function prepareToggleAsyncLoadingActionLink()
    {
        $toggleAsyncLabel = '✘';
        $onclickPart = '';
        if ($this->integrationState->isAsyncLoadingTurnedOn()) {
            $toggleAsyncLabel = '✓';
            $onclickPart = sprintf(
                'onclick="return confirm(\'%s\');"',
                I18n::_t('Disabling asynchronous loading of the chat widget may affect the page loading time of your website. Are you sure you want to disable the asynchronous loading?')
            );
        }

        return sprintf(
            '<a href="%s" %s>%s</a>',
            AdminRouting::getEndpointForToggleAsyncLoadingAction(),
            $onclickPart,
            esc_html(
                sprintf('%s %s', $toggleAsyncLabel, I18n::_t('Asynchronous loading'))
            )
        );
    }
}