HEX
Server: Apache/2.4.58 (IUS)
System: Linux fromcolo1.linveo.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: u100898694 (7904)
PHP: 8.1.29
Disabled: symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd,proc_get_status,proc_nice,proc_terminate,pclose,ini_alter,virtual,openlog,apache_child_terminate,apache_setenv,define_syslog_variables,highlight_file,ini_get_all,ini_restore,inject_code,openlog,posix_getpwuid,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,posix_setuid,posix_uname,syslog,system,show_source,pcntl_exec,virtual,suexec,dbmopen,dl,disk_free_space,diskfreespace,leak,apache_get_modules,apache_get_version,apache_note,apache_setenv,highlight_file
Upload Files
File: /home/u100898694/public_html/wp-content/plugins/wordpress-seo/src/helpers/notification-helper.php
<?php

namespace Yoast\WP\SEO\Helpers;

use Yoast_Notification;
use Yoast_Notification_Center;

/**
 * A helper object for notifications.
 */
class Notification_Helper {

	/**
	 * Restores a notification (wrapper function).
	 *
	 * @codeCoverageIgnore
	 *
	 * @param Yoast_Notification $notification The notification to restore.
	 *
	 * @return bool True if restored, false otherwise.
	 */
	public function restore_notification( Yoast_Notification $notification ) {
		return Yoast_Notification_Center::restore_notification( $notification );
	}

	/**
	 * Return the notifications sorted on type and priority. (wrapper function)
	 *
	 * @codeCoverageIgnore
	 *
	 * @return Yoast_Notification[] Sorted Notifications
	 */
	public function get_sorted_notifications() {
		$notification_center = Yoast_Notification_Center::get();

		return $notification_center->get_sorted_notifications();
	}

	/**
	 * Check if the user has dismissed a notification. (wrapper function)
	 *
	 * @codeCoverageIgnore
	 *
	 * @param Yoast_Notification $notification The notification to check for dismissal.
	 * @param int|null           $user_id      User ID to check on.
	 *
	 * @return bool
	 */
	private function is_notification_dismissed( Yoast_Notification $notification, $user_id = null ) {
		return Yoast_Notification_Center::is_notification_dismissed( $notification, $user_id );
	}

	/**
	 * Parses all the notifications to an array with just id, message, nonce, type and dismissed.
	 *
	 * @return array<string, string|bool>
	 */
	public function get_alerts(): array {
		$all_notifications = $this->get_sorted_notifications();

		return \array_map(
			function ( $notification ) {
				return [
					'id'           => $notification->get_id(),
					'message'      => $notification->get_message(),
					'nonce'        => $notification->get_nonce(),
					'type'         => $notification->get_type(),
					'dismissed'    => $this->is_notification_dismissed( $notification ),
					'resolveNonce' => $notification->get_resolve_nonce(),
				];
			},
			$all_notifications
		);
	}
}