Els fragments de WooCommerce següents us permetran:
- Canvia l'"etiqueta" del woocommerce ordre_comentaris camp
- Canvieu el "marcador de posició" del woocommerce ordre_comentaris camp
- Afegiu una "descripció" al woocommerce ordre_comentaris camp
- Limiteu el nombre màxim de caràcters al woocommerce ordre_comentaris camp
- Feu el woocommerce ordre_comentaris camp obligatori
- Eviteu l'entrada de signes de puntuació o caràcters especials al woocommerce ordre_comentaris camp
Per què canviar el camp de comentaris de la comanda de WooCommerce?
A la botiga WooCommerce Granges de pastures verdes Utilitzo el camp "Comentaris de la comanda" per recollir les instruccions de lliurament del client que s'imprimiran a l'etiqueta de lliurament del missatger en cas que el client no hi sigui quan s'intenta el lliurament.
El camp "Comentaris de la comanda" per defecte no és suficient perquè:
- Els clients no saben per a què utilitzar-lo, ja que el nom no és descriptiu
- No és obligatori, per tant molta gent ho deixa en blanc
- El portal de reserves de missatgeria té un límit màxim de caràcters i no accepta caràcters especials
Per tant, volia canviar l'etiqueta del camp de comentaris de la comanda de woocommerce, el marcador de posició i la descripció per tal d'orientar els clients a completar-lo correctament, a més de fer-lo obligatori, limitar el nombre màxim de caràcters i evitar caràcters especials per evitar possibles errors.
Anatomia d'un camp de pagament de WooCommerce
Abans de començar és important conèixer els diferents elements que formen un camp de formulari.

L'etiqueta és el títol que es mostra permanentment a sobre del camp.
Si el camp és obligatori, apareixerà l'asterisc vermell i l'usuari no podrà procedir de la compra sense introduir algun text al quadre. (Apareixerà un missatge d'error).
El marcador de posició és el text en gris que es mostra dins del camp fins que l'usuari comença a escriure.

La descripció apareix després que l'usuari faci clic a la casella per oferir una guia addicional.
Com modificar el camp "Comentaris de la comanda" de WooCommerce amb ganxos de filtre
Important
Vegeu els comentaris al codi per a l'explicació de cada part individual. Podeu eliminar les seccions que no necessiteu i canviar el text perquè s'adapti als vostres requisits segons sigui necessari.
// Canvia les notes de comanda a "Instruccions de lliurament" amb regles sobre la compra de Woocommerce a través de woosimon.com add_filter( 'woocommerce_checkout_fields' , 'alter_woocommerce_checkout_fields'); function alter_woocommerce_checkout_fields( $fields ) { // Canvia el nom de l'etiqueta $fields['order']['order_comments']['label'] = __('Instruccions de lliurament', "woocommerce"); // Canvia el marcador de posició $fields['order']['order_comments']['placeholder'] = __('Sense signes de puntuació ni caràcters especials, si us plau', "woocommerce"); // Afegeix una descripció $fields['order']['order_comments']['description'] = __('Si us plau, indiqueu un lloc segur on el missatger pugui deixar la caixa de manera segura si no hi sou en el moment del lliurament. La caixa es pot deixar a l'exterior de manera segura fins a 24 hores després del lliurament. NO deixeu un número de telèfon amb instruccions per trucar. No deixeu cap altre tipus de sol·licituds o missatges especials per als carnissers. Gràcies.', "woocommerce") ; // Fes que sigui necessari $fields['order']['order_comments']['required'] = true; // Afegeix una validació personalitzada per evitar caràcters especials i limita a 52 caràcters com a màxim $fields['order']['order_comments']['custom_attributes'] = array( 'onkeydown' => "javascript: return event.keyCode != 35 &&& event.keyCode != 36 && event.keyCode != 37 && event.keyCode != 38 && event.keyCode != 39 && event.keyCode != 40 && event.keyCode != 45 && event.keyCode != 46 && event .keyCode != 33 && event.keyCode != 34 && event.keyCode != 92 && event.keyCode != 123 && event.keyCode != 125 && event.keyCode != 126 && event.keyCode != 127 && event. keyCode != 128 && event.keyCode != 129 && event.keyCode != 130 && event.keyCode != 131 && event.keyCode != 132 && event.keyCode != 133 && event.keyCode != 134 && event.keyCode != 132 && event.keyCode != 133 && event.keyCode != 134 && event.keyCode != 135 && event.keyCode != 144 && event.keyCode != 145 && event.keyCode != 155 && event.keyCode != 186 && event.keyCode != 187 && event.keyCode != 188 && event.keyCode ! = 189 && event.keyCode != 190 && event.keyCode != 191 && event.keyCode != 192 && event.keyCode != 219 && event.keyCode != 220 && event.keyCode != 221 && event.keyCode != 222", 'maxlength' => 52 ); retorna $camps; } //Consulteu woosimon.com per obtenir fragments de WordPress i Woocommerce més útils!
Un mètode alternatiu per evitar caràcters especials al camp order_comments de WooCommerce
Personalment, prefereixo el mètode anterior per evitar caràcters especials, ja que impedeix que la gent els escrigui en primer lloc.
Quan vaig començar a implementar aquest codi, només tenia el marcador de posició i la descripció sense la validació i molta gent els ignorava i feia servir signes de puntuació i caràcters especials. La primera regla del disseny web: molta gent no pot / no vol llegir, si no voleu que la gent faci alguna cosa, feu-ho impossible!
L'inconvenient del mètode anterior, però, és que no funciona en tots els dispositius. Per exemple, encara puc introduir la puntuació al camp mitjançant el meu teclat Andriod.
El següent codi realitza una validació després del fet, i s'assegurarà que cap caràcters especials o signes de puntuació passaran encara que l'usuari aconsegueixi introduir-los.
//Evita els caràcters especials al camp de comentaris d'ordre a través de www.woosimon.com add_filter('woocommerce_checkout_process', 'prevent_special_chars_in_delivery_instructions'); funció prevent_special_chars_in_delivery_instructions() { $delivery_instructions = $_POST['order_comments']; // Comproveu si el camp conté caràcters especials o signes de puntuació si (preg_match('/[\'^£$%&*()}{@#~?><>,|=+¬]/', $delivery_instructions)) { wc_add_notice('Si us plau, no utilitzeu cap caràcter especial o signe de puntuació al camp Instruccions de lliurament, ja que això provoca un error quan intentem reservar el lliurament amb el missatger. Gràcies.', 'error'); } } //Comproveu woosimon.com per obtenir fragments de WordPress i Woocommerce més útils!
A diferència del primer mètode, aquest codi no impedirà que els usuaris escriguin caràcters especials en primer lloc, sinó que s'executarà després que l'usuari prengui el botó d'enviament. Si hi ha caràcters especials al camp, evitarà que l'enviament passi i mostrarà el missatge d'error a la cadena.
L'inconvenient potencial d'aquest mètode és que podria frustrar els usuaris i conduir a un carretó abandonat, de manera que haureu de prendre una decisió sobre si val la pena el risc.
Potser una mica exagerat, però en realitat executo els dos fragments, fent servir aquest segon com a còpia de seguretat si el primer falla per qualsevol motiu.
L'article Eviteu caràcters especials al camp "Comentaris de la comanda" de WooCommerce: sense connector va aparèixer per primera vegada woosimon.com