# booktics/1.0.1/core/admin/notification.php

Booktics – Appointment Booking Calendar for Service Businesses, version 1.0.1. 264 lines.

- Page: https://pluginprobe.com/plugins/booktics/1.0.1/code/core/admin/notification.php
- Raw: https://pluginprobe.com/plugins/booktics/1.0.1/raw/core/admin/notification.php
- Modified: 2025-07-09T06:46:52+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/booktics/1.0.1/code/core/admin/notification.php#L10-L20`.

```php
<?php

namespace Booktics\Admin;

use Booktics\Contracts\Hookable_Service_Contract;
use ENS\Core\SDK;

class Notification implements Hookable_Service_Contract {

    /**
     * Register notification
     *
     * @return void
     */
    public function register() {
        if ( class_exists( SDK::class ) ) {
            SDK::get_instance()
                ->setup(
                    array(
						'plugin_name'          => 'Booktics',
						'plugin_slug'          => 'booktics',
						'general_prefix'       => 'bt',
						'text_domain'          => 'booktics',
						'admin_script_handler' => 'booktics-dashboard-scripts',
						'sub_menu_filter_hook' => 'booktics_menu',
						'sub_menu_details'     =>
							array(
								'id'         => 'booktics-automation',
								'title'      => __( 'Automation', 'booktics' ),
								'link'       => '/automation',
								'capability' => apply_filters( 'booktics_menu_permission_automation_dashboard', 'manage_options' ),
								'position'   => apply_filters( 'booktics_menu_position_automation', 11 ),
							),
                    )
                )
                ->init();

            add_filter(
                'ens_available_actions', function ( $actions ) {
					$actions = array(
						array(
							'trigger_label'      => 'Order Created',
							'trigger_value'      => 'order_created',
							'trigger_data'       => array(
								array(
									'label' => 'Order No',
									'value' => 'order_no',
									'type'  => 'string',
								),
								array(
									'label' => 'Order Date',
									'value' => 'order_date',
									'type'  => 'date',
								),
								array(
									'label' => 'Order Total',
									'value' => 'order_total',
									'type'  => 'string',
								),
								array(
									'label' => 'User Email',
									'value' => 'user_email',
									'type'  => 'string',
								),
							),
							'delay_dependencies' => array(
								array(
									'label' => 'Order Date',
									'value' => 'order_date',
								),
							),
							'email_receivers'    => array(
								array(
									'label' => 'User Email',
									'value' => 'user_email',
								),
							),
						),
						array(
							'trigger_label'      => 'Appointment Scheduled',
							'trigger_value'      => 'appointment_scheduled',
							'trigger_data'       => array(
								array(
									'label' => 'Service Name',
									'value' => 'appointment_service',
									'type'  => 'string',
								),
                                array(
                                    'label' => 'Team Member Name',
                                    'value' => 'appointment_team_member',
                                    'type'  => 'string',
                                ),
								array(
									'label' => 'Appointment Date',
									'value' => 'appointment_date',
									'type'  => 'date',
								),
								array(
									'label' => 'Appointment Start Time',
									'value' => 'start_time',
									'type'  => 'string',
								),
								array(
									'label' => 'Appointment Time',
									'value' => 'appointment_time',
									'type'  => 'date',
								),
								array(
									'label' => 'Attendee Count',
									'value' => 'attendee_count',
									'type'  => 'string',
								),
								array(
									'label' => 'User Email',
									'value' => 'user_email',
									'type'  => 'string',
								),
							),
							'delay_dependencies' => array(
								array(
									'label' => 'Appointment Time',
									'value' => 'before_appointment_time',
							    ),
							),
							'email_receivers'    => array(
								array(
									'label' => 'User Email',
									'value' => 'user_email',
								),
							),
						),
						array(
							'trigger_label'      => 'Appointment Rescheduled',
							'trigger_value'      => 'appointment_rescheduled',
							'trigger_data'       => array(
								array(
									'label' => 'Service Name',
									'value' => 'appointment_service',
									'type'  => 'string',
								),
								array(
									'label' => 'Date',
									'value' => 'date',
									'type'  => 'date',
								),
								array(
									'label' => 'Team Member Name',
									'value' => 'appointment_team_member',
									'type'  => 'string',
								),
								array(
									'label' => 'Start Time',
									'value' => 'start_time',
									'type'  => 'string',
								),
								array(
									'label' => 'End Time',
									'value' => 'end_time',
									'type'  => 'string',
								),
								array(
									'label' => 'User Email',
									'value' => 'user_email',
									'type'  => 'string',
								),
							),
							'delay_dependencies' => array(
								array(
									'label' => 'Date',
									'value' => 'date',
								),
							),
							'email_receivers'    => array(
								array(
									'label' => 'User Email',
									'value' => 'user_email',
								),
							),
						),
						array(
							'trigger_label'      => 'Appointment Cancelled',
							'trigger_value'      => 'appointment_cancelled',
							'trigger_data'       => array(
								array(
									'label' => 'Service Name',
									'value' => 'appointment_service',
									'type'  => 'string',
								),
								array(
									'label' => 'Date',
									'value' => 'date',
									'type'  => 'date',
								),
								array(
									'label' => 'Team Member Name',
									'value' => 'appointment_team_member',
									'type'  => 'string',
								),
								array(
									'label' => 'Start Time',
									'value' => 'start_time',
									'type'  => 'string',
								),
								array(
									'label' => 'End Time',
									'value' => 'end_time',
									'type'  => 'string',
								),
								array(
									'label' => 'User Email',
									'value' => 'user_email',
									'type'  => 'string',
								),
							),
							'delay_dependencies' => array(
								array(
									'label' => 'Date',
									'value' => 'date',
								),
							),
							'email_receivers'    => array(
								array(
									'label' => 'User Email',
									'value' => 'user_email',
								),
							),
						),
						array(
							'trigger_label'      => 'Team Member Created',
							'trigger_value'      => 'team_member_created',
							'trigger_data'       => array(
								array(
									'label' => 'Team Member Name',
									'value' => 'team_member_name',
									'type'  => 'string',
								),
								array(
									'label' => 'Team Member Email',
									'value' => 'team_member_email',
									'type'  => 'string',
								),
								array(
									'label' => 'Password Reset URL',
									'value' => 'password_reset_url',
									'type'  => 'string',
								),
							),
							'delay_dependencies' => array(),
							'email_receivers'    => array(
								array(
									'label' => 'Team Member Email',
									'value' => 'team_member_email',
								),
							),
						),
					);

					return $actions;
				}
            );
        }
    }
}

```
