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;
}
?>