<html lang="pt-br" dir="ltr"><head></head><body># EDD_Payment

##### Índice

- [Propriedades Disponíveis](#properties)
- [Métodos Disponíveis](#methods)
- [Exemplos](#examples)



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-&gt;add_download( 97 );
$payment-&gt;email = 'steve@example.com';
$payment-&gt;status = 'complete';
$payment-&gt;save();
```

##### Exemplo de atualização do e-mail em um pagamento existente:

```
$payment = new EDD_Payment( 4023 );
$payment-&gt;email = 'steve@example.com';
$payment-&gt;save();
```

### Propriedades Disponíveis

Estas são as propriedades disponíveis para o seu objeto: - $ID
- $number
- $mode
- $key
- $total
- $subtotal
- $tax
- $fees
- $discounts
- $date
- $completed_date
- $status
- $old_status
- $status_nicename
- $customer_id
- $user_id
- $first_name
- $last_name
- $email
- $address
- $transaction_id
- $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 definidos aqui: ```
            'quantity'    =&gt; 1,
            'price_id'    =&gt; false,
            'item_price'  =&gt; 0.00,
            'tax'         =&gt; 0.00,
            'fees'        =&gt; array()
```

As taxas podem ser qualquer coisa necessária, mas seguem o formato de `add_fee()`. Para mais informações [consulte a documentação de EDD_Fees](https://easydigitaldownloads.com/docs/edd_fees-class/). ##### $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 manterá seu valor financeiro padrão e o valor total do pagamento aumentará.

Esse comportamento padrão pode ser substituído enviando um `item_price` em $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 definidos aqui: ```
            'quantity'    =&gt; 1,
            'price_id'    =&gt; false,
            'item_price'  =&gt; 0.00,
            'cart_index'  =&gt; 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` em $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 depois aplica alguma lógica para fornecer compatibilidade retroativa com o EDD 1.5. Em seguida, 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 do post para 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. Ele funciona exatamente como o de EDD_Fees, [por favor, leia a documentação lá](https://easydigitaldownloads.com/docs/edd_fees-class/). #### remove_fee( $key )

Este método permite remover uma taxa específica. Ele funciona exatamente como o de EDD_Fees, [por favor, leia a documentação lá](https://easydigitaldownloads.com/docs/edd_fees-class/). #### remove_fee_by( $key, $value, $global = false )

Este método permite remover uma taxa sem precisar saber sua posição no array de taxas. Por exemplo, se você tiver uma taxa com o rótulo 'shipping', você pode fazer algo como ```
$payment-&gt;remove_fee_by( 'label', 'Shipping' );
```

O código acima removerá a primeira instância de uma taxa com o rótulo 'Shipping'. Se você adicionar o sinalizador `global` como `true` assim: ```
$payment-&gt;remove_fee_by( 'label', 'Shipping', true );
```

então ele removerá TODAS as taxas com o rótulo 'Shipping'. #### add_note( $note = false )

Este método permite anexar uma nota ao pagamento. Os resultados serão algo como isto: ![](https://easydigitaldownloads.com/wp-content/uploads/2022/07/6184cba760f98.png)#### 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-&gt;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 repopular 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. **OBSERVAÇÃO**: se você não usar `save()`, nenhuma de suas alterações será realmente realizada.

### Exemplos

Aqui estão alguns exemplos de código de algumas tarefas comuns: #### Criando um pagamento

```
$payment = new EDD_Payment(); // Instancia um objeto de pagamento
$payment-&gt;add_download( 12 ); // Adiciona o download id 12 ao pagamento com seu preço padrão
$payment-&gt;email = 'lisa@example.org'; // O e-mail é obrigatório para um pagamento
$payment-&gt;status = 'complete'; // Conclui o pagamento
$payment-&gt;save(); // Grava no banco de dados quaisquer alterações que foram feitas
```

#### Editando um pagamento existente

```
$payment = new EDD_Payment( 42 ); // Carrega as informações para o Pagamento ID 42
$payment-&gt;email = 'john@example.org'; // Altera o endereço de e-mail no pagamento
$payment-&gt;save();
```

#### Alterando o status de um pagamento

```
$payment = new EDD_Payment( 1337 );
$payment-&gt;status = 'revoked';
$payment-&gt;save();
```

#### Adicionando um download com preço variável

```
$payment = new EDD_Payment( 1942 );
$args = array(
    'price_id' =&gt; 1, // ID do preço variável
    'item_price' =&gt; 0.00, // Torna o item gratuito
);
$payment-&gt;add_download( 23, $args ); // Adiciona o Download ID 23, preço variável 1 ao pagamento
$payment-&gt;save();
```

#### Adicionando um download com opções

```
$payment = new EDD_Payment( 2008 );
$args = array(
    'item_price' =&gt; 4.00,
);
$options = array(
    'is_renewal' =&gt; true,
);
$payment-&gt;add_download( 28, $args, $options );
$payment-&gt;save();
```

#### Removendo um download

```
$payment = new EDD_Payment( 2008 );
$payment-&gt;remove_download( 23 );
$payment-&gt;save();
```

#### Removendo um download com preço variável

```
$payment = new EDD_Payment( 2008 );
$args = array(
    'price_id' =&gt; 1,
);
$payment-&gt;remove_download( 28, $args );
$payment-&gt;save();
```</body></html>