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

##### Indice dei contenuti

- [Proprietà disponibili](#properties)
- [Metodi disponibili](#methods)
- [Esempi](#examples)



La classe EDD_Payment semplifica la creazione, la modifica e l'eliminazione delle informazioni sui pagamenti in Easy Digital Downloads. Ecco alcuni esempi: ##### Esempio di creazione di un nuovo pagamento

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

##### Esempio di aggiornamento dell'email su un pagamento esistente:

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

### Proprietà disponibili

Queste sono le proprietà disponibili per il tuo oggetto: - $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

### Metodi disponibili

#### add_download( $download_id = 0, $args = array(), $options = array() )

Questo metodo consente di aggiungere un download a un pagamento. Accetta tre argomenti: ##### $download_id

Questo è l'ID del download che si desidera allegare. È sempre un intero. ##### $args

Questo è un array che può sovrascrivere i valori predefiniti: ```
            'quantity'    =&gt; 1,
            'price_id'    =&gt; false,
            'item_price'  =&gt; 0.00,
            'tax'         =&gt; 0.00,
            'fees'        =&gt; array()
```

Le commissioni possono essere qualsiasi cosa sia necessaria, ma seguono il formato di `add_fee()`. Per ulteriori informazioni [leggi la documentazione per EDD_Fees](https://easydigitaldownloads.com/docs/edd_fees-class/). ##### $options

Questo è un array che può accettare opzioni arbitrarie per il download. Esempi potrebbero essere `is_renewal` o `is_upgrade` per l'estensione Software Licensing. **IMPORTANTE**: se aggiungi un download a un pagamento completato, il nuovo download verrà impostato a prezzo zero. Se aggiungi un download a un pagamento con qualsiasi altro stato, quel download mantiene il suo valore finanziario predefinito e il valore totale del pagamento aumenta.

Questo comportamento predefinito può essere sovrascritto inviando un `item_price` in $args. #### remove_download( $download_id, $args = array() )

Questo metodo consente di rimuovere un download da un pagamento. Accetta due argomenti: ##### $download_id

Questo è l'ID del download che si desidera allegare. È sempre un intero. ##### $args

Questo è un array che può sovrascrivere i valori predefiniti: ```
            'quantity'    =&gt; 1,
            'price_id'    =&gt; false,
            'item_price'  =&gt; 0.00,
            'cart_index'  =&gt; false,
```

**NOTA**: se il tuo download è variabile, è necessario il `price_id` in modo che venga rimosso l'articolo corretto.

**NOTA**: Per impostazione predefinita, `remove_download()` rimuove solo un articolo. Se hai più articoli uguali, dovrai utilizzare l'opzione `quantity` in $args.

#### get_meta( $meta_key = '_edd_payment_meta', $single = true )

Questo metodo recupera i metadati associati a un pagamento. Accetta una chiave di metadati e un booleano per richiedere i metadati in modalità singola o meno. Internamente, questo metodo esegue get_post_meta, ma poi applica una logica per fornire la retrocompatibilità con EDD 1.5. Esegue quindi apply_filters su `'edd_get_payment_meta_' . $meta_key` e quindi restituisce l'output dopo un ulteriore filtro di `edd_get_payment_meta`#### update_meta( $meta_key = '', $meta_value = '', $prev_value = '' )

Questo metodo consente di aggiornare i metadati del post per un pagamento. Accetta una chiave di metadati, un valore di metadati e un valore di metadati precedente per il confronto. Prima dell'aggiornamento, la chiave dei metadati viene elaborata tramite un filtro chiamato `'edd_update_payment_meta_' . $meta_key`. Il valore restituito è l'output di `update_post_meta`. #### add_fee( $args = '', $global = true )

Questo metodo consente di allegare una commissione arbitraria al pagamento. Funziona esattamente come quello in EDD_Fees, [leggi la documentazione lì](https://easydigitaldownloads.com/docs/edd_fees-class/). #### remove_fee( $key )

Questo metodo consente di rimuovere una determinata commissione. Funziona esattamente come quello in EDD_Fees, [leggi la documentazione lì](https://easydigitaldownloads.com/docs/edd_fees-class/). #### remove_fee_by( $key, $value, $global = false )

Questo metodo consente di rimuovere una commissione senza doverne conoscere la posizione nell'array delle commissioni. Ad esempio, se hai una commissione con l'etichetta spedizione, potresti fare qualcosa come ```
$payment-&gt;remove_fee_by( 'label', 'Shipping' );
```

Il codice sopra rimuoverà la prima istanza di una commissione con l'etichetta Spedizione. Se aggiungi il flag globale true come questo: ```
$payment-&gt;remove_fee_by( 'label', 'Shipping', true );
```

rimuoverà TUTTE le commissioni con l'etichetta Spedizione. #### add_note( $note = false )

Questo metodo consente di allegare una nota al pagamento. I risultati saranno simili a questo: ![](https://easydigitaldownloads.com/wp-content/uploads/2022/07/6184cba760f98.png)#### update_status( $status = false )

Questo metodo consente di impostare lo stato di un dato pagamento. Questi sono gli stati possibili: - Pending
- Complete
- Refunded
- Failed
- Abandoned
- Revoked

#### array_convert()

Questo metodo consente di ottenere tutte le proprietà disponibili come array. Esempio: ```
$payment = new EDD_Payment( 4577 );
$payments_array = $payment-&gt;array_convert();
```

**IMPORTANTE:** le proprietà che sono state spostate in un array con `array_convert` NON verranno aggiornate all'interno di quell'array. Se hai bisogno di una versione aggiornata dopo una modifica, dovrai rieseguire questo metodo e ripopolare il tuo array.

#### save()

Questo metodo prende qualsiasi modifica o aggiornamento apportato da qualsiasi altro metodo e li scrive nel database. **NOTA**: se non utilizzi `save()`, nessuna delle tue modifiche avrà effetto.

### Esempi

Ecco alcuni esempi di codice per attività comuni: #### Creazione di un pagamento

```
$payment = new EDD_Payment(); // Istanzia un oggetto pagamento
$payment-&gt;add_download( 12 ); // Aggiunge il download ID 12 al pagamento al suo prezzo predefinito
$payment-&gt;email = 'lisa@example.org'; // L'email è obbligatoria per un pagamento
$payment-&gt;status = 'complete'; // Completa il pagamento
$payment-&gt;save(); // Scrive nel database tutte le modifiche apportate
```

#### Modifica di un pagamento esistente

```
$payment = new EDD_Payment( 42 ); // Carica le informazioni per il pagamento ID 42
$payment-&gt;email = 'john@example.org'; // Modifica l'indirizzo email sul pagamento
$payment-&gt;save();
```

#### Modifica dello stato di un pagamento

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

#### Aggiunta di un download a prezzo variabile

```
$payment = new EDD_Payment( 1942 );
$args = array(
    'price_id' =&gt; 1, // ID del prezzo variabile
    'item_price' =&gt; 0.00, // Rende l'articolo gratuito
);
$payment-&gt;add_download( 23, $args ); // Aggiunge il download ID 23, prezzo variabile 1 al pagamento
$payment-&gt;save();
```

#### Aggiunta di un download con opzioni

```
$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();
```

#### Rimozione di un download

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

#### Rimozione di un download con prezzi variabili

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