De vegades en WordPress-Woocmmerce ens trobem amb personalitzacions com aquesta. Si vols enviar soles a les illes Canàries i assignar un preu diferent a cada illa? Allà va el tema fill i el functions.php al rescat.
Ací teniu l’exemple del codi que s’insereix al functions.php. Aquest codi el podeu personalitzar com vulgueu, però sempre indicant el país. En aquest cas el codi del país és el d’Espanya (ES).
/*Zones Illes Canaries Woocommerce*/ add_filter( 'woocommerce_states', 'canarias_woocommerce_zones' ); function canarias_woocommerce_zones( $zonesCanaries ) { $zonesCanaries['ES'] = array( 'XX1' => 'Gran Canaria', 'XX2' => 'Lanzarote', 'XX3' => 'Fuerteventura', 'XX4' => 'Tenerife', 'XX5' => 'La Gomera', 'XX6' => 'La Palma', 'XX7' => 'El Hierro' ); return $zonesCanaries; }
Una vegada configurat, ens apareixeran aquestes zones a la zona d’administració de Woocommerce, on assignarem preus diferents i configuracions diferents a cadascuna d’elles:
Per exemple, personalitzarem una zona que es dirà “El Hierro”, amb el preu d’enviament per a eixa zona, i indicant-li la regió que hem personalitzat.
Una vegada les tenim totes creades, ja tenim la nostra zona d’enviaments personalitzada per a les Illes Canàries. A la pàgina de finalitzar la compra, ens apareixeran soles aquestes zones (important, soles apareixen les que indiquem!) , i ens mostrarà el preu adient a cadascuna.
Per a eliminar el codi postal del formulari de pagament:
// Deshabilitar camps del formulari de compra add_filter( 'woocommerce_checkout_fields' , 'eliminar_check_formulari' ); function eliminar_check_formulari( $fields ) { unset($fields['billing']['billing_postcode']); return $fields; }
Per a canviar lo de “Región / Provincia” per “Illes”, utilitzarem aquest codi, també al functions.php:
// Canviar provincia per Illes add_filter( 'woocommerce_checkout_fields' , 'cambiar_nombre_state' ); function cambiar_nombre_state( $fields ) { $fields['billing']['billing_state']['placeholder'] = 'ISLA'; $fields['billing']['billing_state']['label'] = 'ISLA'; return $fields; }
I per a situar aquest camp al principi del formulari, aquest:
// Canviar ordre dels camps add_filter( 'woocommerce_checkout_fields', 'illa_al_principi' ); function illa_al_principi( $checkout_fields ) { $checkout_fields['billing']['billing_state']['priority'] = 4; return $checkout_fields; }
Al funcitons.php podem jugar amb molts “snippets”. Podeu consultar-los al següent enllaç. Ací un llistat dels camps editables al checkout:
Billing billing_first_name billing_last_name billing_company billing_address_1 billing_address_2 billing_city billing_postcode billing_country billing_state billing_email billing_phone Shipping shipping_first_name shipping_last_name shipping_company shipping_address_1 shipping_address_2 shipping_city shipping_postcode shipping_country shipping_state Account account_username account_password account_password-2 Order order_comments