Server IP : 172.67.157.199 / Your IP : 3.139.98.190 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/plugins/wordpress-seo/admin/ajax/ |
Upload File : |
<?php /** * WPSEO plugin file. * * @package WPSEO\Admin\Ajax */ /** * This class will catch the request to dismiss the target notice (set by notice_name) * and will store the dismiss status as an user meta in the database. */ class Yoast_Dismissable_Notice_Ajax { /** * Notice type toggle value for user notices. * * @var string */ public const FOR_USER = 'user_meta'; /** * Notice type toggle value for network notices. * * @var string */ public const FOR_NETWORK = 'site_option'; /** * Notice type toggle value for site notices. * * @var string */ public const FOR_SITE = 'option'; /** * Name of the notice that will be dismissed. * * @var string */ private $notice_name; /** * The type of the current notice. * * @var string */ private $notice_type; /** * Initialize the hooks for the AJAX request. * * @param string $notice_name The name for the hook to catch the notice. * @param string $notice_type The notice type. */ public function __construct( $notice_name, $notice_type = self::FOR_USER ) { $this->notice_name = $notice_name; $this->notice_type = $notice_type; add_action( 'wp_ajax_wpseo_dismiss_' . $notice_name, [ $this, 'dismiss_notice' ] ); } /** * Handles the dismiss notice request. * * @return void */ public function dismiss_notice() { check_ajax_referer( 'wpseo-dismiss-' . $this->notice_name ); $this->save_dismissed(); wp_die( 'true' ); } /** * Storing the dismissed value in the database. The target location is based on the set notification type. * * @return void */ private function save_dismissed() { if ( $this->notice_type === self::FOR_SITE ) { update_option( 'wpseo_dismiss_' . $this->notice_name, 1 ); return; } if ( $this->notice_type === self::FOR_NETWORK ) { update_site_option( 'wpseo_dismiss_' . $this->notice_name, 1 ); return; } update_user_meta( get_current_user_id(), 'wpseo_dismiss_' . $this->notice_name, 1 ); } }