File: /home/clavospa/public_html/wp-content/plugins/LayerSlider/assets/classes/class.ls.elementor.php
<?php
namespace ElementorLayerSlider;
// Prevent direct file access
defined( 'LS_ROOT_FILE' ) || exit;
final class LS_Elementor {
const MINIMUM_ELEMENTOR_VERSION = '3.5.0';
const MINIMUM_PHP_VERSION = '5.4';
private static $_instance = null;
public static function instance() {
if( is_null( self::$_instance ) ) {
self::$_instance = new self();
}
return self::$_instance;
}
public function widget_scripts() {
ls_enqueue_slider_library();
wp_enqueue_style('ls-elementor', LS_ROOT_URL.'/static/admin/css/elementor.css', ['elementor-editor'], LS_PLUGIN_VERSION );
wp_enqueue_script( 'ls-elementor-backend', LS_ROOT_URL.'/static/admin/js/elementor-backend.js', ['kreatura-modal'], LS_PLUGIN_VERSION, true);
wp_localize_script('ls-elementor-backend', 'LS_Widget', [
'editorUrl' => admin_url( 'admin.php?page=layerslider&action=edit&id=' ),
'i18n' => [
'modalTitle' => __('Quick Edit LayerSlider', 'LayerSlider'),
'ChangesYouMadeMayNotBeSaved' => __( 'Changes you made may not be saved. Are you sure you want to continue?', 'LayerSlider' ),
]
]);
}
public function register_widgets( $widgets_manager ) {
// Load Widget class and register it
require_once( LS_ROOT_PATH . '/classes/class.ls.elementor.widget.php' );
$widgets_manager->register( new Widgets\LS_Elementor_Widget() );
// Override user provided advanced settings in order to
// force loading all scripts in the preview window.
if( is_admin() || ! empty( $_GET['elementor-preview'] ) ) {
add_filter( 'ls_conditional_script_loading', function( $value ) { return false; } );
add_filter( 'ls_include_at_footer', function( $value ) { return false; } );
add_filter( 'ls_load_all_js_files', function( $value ) { return true; } );
}
}
public function init() {
// Check if Elementor installed and activated
if( ! did_action( 'elementor/loaded' ) ) {
return false;
}
// Check for required Elementor version
if( version_compare( ELEMENTOR_VERSION, self::MINIMUM_ELEMENTOR_VERSION, '<' ) ) {
return false;
}
// Check for required PHP version
if ( version_compare( PHP_VERSION, self::MINIMUM_PHP_VERSION, '<' ) ) {
return false;
}
// Register widget scripts
add_action( 'elementor/editor/before_enqueue_scripts', [ $this, 'widget_scripts' ] );
// Register widgets
add_action( 'elementor/widgets/register', [ $this, 'register_widgets' ] );
}
private function __construct() {
add_action( 'plugins_loaded', [ $this, 'init' ] );
}
}
LS_Elementor::instance();