# timetics/1.0.0/core/admin/menu.php

Timetics – Appointment Booking Calendar &amp; Scheduling, version 1.0.0. 112 lines.

- Page: https://pluginprobe.com/plugins/timetics/1.0.0/code/core/admin/menu.php
- Raw: https://pluginprobe.com/plugins/timetics/1.0.0/raw/core/admin/menu.php
- Modified: 2023-01-30T14:51:10+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/timetics/1.0.0/code/core/admin/menu.php#L10-L20`.

```php
<?php

/**
 * Admin meni class
 *
 * @package Timetics
 */

namespace Timetics\Core\Admin;

/**
 * Class Menu
 */
class Menu {

    use \Timetics\Utils\Singleton;

    /**
     * Initialize
     *
     * @return void
     */
    public function init() {
        add_action( 'admin_menu', array( $this, 'register_admin_menu' ) );
    }

    /**
     * Register admin menu
     *
     * @return void
     */

    public function register_admin_menu() {
        global $submenu;
        $capability = 'manage_timetics';
        $slug       = 'timetics';
        $url        = 'admin.php?page=' . $slug . '#';
        $menu_items = array(
            [
                'title'      => __( 'Overview', 'timetics' ),
                'link'       => '/',
                'capability' => $capability,
            ],
            [
                'title'      => __( 'Meetings', 'timetics' ),
                'link'       => '/meetings',
                'capability' => 'read_booking',
            ],
            [
                'title'      => __( 'Staffs', 'timetics' ),
                'link'       => '/staff',
                'capability' => 'edit_staff',
            ],

            [
                'title'      => __( 'Bookings', 'timetics' ),
                'link'       => '/bookings',
                'capability' => 'read_booking',
            ],
            [
                'title'      => __( 'Customers', 'timetics' ),
                'link'       => '/customers',
                'capability' => 'manage_options',
            ],
            [
                'title'      => __( 'Settings', 'timetics' ),
                'link'       => '/settings',
                'capability' => 'manage_options',
            ],
            [
                'title'      => __( 'My Profile', 'timetics' ),
                'link'       => '/my-profile',
                'capability' => 'edit_profile',
            ],
            [
                'title'      => __( 'Shortcodes', 'timetics' ),
                'link'       => '/shortcodes',
                'capability' => 'edit_profile',
            ],
        );

        add_menu_page(
            __( 'Timetics', 'timetics' ),
            __( 'Timetics', 'timetics' ),
            $capability,
            $slug,
            array( $this, 'timetics_dashboard_view' ),
            'dashicons-store',
            10
        );

        $menu_items = apply_filters( 'timetics_menu', $menu_items );

        foreach ( $menu_items as $item ) {
            $submenu[$slug][] = [$item['title'], $item['capability'], $url . $item['link']]; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
        }
    }

    /**
     * Admin dashboard view
     *
     * @return void
     */
    public function timetics_dashboard_view() {
        ?>
        <div class="wrap" id="time_tics_dashboard">
            <h2>Timetics</h2>
        </div>
        <?php
    }
}

```
