Newer
Older
itcca-allievi / plugin / itcca-allievi / itcca-allievi.php
<?php
/**
 * Plugin Name:       ITCCA Allievi
 * Plugin URI:        https://example.com
 * Description:       Gestione iscrizioni allievi ai corsi di Tai Chi: estende l'utente WordPress con i campi del registro INSARRI, espone un form pubblico di iscrizione e sincronizza i dati con un Google Sheet privato selezionabile da Drive.
 * Version:           1.0.0
 * Requires at least: 6.0
 * Requires PHP:      8.1
 * Author:            Fabio Arrigoni
 * License:           GPL-2.0-or-later
 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain:       itcca-allievi
 * Domain Path:       /languages
 *
 * @package ItccaAllievi
 */

declare(strict_types=1);

if (!defined('ABSPATH')) {
    exit;
}

define('ITCCA_VERSION', '1.0.0');
define('ITCCA_FILE', __FILE__);
define('ITCCA_PATH', plugin_dir_path(__FILE__));
define('ITCCA_URL', plugin_dir_url(__FILE__));
define('ITCCA_META_PREFIX', 'itcca_');
define('ITCCA_ROLE', 'allievo');
define('ITCCA_OPTION_PREFIX', 'itcca_');

if (file_exists(ITCCA_PATH . 'vendor/autoload.php')) {
    require_once ITCCA_PATH . 'vendor/autoload.php';
}

spl_autoload_register(static function (string $class): void {
    if (!str_starts_with($class, 'ItccaAllievi\\')) {
        return;
    }
    $relative = substr($class, strlen('ItccaAllievi\\'));
    $relative = str_replace('\\', DIRECTORY_SEPARATOR, $relative);
    $file = ITCCA_PATH . 'includes' . DIRECTORY_SEPARATOR . 'class-'
        . strtolower(preg_replace('/(?<!^)([A-Z])/', '-$1', $relative)) . '.php';
    if (file_exists($file)) {
        require_once $file;
    }
});

register_activation_hook(__FILE__, [\ItccaAllievi\Plugin::class, 'activate']);
register_deactivation_hook(__FILE__, [\ItccaAllievi\Plugin::class, 'deactivate']);

add_action('plugins_loaded', static function (): void {
    \ItccaAllievi\Plugin::instance()->boot();
});