/
home
/
u303693141
/
public_html
/
wp-content
/
plugins
/
tidio-live-chat
/
src
/
Admin
/
Upload File
HOME
<?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'; const CLEAR_LOG_FILE_ACTION = 'tidio-clear-log'; /** * @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']); add_action('admin_post_' . self::CLEAR_LOG_FILE_ACTION, [$this->adminController, 'handleClearLogFile']); } /** * @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] ); } /** * @return string */ public static function getEndpointForClearLogFileAction() { return self::getEndpointForAction(self::CLEAR_LOG_FILE_ACTION); } /** * @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); } }