*/ public function get(): array { $stored = get_option( self::OPTION_NAME, array() ); $stored = is_array( $stored ) ? $stored : array(); $features = array(); foreach ( self::KEYS as $key ) { $features[ $key ] = array_key_exists( $key, $stored ) ? (bool) $stored[ $key ] : true; } return $features; } /** * @param array $features */ public function update( array $features ): bool { $current = $this->get(); foreach ( self::KEYS as $key ) { if ( array_key_exists( $key, $features ) ) { $current[ $key ] = (bool) $features[ $key ]; } } return update_option( self::OPTION_NAME, $current ); } public function enabled( string $feature ): bool { return (bool) ( $this->get()[ $feature ] ?? true ); } }