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