define(); add_action('elementor/frontend/before_enqueue_scripts', [$this, 'frontend_files']); add_action('elementor/widgets/register', [$this, 'register_widget']); } /** * Enqueue frontend scripts and styles */ public function frontend_files() { wp_register_style('adte_datatables', ADTE_URL . '/assets/css/datatables.min.css', [], self::version); wp_register_style('adte_style', ADTE_URL . '/assets/css/adte_style.css', [], self::version); wp_register_script('adte_datatables', ADTE_URL . '/assets/js/datatables.min.js', [], self::version, true); wp_register_script('adte_script', ADTE_URL . '/assets/js/adte_script.js', ['jquery', 'adte_datatables'], self::version, true); // Pass variables from PHP to our JS file wp_localize_script('adte_script', 'adte_vars', [ 'ajax_url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('adte_nonce'), ]); } /** * Define variables and constants */ public function define() { define('ADTE_VERSION', self::version); define('ADTE_FILE', __FILE__); define('ADTE_DIR', __DIR__); define('ADTE_URL', plugins_url('', ADTE_FILE)); define('ADTE_AEESTS', ADTE_URL . '/assets'); } public function register_widget($widgets_manager) { $file = __DIR__ . "/widgets/advanced-data-table-widget.php"; require_once($file); $widgets_manager->register(new ADTE()); } /** * Instantiate the plugin */ public static function instance() { if (is_null(self::$_instance)) { self::$_instance = new self(); } return self::$_instance; } } ADTE_Plugin::instance();