Over 10 years we helping companies reach their financial and branding goals. Onum is a values-driven SEO agency dedicated.

CONTACTS
Dicas Tutoriais Woocommerce Wordpress

Como adicionar campos no cadastro do cliente no Woocommerce?

Simples prático e rápido, se você não quiser comprar um plugin você pode usar o código abaixo para isso.

Estejam atentos para não deixar nada para trás;

Para criar campos para o registro copie e cole em seu functions.php

<?php

    /*
    * WBG - Adicionar campo ao Registro
    * Criando o campo
    */
    add_action( 'woocommerce_register_form', 'wbg_add_register_form_field' );
     
    function wbg_add_register_form_field(){
     
        woocommerce_form_field(
            'vendedor_que_indicou',
            array(
                'type' => 'text',
                'required' => true,
                'label' => 'Vendedor que Indicou',
                'description' => 'Preencha com nome, ou matricula do vendedor'
            ),
            ( isset($_POST['vendedor_que_indicou']) ? $_POST['vendedor_que_indicou'] : '' )
        );
     
    }

    /*
    * Validando o Campo
    */

    add_action( 'woocommerce_register_post', 'wbg_validate_fields', 10, 3 );
     
    function wbg_validate_fields( $username, $email, $errors ) {
     
        if ( empty( $_POST['vendedor_que_indicou'] ) ) {
            $errors->add( 'vendedor_que_indicou', 'O campo vendedor que indicou não pode ficar vazio!' );
        }
     
    }

    /*
    * Salvando no banco
    */

    add_action( 'woocommerce_created_customer', 'wbg_save_register_fields' );
     
    function wbg_save_register_fields( $customer_id ){
     
        if ( isset( $_POST['vendedor_que_indicou'] ) ) {
            update_user_meta( $customer_id, 'vendedor_que_indicou', wc_clean( $_POST['vendedor_que_indicou'] ) );
        }
     
    }

    /**
    * Adicionando o campo no editar conta
    */

    // se o action abaixo nao funcionar em sua versão do woo, utilize -> add_action( 'woocommerce_edit_account_form_start', 'wbg_add_field_edit_account_form' );
    add_action( 'woocommerce_edit_account_form', 'wbg_add_field_edit_account_form' );

    function wbg_add_field_edit_account_form() {
     
        woocommerce_form_field(
            'vendedor_que_indicou',
            array(
                'type' => 'text',
                'required' => true,
                'label' => 'Vendedor que Indicou',
                'description' => 'Preencha com nome, ou matricula do vendedor',
            ),
            get_user_meta( get_current_user_id(), 'vendedor_que_indicou', true ) // aqui busco o valor
        );
    }
     
    /**
    * Salvar o campo quando editar
    */

    add_action( 'woocommerce_save_account_details', 'wbg_save_account_details' );
    function wbg_save_account_details( $user_id ) {
     
        update_user_meta( $user_id, 'vendedor_que_indicou', sanitize_text_field( $_POST['vendedor_que_indicou'] ) );
     
    }
     
    /**
    * Verificando se é obrigatorio
    */

    add_filter('woocommerce_save_account_details_required_fields', 'wbg_make_field_required');
    function wbg_make_field_required( $required_fields ){
     
        $required_fields['vendedor_que_indicou'] = 'O campo vendedor que indicou não pode ficar vazio!';
        return $required_fields;
     
    }

?>

Author

Rodrigo Fleury Bastos

Desenvolvedor a 20 anos, consultor e empreendedor no ramo digital. Apaixonado por #ecommerce ! Casado, pai da Elisa e do Vicente !

Leave a comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Webgoias | Soluções Inteligentes
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.