recherche

Maison  >  Questions et réponses  >  le corps du texte

Personnaliser les champs d'adresse sur WooCommerce Mon compte et Paiement

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粉463824410P粉463824410399 Il y a quelques jours890

répondre à tous(1)je répondrai

  • P粉714890053

    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

    répondre
    0
  • Annulerrépondre