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/Providers/Core/AddonLoader.php
<?php

namespace BookneticApp\Providers\Core;

use BookneticApp\Backend\Settings\Helpers\LocalizationService;
use BookneticApp\Providers\Helpers\Helper;
use BookneticApp\Providers\Helpers\Session;

class AddonLoader
{

    private static $textDomainOfAddons = [];

	public function __construct()
	{
        LocalizationService::loadTextdomain( static::getAddonSlug() );

        add_action( 'bkntc_init', [ $this, 'init' ] );
        add_action( 'bkntc_backend', [ $this, 'initBackend' ] );
        add_action( 'bkntc_frontend', [ $this, 'initFrontend' ] );
        add_action( 'bkntcsaas_init', [ $this, 'initSaaS' ] );
        add_action( 'bkntcsaas_backend', [ $this, 'initSaaSBackend' ] );
        add_action( 'bkntcsaas_frontend', [ $this, 'initSaaSFrontend' ] );
	}

    final public static function getAddonTextDomain()
    {
        return LocalizationService::getTextdomain( static::getAddonSlug() );
    }

	final public static function getAddonSlug()
	{
		$calledAddonClass = get_called_class();
		$reflection = new \ReflectionClass( $calledAddonClass );

		$partitions = explode('/', plugin_basename( $reflection->getFileName() ));

		return reset( $partitions );
	}

	final public static function loadAsset( $assetUrl )
	{
		if( preg_match( '/\.(js|css)$/i', $assetUrl ) )
		{
            if ( ! function_exists( 'get_plugins' ) ) {
                require_once ABSPATH . 'wp-admin/includes/plugin.php';
            }

			$plugins    = get_plugins( DIRECTORY_SEPARATOR . self::getAddonSlug() );
			$plugin     = reset( $plugins );

			$assetUrl .= '?v=' . ( isset( $plugin['Version'] ) ? $plugin['Version'] : uniqid() );
		}

		return Helper::assets( $assetUrl, self::getAddonSlug(), true );
	}

	final public function setFrontendAjaxController( $controllerClass )
	{
		Frontend::initAjaxRequests( $controllerClass );
	}

    public static function getVersion()
    {
        $plugin_data = get_file_data(WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . static::getAddonSlug() . DIRECTORY_SEPARATOR . 'init.php' , array('Version' => 'Version') , false);

        return isset($plugin_data['Version']) ? $plugin_data['Version'] : '1.0.0';
    }

    public function init() {}
    public function initBackend() {}
    public function initFrontend() {}
    public function initSaaS() {}
    public function initSaaSBackend() {}
    public function initSaaSFrontend() {}

}