Server IP : 209.38.156.173 / Your IP : 216.73.216.122 [ Web Server : Apache/2.4.52 (Ubuntu) System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.1.2-1ubuntu2.22 Disable Function : NONE Domains : 2 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /proc/1534260/cwd/plugins/duplicator/src/Ajax/ |
Upload File : |
<?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' ); } }