HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/appointmentbook.me/wp-content/plugins/booknetic/app/Backend/Settings/Controller.php
<?php

namespace BookneticApp\Backend\Settings;

use BookneticApp\Providers\UI\SettingsMenuUI;
use BookneticApp\Providers\Core\Capabilities;
use BookneticApp\Providers\Helpers\Helper;

class Controller extends \BookneticApp\Providers\Core\Controller
{
	public function index()
	{
		Capabilities::must( 'settings' );

        if ( Capabilities::userCan( 'settings_general' ) && Capabilities::tenantCan( 'settings_general' ) )
        {
            SettingsMenuUI::get( 'general_settings' )
                      ->setTitle( bkntc__( 'General settings' ) )
                      ->setDescription( bkntc__( 'You can customize general settings about booking from here' ) )
                      ->setIcon( Helper::icon( 'general-settings.svg', 'Settings' ) )
                      ->setPriority( 1 );

            SettingsMenuUI::get('general_settings')
                ->subItem( 'general_settings' )
                ->setTitle( bkntc__('General') )
                ->setPriority( 1 );
        }

        SettingsMenuUI::get( 'frontend' )
                  ->setTitle( bkntc__( 'Front-end panels' ) )
                  ->setDescription( bkntc__( 'You can customize booking and customer panel and change labels from here' ) )
                  ->setIcon( Helper::icon( 'booking-steps-settings.svg', 'Settings' ) )
                  ->requireSubItems()
                  ->setPriority( 2 );

        if ( Capabilities::userCan( 'settings_booking_panel_steps' ) && Capabilities::tenantCan( 'settings_booking_panel_steps' ) )
        {
            SettingsMenuUI::get( 'frontend' )
                      ->subItem( 'booking_panel_steps_settings' )
                      ->setTitle( bkntc__( 'Booking Steps' ) )
                      ->setPriority( 1 );
        }

        if ( Capabilities::userCan( 'settings_booking_panel_labels' ) && Capabilities::tenantCan( 'settings_booking_panel_labels' ) )
        {
            SettingsMenuUI::get( 'frontend' )
                      ->subItem( 'booking_panel_labels_settings' )
                      ->setTitle( bkntc__( 'Labels' ) )
                      ->setPriority( 2 );
        }

        if ( Capabilities::userCan( "settings_payments" ) && Capabilities::tenantCan( 'settings_payments' ) )
        {
            SettingsMenuUI::get( 'payment_settings' )
                ->setTitle( bkntc__('Payment settings') )
                ->setDescription( bkntc__('Currency, price format , general settings about payment , payment methods and so on') )
                ->setIcon( Helper::icon('payments-settings.svg', 'Settings') )
                ->setPriority( 3 );
        }

        if ( Capabilities::tenantCan( 'settings_payments' ) && Capabilities::userCan( 'settings_payments' ) )
        {
            SettingsMenuUI::get( 'payment_settings' )
                      ->subItem( 'payments_settings' )
                      ->setTitle( bkntc__( 'General' ) )
                      ->setPriority( 1 );
        }

        if ( Capabilities::tenantCan( 'settings_payments' ) &&  Capabilities::tenantCan( 'settings_payment_gateways' ) && Capabilities::userCan( 'settings_payment_gateways' ) )
        {
            SettingsMenuUI::get( 'payment_settings' )
                      ->subItem( 'payment_gateways_settings' )
                      ->setTitle( bkntc__( 'Payment methods' ) )
                      ->setPriority( 2 );
        }

        if ( Capabilities::userCan( 'settings_company' ) && Capabilities::tenantCan( 'settings_company' ) )
        {
            SettingsMenuUI::get( 'company_settings' )
                      ->setTitle( bkntc__( 'Company details' ) )
                      ->setDescription( bkntc__( 'Enter your company name, logo, address, phone number, website from here' ) )
                      ->setIcon( Helper::icon( 'company-settings.svg', 'Settings' ) )
                      ->setPriority( 4 );
        }

        if ( Capabilities::userCan( 'settings_business_hours' ) && Capabilities::tenantCan( 'settings_business_hours' ) )
        {
            SettingsMenuUI::get( 'business_hours_settings' )
                      ->setTitle( bkntc__( 'Business Hours' ) )
                      ->setDescription( bkntc__( 'You will be able to co-ordinate your company\'s overall work schedule' ) )
                      ->setIcon( Helper::icon( 'business-hours-settings.svg', 'Settings' ) )
                      ->setPriority( 5 );
        }

        if ( Capabilities::userCan( 'settings_holidays' ) && Capabilities::tenantCan( 'settings_holidays' ) )
        {
            SettingsMenuUI::get( 'holidays_settings' )
                      ->setTitle( bkntc__( 'Holidays' ) )
                      ->setDescription( bkntc__( 'You can select dates that you are unavailable or on holiday' ) )
                      ->setIcon( Helper::icon( 'holidays-settings.svg', 'Settings' ) )
                      ->setPriority( 6 );
        }

        SettingsMenuUI::get( 'integrations' )
                  ->setTitle( bkntc__('Integrations settings') )
                  ->setDescription( bkntc__('You can change settings for integrated services from here.') )
                  ->setIcon( Helper::icon('integrations-settings.svg', 'Settings') )
                  ->setPriority( 8 )
                  ->requireSubItems();

		if ( ! Helper::isSaaSVersion() ) {
            if ( Capabilities::userCan( "settings_integrations_google_login" ) ) {
                SettingsMenuUI::get( 'integrations' )
                    ->subItem( 'integrations_facebook_api_settings' )
                    ->setTitle( bkntc__( 'Continue with Facebook' ) )
                    ->setPriority( 1 );
            }

            if ( Capabilities::userCan( "settings_integrations_facebook_api" ) ) {
                SettingsMenuUI::get( 'integrations' )
                    ->subItem( 'integrations_google_login_settings' )
                    ->setTitle( bkntc__( 'Continue with Google' ) )
                    ->setPriority( 2 );
            }

            if ( Capabilities::userCan( "settings_backup" ) ) {
                SettingsMenuUI::get( 'backup_settings' )
                    ->setTitle( bkntc__('Export & Import data') )
                    ->setDescription( bkntc__('You can export all Booknetic data and import from here.') )
                    ->setIcon( Helper::icon('backup-settings.svg', 'Settings') )
                    ->setPriority( 9 );
            }

            if ( Capabilities::userCan( "page_settings" ) && Capabilities::tenantCan( 'page_settings' ) ) {
                SettingsMenuUI::get( 'frontend' )
                    ->subItem( 'page_settings' )
                    ->setTitle( bkntc__( 'Pages' ) )
                    ->setPriority( 3 );
            }
		} else {
            if ( Capabilities::tenantCan( 'settings_profile_settings' ) && Helper::isTenant() ) {
                SettingsMenuUI::get( 'profile_settings' )
                    ->setTitle( bkntc__( 'Profile Settings' ) )
                    ->setDescription( bkntc__( 'Update your profile information' ) )
                    ->setIcon( Helper::icon( 'profile-settings.svg', 'Settings' ) )
                    ->setPriority( 4 );

                SettingsMenuUI::get( 'profile_settings' )
                    ->subItem('profile_details')
                    ->setTitle( bkntc__( 'Profile Details' ) )
                    ->setPriority( 4 );

                SettingsMenuUI::get( 'profile_settings' )
                    ->subItem('change_password')
                    ->setTitle( bkntc__( 'Change Password' ) )
                    ->setPriority( 4 );

                SettingsMenuUI::get( 'profile_settings' )
                    ->subItem('delete_account')
                    ->setTitle( bkntc__( 'Delete Account' ) )
                    ->setPriority( 4 );
            }
        }

		$this->view( 'index', [
			'menu' => SettingsMenuUI::getItems()
		] );
	}

}