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();