????JFIF??x?x????'
| Server IP : 172.67.174.47 / Your IP : 216.73.216.87 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/./self/cwd/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'
);
}
}