?
Current Path : /home1/savoy/www/wp-content/plugins/duplicator/src/Ajax/ |
Linux gator3171.hostgator.com 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 |
Current File : /home1/savoy/www/wp-content/plugins/duplicator/src/Ajax/ServicesNotifications.php |
<?php /** * @package Duplicator * @copyright (c) 2022, Snap Creek LLC */ namespace Duplicator\Ajax; use Duplicator\Ajax\AjaxWrapper; use Duplicator\Core\Notifications\Notifications; class ServicesNotifications extends AbstractAjaxService { /** * Init ajax calls * * @return void */ public function init() { $this->addAjaxCall('wp_ajax_duplicator_notification_dismiss', 'setDissmisedNotifications'); } /** * Dismiss notification * * @return bool */ public static function dismissNotifications() { $id = sanitize_key($_POST['id']); $type = is_numeric($id) ? 'feed' : 'events'; $option = Notifications::getOption(); $option['dismissed'][] = $id; $option['dismissed'] = array_unique($option['dismissed']); // Remove notification. if (!is_array($option[$type]) || empty($option[$type])) { throw new \Exception('Notification type not set.'); } foreach ($option[$type] as $key => $notification) { if ((string)$notification['id'] === (string)$id) { unset($option[$type][$key]); break; } } return update_option(Notifications::DUPLICATOR_NOTIFICATIONS_OPT_KEY, $option); } /** * Set dismiss notification action * * @return void */ public function setDissmisedNotifications() { AjaxWrapper::json( array(__CLASS__, 'dismissNotifications'), Notifications::DUPLICATOR_NOTIFICATION_NONCE_KEY, $_POST['nonce'], 'manage_options' ); } }