*/ final class BadgeManager { /** * Badges * * @since 2.6.0 * @access private * @var array $badges Badges */ private $badges = array(); /** * Initialize the class * * @since 2.6.0 */ public function __construct() { $this->badges = array(); } /** * Initialize the class and add initial badges * * @since 2.6.0 * @return void */ public function init() { if ( Options::get( 'onboarding-status', 'approval' ) !== 'congrats' ) { $this->add_badge( 'Status' ); } else { /** @var array $presizeddiv_notif */ $presizeddiv_notif = Options::get( 'presizeddiv-notif', array() ); if ( count( $presizeddiv_notif ) > 0 ) { $this->add_badge( 'CoreWebVitals' ); } if ( Options::get( 'adstxt-active', false ) === false && Options::get( 'adstxt-update', false ) === true ) { $this->add_badge( 'AdsTxt' ); } if ( Options::get( 'contract-type' ) === 'essential' && Options::get( 'billing-status', false ) === false ) { $this->add_badge( 'Account' ); } $xpath_failed_active_config = Options::get( 'xpath_failed_active_config', false ); if ( $xpath_failed_active_config ) { $this->add_badge( 'AdFormats' ); } } } /** * Add badge * * @since 2.6.0 * * @param string $menu_slug Name of the menu slug. * @return void */ public function add_badge( $menu_slug ) { $this->badges[] = $menu_slug; } /** * Get badges * * @since 2.6.0 * * @return array Badges */ public function get_badges() { return $this->badges; } }