PluginProbe ʕ •ᴥ•ʔ
Kirki – Freeform Page Builder, Website Builder & Customizer / 6.0.13
Kirki – Freeform Page Builder, Website Builder & Customizer v6.0.13
6.1.1 6.1.0 6.0.14 6.0.13 6.0.12 6.0.11 6.0.10 6.0.9 6.0.8 6.0.7 6.0.6 6.0.5 6.0.4 6.0.3 6.0.2 6.0.1 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 4.0.19 4.0.20 4.0.21 4.0.22 4.0.23 4.0.24 4.1 4.2.0 5.0.0 5.1.0 5.1.1 5.2.0 5.2.1 5.2.2 5.2.3 6.0.0 trunk 3.0.40 3.0.41 3.0.42 3.0.43 3.0.44 3.0.45 3.1.0 3.1.1 3.1.2
kirki / libraries / framework / Wordpress / Hooks / Actions / RegisterAdminMenu.php
kirki / libraries / framework / Wordpress / Hooks / Actions Last commit date
RegisterAdminMenu.php 3 weeks ago RegisterRestApi.php 3 weeks ago
RegisterAdminMenu.php
73 lines
1 <?php
2
3 /**
4 * WordPress admin_menu action that renders Menu subclasses declared in config.
5 * Validates each menu class extends Menu and calls render when displayable.
6 * Connects declarative menu config to wp admin page registration.
7 *
8 * @package Framework
9 * @subpackage Wordpress\Hooks\Actions
10 * @since 1.0.0
11 */
12 namespace Kirki\Framework\Wordpress\Hooks\Actions;
13
14 \defined('ABSPATH') || exit;
15 use Kirki\Framework\Wordpress\Constants\HookTypes;
16 use Kirki\Framework\Wordpress\BaseHook;
17 use Kirki\Framework\Wordpress\Constants\HookNames;
18 use Kirki\Framework\Wordpress\Menu;
19 use Exception;
20 use function Kirki\Framework\config;
21 class RegisterAdminMenu extends BaseHook
22 {
23 /**
24 * Get the name.
25 *
26 * @return mixed
27 *
28 * @since 1.0.0
29 */
30 public function get_name()
31 {
32 return HookNames::ADMIN_MENU;
33 }
34 /**
35 * Get the type.
36 *
37 * @return mixed
38 *
39 * @since 1.0.0
40 */
41 public function get_type()
42 {
43 return HookTypes::ACTION;
44 }
45 /**
46 * Handle.
47 *
48 * @param mixed $args The positional arguments.
49 *
50 * @return void
51 *
52 * @throws \Exception
53 *
54 * @since 1.0.0
55 */
56 public function handle(...$args)
57 {
58 $menus = config('menu', []);
59 if (empty($menus)) {
60 return;
61 }
62 foreach ($menus as $menu) {
63 if (!\class_exists($menu) || !\is_subclass_of($menu, Menu::class)) {
64 throw new Exception(\sprintf('Menu class %s does not exist.', $menu));
65 }
66 $menu_instance = new $menu();
67 if ($menu_instance->is_displayable()) {
68 $menu_instance->render();
69 }
70 }
71 }
72 }
73