PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / trunk
Yoast SEO – Advanced SEO with real-time guidance and built-in AI vtrunk
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 / user-meta / application / additional-contactmethods-collector.php

additional-contactmethods-collector.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI trunk, at src/user-meta/application/additional-contactmethods-collector.php

78 lines 2.3 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\User_Meta\Application;
4
5 use Yoast\WP\SEO\User_Meta\Domain\Additional_Contactmethod_Interface;
6
7 /**
8 * The collector to get additional contactmethods.
9 *
10 * @makePublic
11 */
12 class Additional_Contactmethods_Collector {
13
14 /**
15 * All additional contactmethods.
16 *
17 * @var array<Additional_Contactmethod_Interface>
18 */
19 private $additional_contactmethods;
20
21 /**
22 * The constructor.
23 *
24 * @param Additional_Contactmethod_Interface ...$additional_contactmethods All additional contactmethods.
25 */
26 public function __construct( Additional_Contactmethod_Interface ...$additional_contactmethods ) {
27 $this->additional_contactmethods = $additional_contactmethods;
28 }
29
30 /**
31 * Returns all the additional contactmethods.
32 *
33 * @return array<Additional_Contactmethod_Interface> All the additional contactmethods.
34 */
35 public function get_additional_contactmethods(): array {
36 $additional_contactmethods = $this->additional_contactmethods;
37
38 /**
39 * Filter: Adds the possibility to add more additional contactmethods in the user profile.
40 *
41 * @param array<Additional_Contactmethod_Interface> $additional_contactmethods Array with additional contact method classes.
42 */
43 return \apply_filters( 'wpseo_additional_contactmethods', $additional_contactmethods );
44 }
45
46 /**
47 * Returns the additional contactmethods key/value pairs.
48 *
49 * @return array<string, string> The additional contactmethods key/value pairs.
50 */
51 public function get_additional_contactmethods_objects(): array {
52 $additional_contactmethods_objects = [];
53 $additional_contactmethods = $this->get_additional_contactmethods();
54
55 foreach ( $additional_contactmethods as $additional_contactmethod ) {
56 $additional_contactmethods_objects[ $additional_contactmethod->get_key() ] = $additional_contactmethod->get_label();
57 }
58
59 return $additional_contactmethods_objects;
60 }
61
62 /**
63 * Returns the additional contactmethods keys.
64 *
65 * @return array<string> The additional contactmethods keys.
66 */
67 public function get_additional_contactmethods_keys(): array {
68 $additional_contactmethods_keys = [];
69 $additional_contactmethods = $this->get_additional_contactmethods();
70
71 foreach ( $additional_contactmethods as $additional_contactmethod ) {
72 $additional_contactmethods_keys[] = $additional_contactmethod->get_key();
73 }
74
75 return $additional_contactmethods_keys;
76 }
77 }
78