J'ai ces trois modes de livraison sur le site en question, je me suis bien cassé la tête pour que mondial relay ne soit visible que si un mode mondial relay est sélectionné, et qu'il soit requis.
Avant tout, regarde plus haut mon passage en caisse, la répétition le "livraison" en étape 3 est justement pour ca, mais en display:none; grâce à ca, je récupère sur cette page les modes de livraison choisis, ainsi j'ai pu réalisé le code suivant :
if (document.getElementById('hikashop_shipping_manual_1') ||
document.getElementById('hikashop_shipping_manual_1_1') ||
document.getElementById('hikashop_shipping_manual_1_2') ||
document.getElementById('hikashop_shipping_manual_1_3') ||
document.getElementById('hikashop_shipping_manual_1_4') ||
document.getElementById('hikashop_shipping_manual_1_5') ||
document.getElementById('hikashop_shipping_manual_1_6') ||
document.getElementById('hikashop_shipping_manual_2') ||
document.getElementById('hikashop_shipping_manual_2_1') ||
document.getElementById('hikashop_shipping_manual_2_2') ||
document.getElementById('hikashop_shipping_manual_2_3') ||
document.getElementById('hikashop_shipping_manual_2_4') ||
document.getElementById('hikashop_shipping_manual_2_5') ||
document.getElementById('hikashop_shipping_manual_2_6') ||
document.getElementById('hikashop_shipping_manual_3') ||
document.getElementById('hikashop_shipping_manual_3_1') ||
document.getElementById('hikashop_shipping_manual_3_2') ||
document.getElementById('hikashop_shipping_manual_3_3') ||
document.getElementById('hikashop_shipping_manual_3_4') ||
document.getElementById('hikashop_shipping_manual_3_5') ||
document.getElementById('hikashop_shipping_manual_3_6') ||
document.getElementById('hikashop_shipping_manual_4') ||
document.getElementById('hikashop_shipping_manual_4_1') ||
document.getElementById('hikashop_shipping_manual_4_2') ||
document.getElementById('hikashop_shipping_manual_4_3') ||
document.getElementById('hikashop_shipping_manual_4_4') ||
document.getElementById('hikashop_shipping_manual_4_5') ||
document.getElementById('hikashop_shipping_manual_4_6') ||
document.getElementById('hikashop_shipping_manual_11') ||
document.getElementById('hikashop_shipping_manual_11_1') ||
document.getElementById('hikashop_shipping_manual_11_2') ||
document.getElementById('hikashop_shipping_manual_11_3') ||
document.getElementById('hikashop_shipping_manual_11_4') ||
document.getElementById('hikashop_shipping_manual_11_5') ||
document.getElementById('hikashop_shipping_manual_11_6') ||
document.getElementById('hikashop_shipping_manual_13') ||
document.getElementById('hikashop_shipping_manual_13_1') ||
document.getElementById('hikashop_shipping_manual_13_2') ||
document.getElementById('hikashop_shipping_manual_13_3') ||
document.getElementById('hikashop_shipping_manual_13_4') ||
document.getElementById('hikashop_shipping_manual_13_5') ||
document.getElementById('hikashop_shipping_manual_13_6')
) {
if ($('#hikashop_shipping_manual_1').is(':checked') ||
$('#hikashop_shipping_manual_1_1').is(':checked') ||
$('#hikashop_shipping_manual_1_2').is(':checked') ||
$('#hikashop_shipping_manual_1_3').is(':checked') ||
$('#hikashop_shipping_manual_1_4').is(':checked') ||
$('#hikashop_shipping_manual_1_5').is(':checked') ||
$('#hikashop_shipping_manual_1_6').is(':checked') ||
$('#hikashop_shipping_manual_2').is(':checked') ||
$('#hikashop_shipping_manual_2_1').is(':checked') ||
$('#hikashop_shipping_manual_2_2').is(':checked') ||
$('#hikashop_shipping_manual_2_3').is(':checked') ||
$('#hikashop_shipping_manual_2_4').is(':checked') ||
$('#hikashop_shipping_manual_2_5').is(':checked') ||
$('#hikashop_shipping_manual_2_6').is(':checked') ||
$('#hikashop_shipping_manual_3').is(':checked') ||
$('#hikashop_shipping_manual_3_1').is(':checked') ||
$('#hikashop_shipping_manual_3_2').is(':checked') ||
$('#hikashop_shipping_manual_3_3').is(':checked') ||
$('#hikashop_shipping_manual_3_4').is(':checked') ||
$('#hikashop_shipping_manual_3_5').is(':checked') ||
$('#hikashop_shipping_manual_3_6').is(':checked') ||
$('#hikashop_shipping_manual_4').is(':checked') ||
$('#hikashop_shipping_manual_4_1').is(':checked') ||
$('#hikashop_shipping_manual_4_2').is(':checked') ||
$('#hikashop_shipping_manual_4_3').is(':checked') ||
$('#hikashop_shipping_manual_4_4').is(':checked') ||
$('#hikashop_shipping_manual_4_5').is(':checked') ||
$('#hikashop_shipping_manual_4_6').is(':checked') ||
$('#hikashop_shipping_manual_11').is(':checked') ||
$('#hikashop_shipping_manual_11_1').is(':checked') ||
$('#hikashop_shipping_manual_11_2').is(':checked') ||
$('#hikashop_shipping_manual_11_3').is(':checked') ||
$('#hikashop_shipping_manual_11_4').is(':checked') ||
$('#hikashop_shipping_manual_11_5').is(':checked') ||
$('#hikashop_shipping_manual_11_6').is(':checked') ||
$('#hikashop_shipping_manual_13').is(':checked') ||
$('#hikashop_shipping_manual_13_1').is(':checked') ||
$('#hikashop_shipping_manual_13_2').is(':checked') ||
$('#hikashop_shipping_manual_13_3').is(':checked') ||
$('#hikashop_shipping_manual_13_4').is(':checked') ||
$('#hikashop_shipping_manual_13_5').is(':checked') ||
$('#hikashop_shipping_manual_13_6').is(':checked')
) {
$("#hikashop_checkout_additional_info").show();
} else {
$("#hikashop_checkout_additional_info").detach();
}
}
Ca peut paraître un peu barbare comme ca, je m'explique lol.
Le premier pavé vérifie si l'un des modes de livraison mondial relay existe, dans mon cas (histoire de compliquer encore plus les choses) j'ai plusieurs mondial relay avec pour ID de mode de livraison :1,2,3,4,11,13. Je les répète car si un client choisi plusieurs produits avec des restrictions différentes, l'ID hikashop_shipping_manual_XX se voit rajouter un chiffre selon le bloc "shipping methode" ou il se trouvera donc obligé de prévoir toutes les combinaisons possibles.
Le deuxième pavé vérifie si l'un des modes de livraison mondial relay est coché, idem avec toutes les combinaisons possibles.
Enfin j’exécute mon action si l'une des conditions est remplie, j'affiche le champ personnalisé contenant le plugin mondial relay.
Sinon, si aucune condition ne permet l’exécution de mon action, j'utilise la fonction .detach pour que le plugin n'apparaisse ni dans la page, ni dans le code, ce qui va permettre de le paramétrer en "requis". Si j'utilisais la fonction .hide, équivalent du display: none; un client qui commande à domicile aurait un message "remplir le point relais" alors que le plugin est caché.
NB: Pour exécuter mon code il faut que tu répète l’étape livraison sur la page du mondial relay pour récupérer l'info des modes de livraison choisi, ne pas oublier, sinon rien ne marche. (Tu peux le mettre en display none comme moi)
J'espère que ca à pu résoudre ton problème, si besoin de plus d'explication, je suis dans le coin