1/** 2 * 3 * Check Make Gift 4 * 5 * All'avvio di ogni pagina lo script nasconde se presenti i tre ID in cui vengono ineriti i campi custom della form woocommerce 6 * Al click della checkbox custom del plugin mostro o nascondo gli elementi 7 * 8 * 9 *----> MODIFICA 22/12/2025<----- 10 *** Gestione dinamica dell'asterisco obbligatorio per il campo email regalo.***** 11 */ 12 /** 13 * MODIFICA 22/12/2025 14 * Sostituzione dinamica dell'etichetta (opzionale) con (obbligatorio). 15 */ 16 /*jQuery(document).ready(function($) { 17 var $giftCheckbox = $('#billing_make_gift'); 18 var $emailField = $('#billing_make_gift_email_field'); 19 20 function updateLabel() { 21 var $label = $emailField.find('label'); 22 // WooCommerce inserisce "(opzionale)" dentro uno span con classe .optional 23 var $optionalBadge = $label.find('.optional'); 24 25 if ($giftCheckbox.is(':checked')) { 26 // 1. Nascondo il badge "opzionale" originale 27 $optionalBadge.hide(); 28 29 // 2. metto il nostro badge "obbligatorio" se non esiste già 30 if ($label.find('.required-custom').length === 0) { 31 $label.append(' <span class="required-custom" style="color:red; font-weight:bold;">(obbligatorio) *</span>'); 32 } 33 34 $emailField.addClass('validate-required'); 35 } else { 36 // 3. Se togliamo la spunta, ripristiniamo tutto 37 $optionalBadge.show(); 38 $label.find('.required-custom').remove(); 39 $emailField.removeClass('validate-required'); 40 } 41 } 42 43 // Ascolta il cambio della checkbox 44 $giftCheckbox.on('change', function() { 45 updateLabel(); 46 }); 47 48 // Esegui al caricamento 49 updateLabel(); 50 });*/ 51 52 /** 53 * MODIFICA 04/02/2026 54 * Forza la scritta (obbligatorio) SOLO per il campo Email Beneficiario ELIMINATO CAMPO INDIRIZZO. 55 * Gli altri campi mantengono il comportamento standard. 56 * -->100% che nel giro di due giorni me lo fanno togliere, infatti lascio il codice precedente commentato come backup <-- 57 */ 58 jQuery(document).ready(function($) { 59 var $giftCheckbox = $('#billing_make_gift'); 60 var $emailField = $('#billing_make_gift_email_field'); 61 var $firstNameField = $('#billing_make_gift_firstname_field'); 62 var $lastNameField = $('#billing_make_gift_lastname_field'); 63 64 // Funzione per truccare l'etichetta dell'email (rimuove opzionale, mette obbligatorio) 65 function fixEmailLabel() { 66 var $label = $emailField.find('label'); 67 $label.find('.optional').remove(); 68 69 var currentHtml = $label.html(); 70 var cleanHtml = currentHtml.replace('(opzionale)', '').trim(); 71 72 if ($label.find('.required-custom').length === 0) { 73 $label.html(cleanHtml + ' <span class="required-custom" style="color:red; font-weight:bold;">(obbligatorio) *</span>'); 74 } 75 } 76 77 // Funzione per mostrare/nascondere i campi (Nome, Cognome, Email) 78 function toggleGiftFields() { 79 if ($giftCheckbox.is(':checked')) { 80 $emailField.show(); 81 $firstNameField.show(); 82 $lastNameField.show(); 83 } else { 84 $emailField.hide(); 85 $firstNameField.hide(); 86 $lastNameField.hide(); 87 } 88 } 89 90 // Esecuzione al caricamento 91 fixEmailLabel(); 92 toggleGiftFields(); 93 94 // Esecuzione al cambio della checkbox 95 $giftCheckbox.on('change', toggleGiftFields); 96 97 // Fix per aggiornamenti AJAX di WooCommerce 98 $(document.body).on('updated_checkout', function() { 99 fixEmailLabel(); 100 }); 101 });
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.