/** * 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 () { ?>