PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 28.2
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v28.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 / src / plans / application / add-ons-collector.php

add-ons-collector.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI 28.2, at src/plans/application/add-ons-collector.php

70 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Yoast\WP\SEO\Plans\Application;
4
5 use WPSEO_Addon_Manager;
6 use Yoast\WP\SEO\Plans\Domain\Add_Ons\Add_On_Interface;
7
8 /**
9 * The collector to get add-ons.
10 */
11 class Add_Ons_Collector {
12
13 /**
14 * All add-ons.
15 *
16 * @var array<Add_On_Interface>
17 */
18 private $add_ons;
19
20 /**
21 * Holds the WPSEO_Addon_Manager.
22 *
23 * @var WPSEO_Addon_Manager
24 */
25 private $addon_manager;
26
27 /**
28 * Constructs the instance.
29 *
30 * @param WPSEO_Addon_Manager $addon_manager The WPSEO_Addon_Manager.
31 * @param Add_On_Interface ...$add_ons All add-ons.
32 */
33 public function __construct( WPSEO_Addon_Manager $addon_manager, Add_On_Interface ...$add_ons ) {
34 $this->addon_manager = $addon_manager;
35 $this->add_ons = $add_ons;
36 }
37
38 /**
39 * Returns all the add-ons.
40 *
41 * @return array<Add_On_Interface> All the add-ons.
42 */
43 public function get(): array {
44 return $this->add_ons;
45 }
46
47 /**
48 * Returns the data for the add-ons in an array format.
49 *
50 * @return array<string, string|bool|array<string, string>> The add-ons in an array format.
51 */
52 public function to_array(): array {
53 $result = [];
54 $active_addons = $this->addon_manager->has_active_addons();
55 foreach ( $this->add_ons as $add_on ) {
56 $result[ $add_on->get_id() ] = [
57 'id' => $add_on->get_id(),
58 'isActive' => $add_on->is_active(),
59 'hasLicense' => $active_addons && $add_on->has_license(),
60 'ctb' => [
61 'action' => $add_on->get_ctb_action(),
62 'id' => $add_on->get_ctb_id(),
63 ],
64 ];
65 }
66
67 return $result;
68 }
69 }
70