| Server IP : 93.86.61.54 / Your IP : 216.73.216.60 Web Server : Apache/2.4.62 (Ubuntu) System : Linux rasin.ddns.net 6.8.0-124-generic #124~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 21:05:19 UTC x86_64 User : www-data ( 33) PHP Version : 8.4.22 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/rasin.ddns.net/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'
);
}
}