PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 18.2
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v18.2
28.5 28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 All 129 releases
wordpress-seo / admin / class-schema-person-upgrade-notification.php

class-schema-person-upgrade-notification.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI 18.2, at admin/class-schema-person-upgrade-notification.php

78 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * WPSEO plugin file.
4 *
5 * @package WPSEO\Admin
6 */
7
8 /**
9 * Notifies the user to update the Search Appearance settings when the site is set to represent a Person,
10 * but no person (name) has been chosen.
11 */
12 class WPSEO_Schema_Person_Upgrade_Notification implements WPSEO_WordPress_Integration {
13
14 /**
15 * Registers all hooks to WordPress
16 *
17 * @return void
18 */
19 public function register_hooks() {
20 add_action( 'admin_init', [ $this, 'handle_notification' ] );
21 }
22
23 /**
24 * Handles if the notification should be added or removed.
25 */
26 public function handle_notification() {
27 $company_or_person_user_id = WPSEO_Options::get( 'company_or_person_user_id', false );
28 if ( WPSEO_Options::get( 'company_or_person' ) === 'person' && empty( $company_or_person_user_id ) ) {
29 $this->add_notification();
30 return;
31 }
32
33 $this->remove_notification();
34 }
35
36 /**
37 * Adds a notification to the notification center.
38 */
39 protected function add_notification() {
40 $notification_center = Yoast_Notification_Center::get();
41 $notification_center->add_notification( $this->get_notification() );
42 }
43
44 /**
45 * Removes a notification to the notification center.
46 */
47 protected function remove_notification() {
48 $notification_center = Yoast_Notification_Center::get();
49 $notification_center->remove_notification( $this->get_notification() );
50 }
51
52 /**
53 * Gets the notification object.
54 *
55 * @return Yoast_Notification
56 */
57 protected function get_notification() {
58 $message = sprintf(
59 /* translators: %1$s is a link start tag to the Search Appearance settings, %2$s is the link closing tag. */
60 __( 'You have previously set your site to represent a person. We’ve improved our functionality around Schema and the Knowledge Graph, so you should go in and %1$scomplete those settings%2$s.', 'wordpress-seo' ),
61 '<a href="' . esc_url( admin_url( 'admin.php?page=wpseo_titles' ) ) . '">',
62 '</a>'
63 );
64
65 $notification = new Yoast_Notification(
66 $message,
67 [
68 'type' => Yoast_Notification::WARNING,
69 'id' => 'wpseo-schema-person-upgrade',
70 'capabilities' => 'wpseo_manage_options',
71 'priority' => 0.8,
72 ]
73 );
74
75 return $notification;
76 }
77 }
78