Server IP : 15.235.198.142 / Your IP : 216.73.216.205 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/craft/wp-content/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' ); } }