/**
* Navigazione AJAX del mini calendario 3Task
*/
// Registra la richiesta AJAX per utenti collegati e visitatori.
add_action('wp_ajax_threecal_mini_month', 'carica_mini_calendario_3task');
add_action('wp_ajax_nopriv_threecal_mini_month', 'carica_mini_calendario_3task');
function carica_mini_calendario_3task() {
$mese = isset($_POST['month']) ? absint($_POST['month']) : 0;
$anno = isset($_POST['year']) ? absint($_POST['year']) : 0;
if ($mese < 1 || $mese > 12 || $anno < 2000 || $anno > 2100) {
wp_send_json_error('Mese o anno non validi.');
}
if (!shortcode_exists('threecal_mini')) {
wp_send_json_error('Shortcode del calendario non disponibile.');
}
// Conserva i valori originali.
$mese_precedente = $_GET['cc_mini_month'] ?? null;
$anno_precedente = $_GET['cc_mini_year'] ?? null;
// Imposta il mese e l'anno richiesti.
$_GET['cc_mini_month'] = $mese;
$_GET['cc_mini_year'] = $anno;
// Genera il solo mini calendario.
$html = do_shortcode('[threecal_mini]');
// Ripristina i valori originali.
if ($mese_precedente === null) {
unset($_GET['cc_mini_month']);
} else {
$_GET['cc_mini_month'] = $mese_precedente;
}
if ($anno_precedente === null) {
unset($_GET['cc_mini_year']);
} else {
$_GET['cc_mini_year'] = $anno_precedente;
}
if (empty($html)) {
wp_send_json_error('Impossibile generare il calendario.');
}
wp_send_json_success(array(
'html' => $html
));
}
// Rende disponibile l'indirizzo AJAX allo script del footer.
add_action('wp_footer', function () {
?>