A classe EDD_Payment facilita a criação, edição e exclusão de informações de pagamento no Easy Digital Downloads. Aqui estão alguns exemplos:
Exemplo de criação de um novo pagamento
$payment = new EDD_Payment(); $payment->add_download( 97 ); $payment->email = '[email protected]'; $payment->status = 'complete'; $payment->save();
Exemplo de atualização do e-mail em um pagamento existente:
$payment = new EDD_Payment( 4023 ); $payment->email = '[email protected]'; $payment->save();
Propriedades Disponíveis
Estas são as propriedades disponíveis para o seu objeto:
- $ID
- $numero
- $modo
- $chave
- $total
- $subtotal
- $imposto
- $taxas
- $descontos
- $data
- $data_conclusao
- $status
- $status_antigo
- $status_nome_amigavel
- $id_cliente
- $id_usuario
- $primeiro_nome
- $ultimo_nome
- $endereco
- $id_transacao
- $downloads
- $ip
- $gateway
- $currency
- $cart_details
- $has_unlimited_downloads
- $pending
- $parent_payment
Métodos Disponíveis
add_download( $download_id = 0, $args = array(), $options = array() )
Este método permite adicionar um download a um pagamento. Ele aceita três argumentos:
$download_id
Este é o ID do download que você deseja anexar. É sempre um inteiro.
$args
Este é um array que pode substituir os padrões internos:
'quantity' => 1,
'price_id' => false,
'item_price' => 0.00,
'tax' => 0.00,
'fees' => array()
Taxas podem ser qualquer coisa necessária, mas seguem o formato de
add_fee(). Para mais informações veja a documentação do EDD_Fees.
$options
Este é um array que pode aceitar opções arbitrárias para o download. Exemplos podem ser
is_renewal ou is_upgrade para a extensão Software Licensing.
IMPORTANTE: se você adicionar um download a um pagamento Concluído, o novo download será definido com preço zero. Se você adicionar um download a um pagamento com qualquer outro status, esse download carrega seu valor financeiro padrão e o valor total do pagamento aumenta.
Este comportamento padrão pode ser substituído enviando um
item_price nos $args.
remove_download( $download_id, $args = array() )
Este método permite remover um download de um pagamento. Ele aceita dois argumentos:
$download_id
Este é o ID do download que você deseja anexar. É sempre um inteiro.
$args
Este é um array que pode substituir os padrões internos:
'quantity' => 1,
'price_id' => false,
'item_price' => 0.00,
'cart_index' => false,
OBSERVAÇÃO: se o seu download for variável, o price_id é necessário para que o item correto seja removido.
OBSERVAÇÃO: Por padrão, remove_download() remove apenas um item. Se você tiver vários itens iguais, precisará usar a opção quantity nos $args.
get_meta( $meta_key = ‘_edd_payment_meta’, $single = true )
Este método obtém os metadados associados a um pagamento. Ele aceita uma chave de metadados e um booleano para solicitar os metadados em modo único ou não.
Internamente, este método executa get_post_meta, mas então aplica alguma lógica para fornecer compatibilidade com versões anteriores do Easy Digital Downloads 1.5
Em seguida, ele executa apply_filters em
'edd_get_payment_meta_' . $meta_key e, em seguida, retorna a saída após mais um filtro de edd_get_payment_meta
update_meta( $meta_key = ”, $meta_value = ”, $prev_value = ” )
Este método permite atualizar os metadados de postagem de um pagamento. Ele aceita uma chave de metadados, um valor de metadados e um valor de metadados anterior para comparação.
Antes de atualizar, a meta_key é passada por um filtro chamado
'edd_update_payment_meta_' . $meta_key.
O valor de retorno é a saída de
update_post_meta.
add_fee( $args = ”, $global = true )
Este método permite anexar uma taxa arbitrária ao pagamento. Funciona exatamente como o da EDD_Fees, por favor, leia a documentação lá.
remove_fee( $key )
Este método permite remover uma taxa específica. Funciona exatamente como o da EDD_Fees,
por favor, leia a documentação lá.
remove_fee_by( $key, $value, $global = false )
Este método permite remover uma taxa sem ter que saber sua posição no array de taxas. Por exemplo, se você tiver uma taxa com o rótulo de frete, você pode fazer algo como
$payment->remove_fee_by( 'label', 'Shipping' );
O código acima removeria a primeira instância de uma taxa com o rótulo de Frete. Se você adicionar o sinalizador global true como este:
$payment->remove_fee_by( 'label', 'Shipping', true );
então ele removerá TODAS as taxas com o rótulo de Frete.
add_note( $note = false )
Este método permite anexar uma nota ao pagamento. Os resultados se parecerão com isto:

update_status( $status = false )
Este método permite definir o status de um determinado pagamento. Aqui estão os status possíveis:
- Pendente
- Completo
- Reembolsado
- Falhou
- Abandonado
- Revogado
array_convert()
Este método permite obter todas as propriedades disponíveis como um array. Exemplo:
$payment = new EDD_Payment( 4577 ); $payments_array = $payment->array_convert();
IMPORTANTE: as propriedades que foram movidas para um array com array_convert NÃO serão atualizadas dentro desse array. Se você precisar de uma versão atualizada após uma alteração, precisará executar este método novamente e preencher seu array.
save()
Este método pega quaisquer alterações ou atualizações feitas por qualquer outro método e as grava no banco de dados.
NOTA: se você não usar save(), nenhuma das suas alterações ocorrerá.
Exemplos
Aqui estão alguns exemplos de código de algumas tarefas comuns:
Criando um pagamento
$payment = new EDD_Payment(); // Instantiates a payment object $payment->add_download( 12 ); // Adds download id 12 to the payment at it's default price $payment->email = '[email protected]'; // Email is required for a payment $payment->status = 'complete'; // Completes the payment $payment->save(); // Writes to the database any changes that were made
Editando um pagamento existente
$payment = new EDD_Payment( 42 ); // Loads the information for Payment ID 42 $payment->email = '[email protected]'; // Changes the email address on the payment $payment->save();
Alterando o status de um pagamento
$payment = new EDD_Payment( 1337 ); $payment->status = 'revoked'; $payment->save();
Adicionando um download com preço variável
$payment = new EDD_Payment( 1942 );
$args = array(
'price_id' => 1, // Variable price ID
'item_price' => 0.00, // Makes the item free
);
$payment->add_download( 23, $args ); // Adds Download ID 23, variable price 1 to the payment
$payment->save();
Adicionando um download com opções
$payment = new EDD_Payment( 2008 );
$args = array(
'item_price' => 4.00,
);
$options = array(
'is_renewal' => true,
);
$payment->add_download( 28, $args, $options );
$payment->save();
Removendo um download
$payment = new EDD_Payment( 2008 ); $payment->remove_download( 23 ); $payment->save();
Removendo um download com preços variáveis
$payment = new EDD_Payment( 2008 );
$args = array(
'price_id' => 1,
);
$payment->remove_download( 28, $args );
$payment->save();
