* Author: * Author URI: * Description: * Version: * Requires at least: * Requires PHP: * License: */ require_once __DIR__ . '/includes/constants.php'; require_once __DIR__ . '/includes/settings.php'; require_once __DIR__ . '/includes/events-list-shortcut.php'; require_once __DIR__ . '/includes/events-list-widget.php'; // Exit if this file is called directly. if (!defined('ABSPATH')) { exit; } final class Mobilizon_Connector { private function __construct() { add_action('init', [$this, 'register_blocks']); add_action('init', [$this, 'register_settings']); add_action('init', [$this, 'register_shortcut']); add_action('widgets_init', [$this, 'register_widget']); add_action('wp_enqueue_scripts', [$this, 'register_scripts']); register_activation_hook(__FILE__, [$this, 'enable_activation']); } public static function init() { // Create singleton instance. static $instance = false; if(!$instance) { $instance = new self(); } return $instance; } public function enable_activation() { MobilizonConnector\Settings::setDefaultOptions(); } public function register_blocks() { wp_register_script(MobilizonConnector\NAME . '-block-starter', plugins_url('front/block-events-loader.js', __FILE__ ), [ 'wp-blocks', 'wp-components', 'wp-editor', 'wp-i18n' ]); register_block_type(MobilizonConnector\NAME . '/events-list', [ 'editor_script' => MobilizonConnector\NAME . '-block-starter' ]); } public function register_settings() { MobilizonConnector\Settings::init(); } public function register_scripts() { wp_enqueue_script(MobilizonConnector\NAME . '-js', plugins_url('front/events-loader.js', __FILE__ )); } public function register_shortcut() { MobilizonConnector\EventsListShortcut::init(); } public function register_widget() { register_widget('MobilizonConnector\EventsListWidget'); } } function mobilizon_connector_run_plugin() { return Mobilizon_Connector::init(); } mobilizon_connector_run_plugin();