Indice dei contenuti
La classe EDD_Payment semplifica la creazione, modifica ed eliminazione delle informazioni di pagamento in Easy Digital Downloads. Ecco alcuni esempi:
Esempio di creazione di un nuovo pagamento
$payment = new EDD_Payment(); $payment->add_download( 97 ); $payment->email = '[email protected]'; $payment->status = 'complete'; $payment->save();
Esempio di aggiornamento dell'email di un pagamento esistente:
$payment = new EDD_Payment( 4023 ); $payment->email = '[email protected]'; $payment->save();
Proprietà disponibili
Queste sono le proprietà disponibili per il tuo oggetto:
- $ID
- $numero
- $modalità
- $chiave
- $totale
- $subtotale
- $tasse
- $commissioni
- $sconti
- $data
- $data_completamento
- $stato
- $stato_precedente
- $stato_leggibile
- $id_cliente
- $id_utente
- $nome
- $cognome
- $indirizzo
- $transaction_id
- $download
- $ip
- $gateway
- $valuta
- $dettagli_carrello
- $ha_download_illimitati
- $in_attesa
- $pagamento_genitore
Metodi disponibili
aggiungi_download( $download_id = 0, $args = array(), $options = array() )
Questo metodo ti permette di aggiungere un download a un pagamento. Accetta tre argomenti:
$download_id
Questo è l'ID del download che desideri allegare. È sempre un intero.
$args
Questo è un array che può sovrascrivere questi valori predefiniti:
'quantity' => 1,
'price_id' => false,
'item_price' => 0.00,
'tax' => 0.00,
'fees' => array()
Le commissioni possono essere qualsiasi cosa richiesta, ma seguono il formato di
add_fee(). Per maggiori informazioni vedi la documentazione per EDD_Fees.
$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 avrà un prezzo pari a 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 negli $args.
rimuovi_download( $download_id, $args = array() )
Questo metodo ti permette di rimuovere un download da un pagamento. Accetta due argomenti:
$download_id
Questo è l'ID del download che desideri allegare. È sempre un intero.
$args
Questo è un array che può sovrascrivere questi valori predefiniti:
'quantity' => 1,
'price_id' => false,
'item_price' => 0.00,
'cart_index' => false,
NOTA: se il tuo download è variabile, allora il price_id è richiesto in modo che l'articolo corretto venga rimosso.
NOTA: Per impostazione predefinita remove_download() rimuove solo un articolo. Se hai più articoli dello stesso tipo, dovrai usare l'opzione quantity negli $args.
get_meta( $meta_key = ‘_edd_payment_meta’, $single = true )
Questo metodo recupera i metadati associati a un pagamento. Accetta una chiave di metadato 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 compatibilità retroattiva 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 ti permette di aggiornare il post meta per un pagamento. Accetta una chiave di metadato, un valore di metadato e un valore di metadato precedente per confronto.
Prima dell'aggiornamento, la meta_key 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 ti permette di allegare una commissione arbitraria al pagamento. Funziona esattamente come quella in EDD_Fees, leggi la documentazione lì.
remove_fee( $key )
Questo metodo ti permette di rimuovere una determinata commissione. Funziona esattamente come quello in EDD_Fees,
leggi la documentazione lì.
remove_fee_by( $key, $value, $global = false )
Questo metodo ti permette 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->remove_fee_by( 'label', 'Shipping' );
Il codice sopra rimuoverebbe la prima istanza di una commissione con l'etichetta Spedizione. Se aggiungi il flag globale true in questo modo:
$payment->remove_fee_by( 'label', 'Shipping', true );
allora rimuoverà TUTTE le commissioni con l'etichetta Spedizione.
add_note( $note = false )
Questo metodo ti permette di allegare una nota al pagamento. I risultati saranno simili a questo:

update_status( $status = false )
Questo metodo ti permette di impostare lo stato di un dato pagamento. Ecco gli stati possibili:
- In attesa
- Completato
- Rimborsato
- Fallito
- Abbandonato
- Revocato
array_convert()
Questo metodo ti permette di ottenere tutte le proprietà disponibili come array. Esempio:
$payment = new EDD_Payment( 4577 ); $payments_array = $payment->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 usi save() allora nessuna delle tue modifiche avrà effetto.
Esempi
Ecco alcuni esempi di codice per alcune attività comuni:
Creazione di un 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
Modifica di un pagamento esistente
$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();
Modifica dello stato di un pagamento
$payment = new EDD_Payment( 1337 ); $payment->status = 'revoked'; $payment->save();
Aggiunta di un download a prezzo variabile
$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();
Aggiunta di un download con opzioni
$payment = new EDD_Payment( 2008 );
$args = array(
'item_price' => 4.00,
);
$options = array(
'is_renewal' => true,
);
$payment->add_download( 28, $args, $options );
$payment->save();
Rimozione di un download
$payment = new EDD_Payment( 2008 ); $payment->remove_download( 23 ); $payment->save();
Rimozione di un download con prezzi variabili
$payment = new EDD_Payment( 2008 );
$args = array(
'price_id' => 1,
);
$payment->remove_download( 28, $args );
$payment->save();
