Maison > Questions et réponses > le corps du texte
J'utilise woocommerce_checkout_fields
filtre pour modifier la valeur de l'étiquette du champ woocommerce. Cela fonctionne bien sur la page de paiement (comme on peut s'y attendre), mais je ne comprends pas pourquoi cela ne fonctionne pas sur la page du compte. Je pensais que les champs étaient toujours pris au même endroit ? Plus précisément, je parle du champ d'adresse sur le point de terminaison de modification de l'adresse sur la page du compte woocommerce ?
Ma tentative de code :
function custom_woocommerce_fields( $fields ) { // Billing Fields $fields['billing']['billing_first_name']['label'] = 'First name'; $fields['billing']['billing_last_name']['label'] = 'Last name'; $fields['billing']['billing_company']['label'] = 'Company name'; $fields['billing']['billing_address_1']['label'] = 'Street address'; $fields['billing']['billing_address_2']['label'] = 'Apartment, unit, etc.'; $fields['billing']['billing_city']['label'] = 'City'; $fields['billing']['billing_country']['label'] = 'Country'; $fields['billing']['billing_state']['label'] = 'County/State'; $fields['billing']['billing_postcode']['label'] = 'Postcode'; $fields['billing']['billing_email']['label'] = 'Email'; $fields['billing']['billing_phone']['label'] = 'Phone'; // Shipping Fields $fields['shipping']['shipping_first_name']['label'] = 'First name'; $fields['shipping']['shipping_last_name']['label'] = 'Last name'; $fields['shipping']['shipping_company']['label'] = 'Company name'; $fields['shipping']['shipping_address_1']['label'] = 'Street address'; $fields['shipping']['shipping_address_2']['label'] = 'Apartment, unit, etc.'; $fields['shipping']['shipping_city']['label'] = 'City'; $fields['shipping']['shipping_country']['label'] = 'Country'; $fields['shipping']['shipping_state']['label'] = 'County/State'; $fields['shipping']['shipping_postcode']['label'] = 'Postcode'; $fields['shipping']['shipping_email']['label'] = 'Email'; $fields['shipping']['shipping_phone']['label'] = 'Phone'; // Account Fields $fields['account']['account_username']['label'] = 'Username or email'; $fields['account']['account_password']['label'] = 'Password'; // Order Fields $fields['order']['order_comments']['label'] = 'Order notes'; return $fields; } add_filter( 'woocommerce_checkout_fields' , 'custom_woocommerce_fields' );
Les champs de Mon compte > Adresses ne sont pas personnalisés (modification des adresses de facturation ou de livraison).
P粉7148900532023-10-30 10:43:31
Ce qui suit affectera les champs de la section Mon compte « Adresse » et les champs de paiement, permettant la personnalisation des champs de facturation et d'expédition dans la section Mon compte correspondante.
1) Pour les champs Mon compte et adresse lors du paiement (Facturation et expédition) :
Dans certains cas, vous devez utiliser ce filtre sur le champ d'adresse et il s'appliquera à tous les Champs par défaut de facturation et d'expédition :
// Billing and Shipping fields on my account edit-addresses and checkout add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_address_fields' ); function custom_override_default_address_fields( $fields ) { $fields['first_name']['label'] = 'First name'; $fields['last_name']['label'] = 'Last name'; $fields['company']['label'] = 'Company name'; $fields['address_1']['label'] = 'Street address'; $fields['address_2']['label'] = 'Apartment, unit, etc.'; $fields['city']['label'] = 'City'; $fields['country']['label'] = 'Country'; $fields['state']['label'] = 'County/State'; $fields['postcode']['label'] = 'Postcode'; return $fields; }
Vous pouvez utiliser les balises conditionnelles WooCommerce is_account_page() et is_checkout() pour cibler la page de mon compte ou ma page de paiement...
2) Pour les champs de facturation de mon compte, modifier l'adresse et payer :
// Billing fields on my account edit-addresses and checkout add_filter( 'woocommerce_billing_fields' , 'custom_billing_fields' ); function custom_billing_fields( $fields ) { // Billing Fields $fields['billing_first_name']['label'] = 'First name'; $fields['billing_last_name']['label'] = 'Last name'; $fields['billing_company']['label'] = 'Company name'; $fields['billing_address_1']['label'] = 'Street address'; $fields['billing_address_2']['label'] = 'Apartment, unit, etc.'; $fields['billing_city']['label'] = 'City'; $fields['billing_country']['label'] = 'Country'; $fields['billing_state']['label'] = 'County/State'; $fields['billing_postcode']['label'] = 'Postcode'; $fields['billing_email']['label'] = 'Email'; $fields['billing_phone']['label'] = 'Phone'; return $fields; }
3) Pour les champs d'expédition sur mon compte, modifiez l'adresse et passez à la caisse
// Shipping fields on my account edit-addresses and checkout add_filter( 'woocommerce_shipping_fields' , 'custom_shipping_fields' ); function custom_shipping_fields( $fields ) { // Shipping Fields $fields['shipping_first_name']['label'] = 'First name'; $fields['shipping_last_name']['label'] = 'Last name'; $fields['shipping_company']['label'] = 'Company name'; $fields['shipping_address_1']['label'] = 'Street address'; $fields['shipping_address_2']['label'] = 'Apartment, unit, etc.'; $fields['shipping_city']['label'] = 'City'; $fields['shipping_country']['label'] = 'Country'; $fields['shipping_state']['label'] = 'County/State'; $fields['shipping_postcode']['label'] = 'Postcode'; $fields['shipping_email']['label'] = 'Email'; $fields['shipping_phone']['label'] = 'Phone'; return $fields; }
4) Tous les (autres) champs ne sont utilisés que lors du paiement :
// All fields only on checkout add_filter( 'woocommerce_checkout_fields' , 'other_custom_checkout_fields' ); function other_custom_checkout_fields( $fields ) { // Account Fields $fields['account']['account_username']['label'] = 'Username or email'; $fields['account']['account_password']['label'] = 'Password'; // Order Fields $fields['order']['order_comments']['label'] = 'Order notes'; return $fields; }
5) De plus, selon le pays sélectionné, vous devrez utiliser des filtres :
woocommerce_country_locale_field_selectors
woocommerce_get_country_locale_default
Ceux-ci sont dans la classe WC_Country
.
Le code est dans le fichier function.php du thème enfant actif (ou thème actif).
Documentation officielle associée : Personnalisez les champs de paiement à l'aide d'actions et de filtres