short_link_helper = $short_link_helper; $this->notification_center = $notification_center; $this->wpml_wpseo_conditional = $wpml_wpseo_conditional; } /** * Initializes the integration. * * @return void */ public function register_hooks() { \add_action( 'admin_notices', [ $this, 'notify_not_installed' ] ); } /** * Returns the conditionals based in which this loadable should be active. * * This integration should only be active when WPML is installed and activated. * * @return array The conditionals. */ public static function get_conditionals() { return [ WPML_Conditional::class ]; } /** * Notify the user that the Yoast SEO Multilingual plugin is not installed * (when the WPML plugin is installed). * * Remove the notification again when it is installed. * * @return void */ public function notify_not_installed() { if ( ! $this->wpml_wpseo_conditional->is_met() ) { $this->notification_center->add_notification( $this->get_notification() ); return; } $this->notification_center->remove_notification_by_id( self::NOTIFICATION_ID ); } /** * Generates the notification to show to the user when WPML is installed, * but the Yoast SEO Multilingual plugin is not. * * @return Yoast_Notification The notification. */ protected function get_notification() { return new Yoast_Notification( \sprintf( /* translators: %1$s expands to an opening anchor tag, %2$s expands to an closing anchor tag. */ \__( 'We notice that you have installed WPML. To make sure your canonical URLs are set correctly, %1$sinstall and activate the WPML SEO add-on%2$s as well!', 'wordpress-seo' ), '', '' ), [ 'id' => self::NOTIFICATION_ID, 'type' => Yoast_Notification::WARNING, ] ); } }