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 *