HEX
Server: nginx/1.24.0
System: Linux DGT-WORDPRESS-VM-SERVER 6.14.0-1014-azure #14~24.04.1-Ubuntu SMP Fri Oct 3 20:52:11 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.4.12
Disabled: NONE
Upload Files
File: /mnt/data/demo-doccurelanding-wp/wp-content/plugins/dreamslanding-widgets/plugin.php
<?php
namespace Dreamslandingelementor;
use Dreamslandingelementor\Widgets\DTS_hero_banner;
use Dreamslandingelementor\Widgets\DTS_top_highlights;
use Dreamslandingelementor\Widgets\DTS_client_section;
use Dreamslandingelementor\Widgets\DTS_business_section;
use Dreamslandingelementor\Widgets\DTS_faq;
use Dreamslandingelementor\Widgets\DTS_enhanced;
use Dreamslandingelementor\Widgets\DTS_why_choose;
use Dreamslandingelementor\Widgets\DTS_journey;
use Dreamslandingelementor\Widgets\DTS_enterprise_grade;
use Dreamslandingelementor\Widgets\DTS_secure_section;
use Dreamslandingelementor\Widgets\DTS_insurance_section;
use Dreamslandingelementor\Widgets\DTS_case_studies;
use Dreamslandingelementor\Widgets\DTS_driving;
use Dreamslandingelementor\Widgets\DTS_research_articles;
use Dreamslandingelementor\Widgets\DTS_questions_answers;
use Dreamslandingelementor\Widgets\DTS_icon_box;
use Dreamslandingelementor\Widgets\DTS_hero_banner_inner;
use Dreamslandingelementor\Widgets\DTS_Inner_aboutus;
use Dreamslandingelementor\Widgets\DTS_box_section;
use Dreamslandingelementor\Widgets\DTS_Inner_tabs;

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
/**
 * Main Plugin Class
 *
 * Register new elementor widget.
 *
 * @since 1.0.0
 */
class Plugin {
	/**
	 * Constructor
	 *
	 * @since 1.0.0
	 *
	 * @access public
	 */
	public function __construct() {
		$this->add_actions();
	}
	/**
	 * Add Actions
	 *
	 * @since 1.0.0
	 *
	 * @access private
	 */
	private function add_actions() {
		\add_action( 'elementor/widgets/register', [ $this, 'on_widgets_registered' ] );
		\add_action( 'elementor/frontend/after_register_scripts', function() {
			\wp_register_script( 'dreamslandingelementor-elementor', \plugins_url( '/assets/js/dreamslandingelementor-elementor.js', ELEMENTOR_DREAMSLANDINGELEMENTOR__FILE__ ), [ 'jquery' ], false, true );
			\wp_localize_script( 'dreamslandingelementor-elementor', 'ajax_object', array( 'ajax_url' => \admin_url( 'admin-ajax.php' ) ) );
			\wp_register_script( 'markerclusterer', \plugins_url( '/assets/js/markerclusterer.js', ELEMENTOR_DREAMSLANDINGELEMENTOR__FILE__ ), [ 'jquery' ], false, true );
		} );

		// Register script handle in Elementor editor context as well (no enqueue here)
		\add_action( 'elementor/editor/after_register_scripts', function() {
			\wp_register_script( 'dreamslandingelementor-elementor', \plugins_url( '/assets/js/dreamslandingelementor-elementor.js', ELEMENTOR_DREAMSLANDINGELEMENTOR__FILE__ ), [ 'jquery' ], false, true );
		} );

		// Frontend enqueue
		\add_action( 'elementor/frontend/before_enqueue_scripts', function() {
			\wp_enqueue_script( 'dreamslandingelementor-elementor' );
		} );

		// Enqueue our (now minimal) JS inside the preview iframe to force visibility + observer
		\add_action( 'elementor/preview/enqueue_scripts', function() {
			if ( ! \wp_script_is( 'dreamslandingelementor-elementor', 'registered' ) ) {
				\wp_register_script( 'dreamslandingelementor-elementor', \plugins_url( '/assets/js/dreamslandingelementor-elementor.js', ELEMENTOR_DREAMSLANDINGELEMENTOR__FILE__ ), [ 'jquery' ], false, true );
			}
			\wp_enqueue_script( 'dreamslandingelementor-elementor' );
		} );

		// Editor safeguard CSS to keep AOS-visible
		\add_action( 'elementor/editor/after_enqueue_styles', function() {
			$css = 'html body [data-aos],html body .aos-init,html body .aos-init[data-aos]{opacity:1!important;transform:none!important;visibility:visible!important;transition:none!important}';
			\wp_register_style( 'dreamslandingelementor-editor-inline', false );
			\wp_enqueue_style( 'dreamslandingelementor-editor-inline' );
			\wp_add_inline_style( 'dreamslandingelementor-editor-inline', $css );
		} );

		// Also inject the same CSS into the preview iframe (canvas)
		\add_action( 'elementor/preview/enqueue_styles', function() {
			$css = 'html body [data-aos],html body .aos-init,html body .aos-init[data-aos]{opacity:1!important;transform:none!important;visibility:visible!important;transition:none!important}';
			\wp_register_style( 'dreamslandingelementor-preview-inline', false );
			\wp_enqueue_style( 'dreamslandingelementor-preview-inline' );
			\wp_add_inline_style( 'dreamslandingelementor-preview-inline', $css );
		} );
	}
	/**
	 * On Widgets Registered
	 *
	 * @since 1.0.0
	 *
	 * @access public
	 */
	public function on_widgets_registered() {
		$this->includes();
		$this->register_widget();
	}

	/**
	 * Includes
	 *
	 * @since 1.0.0
	 *
	 * @access private
	 */
	private function includes() {
 		require __DIR__ . '/widgets/class-hero-banner.php';
 		require __DIR__ . '/widgets/class-top-highlights.php';
 		require __DIR__ . '/widgets/class-client-section.php';
 		require __DIR__ . '/widgets/class-business-section.php';
 		require __DIR__ . '/widgets/class-faq.php';
 		require __DIR__ . '/widgets/class-enhanced.php';
 		require __DIR__ . '/widgets/class-why-choose.php';
 		require __DIR__ . '/widgets/class-journey.php';
 		require __DIR__ . '/widgets/class-enterprise-grade.php';
 		require __DIR__ . '/widgets/class-secure-section.php';
 		require __DIR__ . '/widgets/class-insurance-section.php';
 		require __DIR__ . '/widgets/class-case-studies.php';
 		require __DIR__ . '/widgets/class-driving.php';
		require __DIR__ . '/widgets/class-research-articles.php';
		require __DIR__ . '/widgets/class-questions-answers.php';
        require __DIR__ . '/widgets/class-icon-box.php';
         require __DIR__ . '/widgets/class-inner-banner.php';
		require __DIR__ . '/widgets/class-inner-about.php';
		require __DIR__ . '/widgets/class-inner-box-section.php';
		require __DIR__ . '/widgets/class-inner-tabs.php';

		 
  	}

	/**
	 * Register Widget
	 *
	 * @since 1.0.0
	 *
	 * @access private
	 */
	private function register_widget() {
 		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_hero_banner() );
 		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_top_highlights() );
 		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_client_section() );
 		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_business_section() );
 		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_faq() );
 		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_enhanced() );
 		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_why_choose() );
 		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_journey() );
 		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_enterprise_grade() );
 		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_secure_section() );
 		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_insurance_section() );
        \Elementor\Plugin::instance()->widgets_manager->register( new DTS_case_studies() );
        \Elementor\Plugin::instance()->widgets_manager->register( new DTS_driving() );
        \Elementor\Plugin::instance()->widgets_manager->register( new DTS_research_articles() );
        \Elementor\Plugin::instance()->widgets_manager->register( new DTS_questions_answers() );
        \Elementor\Plugin::instance()->widgets_manager->register( new DTS_icon_box() );
        \Elementor\Plugin::instance()->widgets_manager->register( new DTS_hero_banner_inner() );
		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_Inner_aboutus() );
		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_box_section() );
		\Elementor\Plugin::instance()->widgets_manager->register( new DTS_Inner_tabs() );
		
    	}
}

new Plugin();