Aide pour modification e-boutique

Fermé
dim19 - Modifié le 24 avril 2020 à 09:04
jordane45 Messages postés 38265 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 novembre 2024 - 24 avril 2020 à 09:09
Bonjour à tous,

Tout d'abord veuillez m'excuser de venir vous sollicité si je ne suis pas au bon endroit et pour ce qui est sans aucun doute une bêtise mais l’actualité étant ce qu'elle est, j'ai besoin d'aide pour un petit détail que je suis obligé de modifier sur mon site de vente en ligne.

Je souhaite limiter le service de livraison à certaines zones géographique délimitée par les codes postaux. La FAQ de mon hébergeur me renvoie vers un code défini qui fonctionne parfaitement à l'exception que je souhaiterais inclure plusieurs zone avec des codes postaux différents. par exemple de 95001 à 95050 et de 97010 à 95080. J'arrive à le faire pour une seule zone mais par pour plusieurs.

Voici le code en lui même:


// implements some native browser validation logic on ZipCode inputs

// that are part of the checkout process forms

//<![CDATA[

function docReady(fn) {

// see if DOM is already available

if (document.readyState === 'complete' || document.readyState === 'interactive') {

// call on next available tick

setTimeout(fn, 1);

} else {

document.addEventListener('DOMContentLoaded', fn);

}

}

docReady(function(){

if (

(document.body.className.indexOf('j-shop-special-page') > -1 ) &&

document.getElementsByClassName('j-checkout__shipping-address-checkbox').length > 0

) {

// initial state

addZipCodePattern(false);

// if user changes state of "other shipping address" checkbox

var otherShippingAdressCheckBox = document.getElementsByClassName('j-checkout-address-checkbox__box')[0];

otherShippingAdressCheckBox.addEventListener('change', function(){

addZipCodePattern(otherShippingAdressCheckBox.checked);

});

}

});

function addZipCodePattern(shippingPartOnly) {

var billingZipCodeInput = document.getElementById('id_billing_zip');

var shippingZipCodeInput = document.getElementById('id_shipping_zip');

var pattern = {name: 'pattern', value: '95[0-9]{3}'};

var title = {name: 'title', value: 'Hors de la zone de livraison'};

// exit if one of both isnt found

if (!billingZipCodeInput || !shippingZipCodeInput) return;

if (shippingPartOnly) {

shippingZipCodeInput.setAttribute(pattern.name, pattern.value);

shippingZipCodeInput.setAttribute(title.name, title.value);

billingZipCodeInput.removeAttribute(pattern.name);

billingZipCodeInput.removeAttribute(title.name);

} else {

billingZipCodeInput.setAttribute(pattern.name, pattern.value);

billingZipCodeInput.setAttribute(title.name, title.value);

shippingZipCodeInput.removeAttribute(pattern.name);

shippingZipCodeInput.removeAttribute(title.name);

}

}

//]]>



EDIT : Ajout du langage dans les balises de code pour avoir la coloration syntaxique


Voici également la page de la FAQ: https://help.jimdo.com/hc/fr/articles/360041272972-Comment-limiter-la-zone-de-livraison-de-ma-boutique-en-ligne-

Si quelqu'un pouvait juste me dire comment inclure 2, 3 ou 4 codes postaux différents, croyez moi que cela me retirerait une fameuse épine hors du pied.

Je vous remercie dores et déjà pour le temps que vous aurez consacré à mon soucis
A voir également:

1 réponse

jordane45 Messages postés 38265 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 novembre 2024 4 694
24 avril 2020 à 09:09
Bonjour,

Visiblement, ce que tu souhaites, c'est autoriser que certains codes postaux.
ça se jouerai donc au niveau du pattern
var pattern = {name: 'pattern', value: '95[0-9]{3}'};

ce "pattern"... c'est ce qu'on appel une expression régulière ( une REGEX).

Tu peux tester les REGEX qui pourrait te convenir sur un site tel que :
https://regex101.com/

Donc, pour autoriser dans le 95 et le 97 par exemple, tu pourrais avoir une regex du genre

(95[0-9]{3})|(97[0-9]{3})

ou mieux

9[57]{1}[0-9]{3}


bref, faut trouver le pattern qui te convient...


0