Ajouter des champs lors de la creation de compte

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 35)
  • Auteur
    Messages
  • #544258
    ruben88
    Membre
    Initié WordPress
    2 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress :
    – Version de PHP/MySQL :
    – Thème utilisé :
    – Extensions en place :
    – Nom de l’hebergeur :
    – Adresse du site :

    Problème(s) rencontré(s) :

    Bonjour,

    J’aimerai savoir comment je pourrai ajouter des champs lors de l’inscription a mon site dans l’option My account??
    J’aimerai ajouter un champs confirmation du mot de passe, téléphone et sexe

    Merci pour votre aide!

    #983025
    rmdiffusion
    Membre
    Padawan WordPress
    90 contributions

    Question complexe apparemment.

    Comment ajouter également le n° de TVA (Siret) dans les informations client, lors de la création du compte ou par après ? Car pour facturer à une entreprise, c’est obligatoire.

    Merci pour votre attention

    #983026
    espoontintin
    Participant
    Maître WordPress
    805 contributions

    Regardez du côté des customs fields déjà plusieurs fois abordé dans ce forum sur woocommerce.
    Cela se passe du côté du checkout

    #983027
    rmdiffusion
    Membre
    Padawan WordPress
    90 contributions

    Merci, j’ai fait plusieurs recherches sur le présent forum avant de poster, mais je n’avais peut-être pas utilisé les bons mots clés, … Je file rechercher les customs fields …

    #983028
    espoontintin
    Participant
    Maître WordPress
    805 contributions

    Pour faire simple, le compte client se créé dès la première commande. (si tu as configuré ton woocommerce de telle sorte qu’un client qui a déjà commandé retrouve toutes ses infos à la prochaine commande).
    Donc, les champs spécifiques que tu souhaites rajouter, doivent se mettre sur la page commande (checkout). De telle sorte que tu retrouves toutes ces infos dans ton back office (sinon aucun intérêt) au même niveau que le détail de la commande.
    Il existe un plugin woocommerce pour rajouter UN seul champ.
    Visiblement tu souhaites en rajouter plusieurs, donc il va falloir taper un peu de code dans ton fichier checkout.php.

    #983029
    rmdiffusion
    Membre
    Padawan WordPress
    90 contributions

    Effectivement, je voudrais ajouter 2 champs : 1° le N° Siret (ou entreprise selon le pays), et la raison sociale). Je suis parti pour la grosse manoeuvre, … Tout ça pour tenter d’ouvrir un refuge pour animaux, …. Merci pour les informations.

    Shop Sans maître

    #983030
    espoontintin
    Participant
    Maître WordPress
    805 contributions

    Besoin d’aide pour rédiger les lignes de codes ?

    #983031
    rmdiffusion
    Membre
    Padawan WordPress
    90 contributions

    Ah ce ne serait pas de refus, car je suis assez nul en codage, … :(

    #983032
    espoontintin
    Participant
    Maître WordPress
    805 contributions

    Voici les deux champs à rajouter à la fin de ton fichier checkout.php:

    /**
    * Add the field to the checkout
    */
    add_action( ‘woocommerce_after_order_notes’, ‘my_custom_checkout_field’ );

    function my_custom_checkout_field( $checkout ) {

    echo ‘

    ‘ . __(‘Informations Société) . ‘

    ‘;

    woocommerce_form_field( ‘my_field_name’, array(
    ‘type’ => ‘text’,
    ‘class’ => array(‘my-field-class form-row-wide’),
    ‘label’ => __(‘N° de Siret),
    ‘required’ => true,
    ‘placeholder’ => __(‘(siret)’),
    ), $checkout->get_value( ‘my_field_name’ ));

    echo ‘

    ‘;

    }
    /**
    * Process the checkout
    */
    add_action(‘woocommerce_checkout_process’, ‘my_custom_checkout_field_process’);

    function my_custom_checkout_field_process() {
    // Check if set, if its not set add an error.
    if ( ! $_POST )
    wc_add_notice( __( ‘Merci de compléter ces champs’ ), ‘error’ );
    }
    /**
    * Update the order meta with field value
    */
    add_action( ‘woocommerce_checkout_update_order_meta’, ‘my_custom_checkout_field_update_order_meta’ );

    function my_custom_checkout_field_update_order_meta( $order_id ) {
    if ( ! empty( $_POST ) ) {
    update_post_meta( $order_id, ‘N° de Siret’, sanitize_text_field( $_POST ) );
    }
    }
    /**
    * Display field value on the order edit page
    */
    add_action( ‘woocommerce_admin_order_data_after_billing_address’, ‘my_custom_checkout_field_display_admin_order_meta’, 10, 1 );

    function my_custom_checkout_field_display_admin_order_meta($order){
    echo ‘

    ‘.__(‘N° de Siret’).’: ‘ . get_post_meta( $order->id, ‘N° de Siret’, true ) . ‘

    ‘;
    }
    /**
    * Add the field to the checkout
    */
    add_action( ‘woocommerce_after_order_notes’, ‘my_custom_checkout_field2’ );

    function my_custom_checkout_field2( $checkout ) {

    echo ‘

    ‘;

    woocommerce_form_field( ‘my_field_name2’, array(
    ‘type’ => ‘text’,
    ‘class’ => array(‘my-field-class form-row-wide’),
    ‘label’ => __(‘Raison sociale’),
    ‘required’ => true,
    ‘placeholder’ => __(‘(nom)’),
    ), $checkout->get_value( ‘my_field_name2’ ));

    echo ‘

    ‘;

    }
    /**
    * Process the checkout
    */
    add_action(‘woocommerce_checkout_process’, ‘my_custom_checkout_field2_process’);

    function my_custom_checkout_field2_process() {
    // Check if set, if its not set add an error.
    if ( ! $_POST )
    wc_add_notice( __( ‘Merci de compléter ces champs’ ), ‘error’ );
    }
    /**
    * Update the order meta with field value
    */
    add_action( ‘woocommerce_checkout_update_order_meta’, ‘my_custom_checkout_field2_update_order_meta’ );

    function my_custom_checkout_field2_update_order_meta( $order_id ) {
    if ( ! empty( $_POST ) ) {
    update_post_meta( $order_id, ‘Raison sociale’, sanitize_text_field( $_POST ) );
    }
    }
    /**
    * Display field value on the order edit page
    */
    add_action( ‘woocommerce_admin_order_data_after_billing_address’, ‘my_custom_checkout_field2_display_admin_order_meta’, 10, 1 );

    function my_custom_checkout_field2_display_admin_order_meta($order){
    echo ‘

    ‘.__(‘Raison sociale’).’: ‘ . get_post_meta( $order->id, ‘Raison sociale’, true ) . ‘

    ‘;
    }

    #983033
    rmdiffusion
    Membre
    Padawan WordPress
    90 contributions

    Je cherche toujours le fichier checkout.php, …. J’ai bien form-checkout.php, mais pas checkout, … Je teste sur celui-ci, on verra bien.

    En tout cas, c’est hyper gentil de ta part (y)

    #983034
    rmdiffusion
    Membre
    Padawan WordPress
    90 contributions

    Pas de panique, j’en suis à mon 20ème essai d’insertion du code, car jusqu’à présent, tout le code s’affiche en-dessous du panier, … Je vais y arriver, … mais quand ? :boulet:

    #983035
    rmdiffusion
    Membre
    Padawan WordPress
    90 contributions

    Le seul fichier checkout que j’ai c’est checkout.js, mais là non plus en mettant ce code à la fin, ça ne fonctionne pas.

    Où puis-je trouver ce fichu fichier checkout.php svp ?

    #983036
    rmdiffusion
    Membre
    Padawan WordPress
    90 contributions

    Bon après avoir fureté quelques heures c’est apparemment bien le fichier le fichier form-checkout qu’il faut modifier.

    Par contre lorsque je colle le code tout en-dessous de cette page, tout s’écrit en noir. Il n’y a aucun code couleur comme Notepad aime en mettre. Ca veut dire qu’il y a une erreur quelque part ?

    #983037
    espoontintin
    Participant
    Maître WordPress
    805 contributions

    J’ai oublié de préciser que le fichier concerné est un fichier de woocommerce.
    Son nom est: woocommerce/includes/class-wc-checkout.php.
    Ce n’est donc pas dans l’éditeur du thème.

    #983038
    rmdiffusion
    Membre
    Padawan WordPress
    90 contributions

    Ce qui explique mes vaines recherches.
    J’ai trouvé le fichier, et ai ajouté le code en-dessous, mais à ce moment, la ligne rouge à gauche de Notepad devient grise. Et quand je remplace le fichier je n’ai plus rien sur mon checkout.

    J’ai encore loupé quelque chose ?

15 sujets de 1 à 15 (sur un total de 35)
  • Vous devez être connecté pour répondre à ce sujet.