Sumário
A classe EDD_Customer é usada para obter dados do cliente, criar novas entradas de cliente e editar entradas de cliente existentes. Os valores que podem ser gerenciados com esta classe são:
- user_id
- name
- payment_ids
- purchase_value
- purchase_count
- notes
Obtendo um Cliente
Seus motivos para obter dados do cliente podem variar de simplesmente renderizar as informações ao uso para estatísticas ou logs ou qualquer outra coisa. Aqui estão as etapas para obter e renderizar informações do cliente.
Etapa 1, Obtenha os dados
Para criar um objeto de Cliente, você deve passar algum tipo de identificador ao instanciar a classe. Isso pode ser um endereço de e-mail, ID do Cliente ou ID de usuário do WordPress.
Exemplos:
Email
$customer = new EDD_Customer( '[email protected]' );
ID do Cliente
$customer = new EDD_Customer( 33 );
ID de usuário do WordPress
$customer = new EDD_Customer( 96, true );
Nota: para o ID de usuário do WordPress, você deve passar um valor true como segundo parâmetro, para que ele saiba procurar no WordPress em vez do EDD.
Etapa 2, Use os dados
Agora você pode acessar as propriedades do objeto do cliente assim:
- $customer->name;
- $customer->email;
- $customer->date_created;
- $customer->purchase_count;
- $customer->purchase_value;
- $customer->id; // ID do cliente
- $customer->user_id; // ID do usuário do WordPress
- $customer->payment_ids;
Você pode exibi-los, analisá-los; o que quiser.
Obtendo Dados de Pagamento do Cliente
A classe EDD_Customer tem um método chamado
get_payments(). Este método retornará um array de objetos EDD_Payment. Exemplo:
$customer = new EDD_Customer( 33 ); $payments = $customer->get_payments();
Agora $payments conterá um array de objetos EDD_Payment. Para mais informações sobre como esse array se parece,
consulte a documentação da classe EDD_Payment.
Criando um Cliente
Primeiro, instancie um objeto:
$customer = new EDD_Customer;
Exemplo 1:
$args = array( 'user_id' => 12 'name' => 'Jose Canseco', 'email' => '[email protected]', 'payment_ids' => '', 'purchase_value' => '', 'purchase_count' => '', 'notes' => 'Whatever note you'd like', );
Observação: o
user_id acima é um número de ID de usuário do WordPress. Ele só é necessário se você quiser associar seu cliente a um usuário do WordPress. Caso contrário, remova-o do array.
$customer->create( $args );
opção obrigatória é o e-mail, então isso também funcionaria:
$args = array( 'email' => '[email protected]', );
$customer->create( $args );
Isso cria um cliente com apenas o endereço de e-mail fornecido, o que funciona perfeitamente.
Atualizando um Cliente
Etapa 1: Obtenha os Dados.
Use o código de exemplo de “Obtendo um Cliente” acima.
Etapa 2: Atualize os Dados
Existem duas maneiras de atualizar dados de clientes com EDD_Customer. Uma é usar o
método update() e atualizar vários campos de uma vez.
Exemplo:
$customer = new EDD_Customer( 33 ); $update_args = array( 'email' => '[email protected]', 'name' => 'Jose Canseco', );
Agora o cliente 33 tem um endereço de e-mail atualizado e uma nova nota.
Observação: atualizar o campo de notas com este método apagará quaisquer notas existentes. Use o método add_note() mencionado abaixo para adicionar uma nova nota.
Atualizando Campos Específicos
Em vez de usar o método geral update() listado acima, você geralmente deve tentar usar um dos métodos auxiliares fornecidos abaixo. Eles fornecem funcionalidade limitada específica que pode ajudar a reduzir erros.
Para cada um dos seguintes métodos, você primeiro instanciaria a classe do cliente como acima:
$customer = new EDD_Customer( 33 );
attach_payment() e remove_payment()
Eles são usados para anexar e remover pagamentos de e para um cliente. Ambos recebem um payment_id como primeira variável e uma opção booleana como segunda. A segunda atualizará as estatísticas se definida como true.
Exemplos:
$customer->attach_payment( 33, true );
$customer->remove_payment( 33, true );
increase_purchase_count() e decrease_purchase_count()
Estes são usados para aumentar e diminuir o
número de compras feitas por um único cliente. Ambos recebem simplesmente um inteiro, alterando o valor armazenado por essa quantia.
Exemplos:
$customer->increase_purchase_count( 1 );
$customer->decrease_purchase_count( 1 );
increase_value() e decrease_value()
Estes são usados para aumentar e diminuir o valor gasto por um único cliente. Ambos recebem simplesmente um número decimal, com duas casas decimais, alterando o valor armazenado por essa quantia.
Exemplos:
$customer->increase_value( 14.98 );
$customer->decrease_value( 3.00 );
get_notes()
Este método retorna as notas deixadas na conta do cliente. Ele aceita 2 variáveis, a primeira para quantas notas você deseja, e a segunda é um deslocamento.
Exemplos:
$customer->get_notes( 5 ); // obtém as primeiras 5 notas$customer->decrease_value( 5, 6 ); // obtém 5 notas começando na posição 6, então notas 6-10get_notes_count()
Este método retorna o número de notas na conta do cliente. Ele não recebe nenhuma entrada.
Exemplo:
$customer->get_notes_count();
add_note()
Este método aceita uma string como entrada e a armazena como uma nova nota na conta do cliente. Ele preserva retornos de linha, mas não permite HTML.
Exemplo:
$customer->add_note( 'Esta é uma nota. Não é legal?' );
Metadados do Cliente
Metadados arbitrários do cliente podem ser gerenciados usando as funções de metadados integradas à classe EDD_Customer.
get_meta( $meta_key = ”, $single = true )
get_meta simplesmente recebe uma chave de metadados e retorna o valor. Se single for definido como false, ele sempre retornará um array.
add_meta( $meta_key = ”, $meta_value, $unique = false )
add_meta aceita uma chave de metadados e seu valor, mas também aceita um booleano para unique. Se a terceira entrada for true, add_meta só terá sucesso se a chave de metadados não existir anteriormente. Retorna false para falha. True para sucesso.
update_meta( $meta_key = ”, $meta_value, $prev_value = ” )
update_meta aceita uma chave de metadados e o novo valor que você deseja definir para ela. Se você tiver várias chaves com o mesmo nome, todas serão atualizadas com o novo valor. A terceira entrada aceita um valor para comparar com o valor anterior. Portanto, se você já tem várias chaves de metadados com
foo, mas apenas uma com um valor de bar, você pode tornar bar a terceira entrada e a atualização ocorrerá apenas nessa. Retorna false para falha. True para sucesso.
delete_meta( $meta_key = ”, $meta_value = ” )
delete_meta excluirá todos os metadados com uma chave correspondente. Se um valor também for passado, ambos devem corresponder. Retorna false para falha. True para sucesso.
Endereços de E-mail do Cliente
Cada cliente pode ter vários endereços de e-mail, permitindo que eles comprem de mais de um endereço, ou comprem de um e recebam suporte de outro. Cada cliente também terá um endereço de e-mail principal, que é usado como padrão para o cliente. Na aba Gerenciamento de Clientes, a interface se parece com isto:
The EDD_Customer class allows the developer to removes addresses from a customer and add addressed to a customer as well as make a specific address primary.
add_email( $email = ”, $primary = false )
This function accepts an email address to add to the customer. If the second input is true, the new email address will be set as the primary address for the customer. Returns false for failure. True for success.
set_primary_email( $new_primary_email = ” )
This function accepts an email address and if the email address is already attached to this customer it will make it the primary email address for that customer. Returns false for failure. True for success.
remove_email( $email = ” )
This function accepts an email address and if the email address is already attached to this customer it removes it from that customer. Returns false for failure. True for success.
