Ce script permet de selectionner automatiquement une option de variation d’un produit dans woocommerce si elle est la seule disponible. Par exemple, si vous choisissez un t-shirt en S et que la seule couleur disponible pour cette taille est bleu, cette option sera automatiquement selectionnée.
add_action( 'wp_footer', 'auto_select_variation_option' );
function auto_select_variation_option() {
if ( ! is_product() ) {
return;
}
?>
<script type="text/javascript">
jQuery(document).ready(function($){
// Fonction pour sélectionner automatiquement l'attribut avec une seule option disponible
function autoSelectSingleOption() {
var changeTriggered = false; // Drapeau pour suivre si un changement a été déclenché
$('.variations_form .variations select').each(function(){
if (changeTriggered) {
return false; // Sortir de la boucle si un changement a été déclenché
}
var select = $(this);
var selectedVal = select.val(); // Vérifier si une valeur est déjà sélectionnée
var options = select.find('option').not(':disabled'); // Obtenir les options disponibles
// Vérifier s'il n'y a qu'une seule option sélectionnable et aucune sélection faite
if (options.length === 2 && !selectedVal) {
var optionToSelect = options.last().val(); // La seule option disponible
// Vérifier si cette option est déjà sélectionnée
if (select.val() !== optionToSelect) {
select.val(optionToSelect).trigger('change'); // Sélectionner et déclencher WooCommerce
changeTriggered = true; // Marquer qu'un changement a été déclenché
}
}
});
}
// Lorsque la page est chargée et que la sélection change, on vérifie si une sélection automatique doit être faite
$('.variations_form').on('woocommerce_variation_select_change', function() {
if (!$('.variations_form').hasClass('processing')) { // Éviter de lancer si Ajax est déjà en cours
setTimeout(() => {
autoSelectSingleOption(); // Exécuter lors du changement de variation
}, 160);
}
});
});
</script>
<?php
}