Table des matières
La classe EDD_Payment facilite la création, la modification et la suppression des informations de paiement dans Easy Digital Downloads. Voici quelques exemples :
Exemple de création d'un nouveau paiement
$payment = new EDD_Payment(); $payment->add_download( 97 ); $payment->email = '[email protected]'; $payment->status = 'complete'; $payment->save();
Exemple de mise à jour de l'e-mail d'un paiement existant :
$payment = new EDD_Payment( 4023 ); $payment->email = '[email protected]'; $payment->save();
Propriétés disponibles
Ce sont les propriétés disponibles pour votre objet :
- $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
- $address
- $transaction_id
- $downloads
- $ip
- $gateway
- $currency
- $cart_details
- $has_unlimited_downloads
- $pending
- $parent_payment
Méthodes disponibles
add_download( $download_id = 0, $args = array(), $options = array() )
Cette méthode vous permet d'ajouter un téléchargement à un paiement. Elle accepte trois arguments :
$download_id
Ceci est l'ID du téléchargement que vous souhaitez attacher. C'est toujours un entier.
$args
Ceci est un tableau qui peut remplacer ces valeurs par défaut intégrées :
'quantity' => 1,
'price_id' => false,
'item_price' => 0.00,
'tax' => 0.00,
'fees' => array()
Les frais peuvent être tout ce qui est requis, mais suivent le format de
add_fee(). Pour plus d'informations, consultez la documentation d'EDD_Fees.
$options
Ceci est un tableau qui peut accepter des options arbitraires pour le téléchargement. Les exemples pourraient être
is_renewal ou is_upgrade pour l'extension Software Licensing.
IMPORTANT : si vous ajoutez un téléchargement à un paiement Terminé, le nouveau téléchargement sera défini à un prix nul. Si vous ajoutez un téléchargement à un paiement avec tout autre statut, ce téléchargement conserve sa valeur financière par défaut et la valeur totale du paiement augmente.
Ce comportement par défaut peut être remplacé en envoyant un
item_price dans les $args.
remove_download( $download_id, $args = array() )
Cette méthode vous permet de supprimer un téléchargement d'un paiement. Elle accepte deux arguments :
$download_id
Ceci est l'ID du téléchargement que vous souhaitez attacher. C'est toujours un entier.
$args
Ceci est un tableau qui peut remplacer ces valeurs par défaut intégrées :
'quantity' => 1,
'price_id' => false,
'item_price' => 0.00,
'cart_index' => false,
NOTE : si votre téléchargement est variable, alors le price_id est requis afin que le bon article soit supprimé.
NOTE : Par défaut, remove_download() ne supprime qu'un seul article. Si vous avez plusieurs articles identiques, vous devrez utiliser l'option quantity dans les $args.
get_meta( $meta_key = ‘_edd_payment_meta’, $single = true )
Cette méthode récupère les métadonnées associées à un paiement. Elle accepte une clé de métadonnées et un booléen pour demander les métadonnées en mode unique ou non.
En interne, cette méthode exécute get_post_meta, mais applique ensuite une logique pour assurer la compatibilité descendante avec EDD 1.5
Elle exécute ensuite apply_filters sur
'edd_get_payment_meta_' . $meta_key puis retourne la sortie après un autre filtre de edd_get_payment_meta
update_meta( $meta_key = ”, $meta_value = ”, $prev_value = ” )
Cette méthode vous permet de mettre à jour les métadonnées de publication d'un paiement. Elle accepte une clé de métadonnées, une valeur de métadonnées et une valeur de métadonnées précédente pour comparaison.
Avant la mise à jour, la meta_key est passée à travers un filtre appelé
'edd_update_payment_meta_' . $meta_key.
La valeur de retour est la sortie de
update_post_meta.
add_fee( $args = ”, $global = true )
Cette méthode vous permet de joindre des frais arbitraires au paiement. Elle fonctionne exactement comme celle de EDD_Fees, veuillez lire la documentation s'y trouvant.
remove_fee( $key )
Cette méthode vous permet de supprimer des frais donnés. Elle fonctionne exactement comme celle de EDD_Fees,
veuillez lire la documentation s'y trouvant.
remove_fee_by( $key, $value, $global = false )
Cette méthode vous permet de supprimer des frais sans avoir à connaître leur position dans le tableau des frais. Par exemple, si vous avez des frais avec une étiquette d'expédition, vous pouvez faire quelque chose comme
$payment->remove_fee_by( 'label', 'Shipping' );
Le code ci-dessus supprimerait la première occurrence de frais avec une étiquette d'Expédition. Si vous ajoutez le drapeau global true comme ceci :
$payment->remove_fee_by( 'label', 'Shipping', true );
alors il supprimera TOUS les frais avec une étiquette d'Expédition.
add_note( $note = false )
This method allows you to attach a note to the payment. Results will look something like this:

update_status( $status = false )
Cette méthode vous permet de définir le statut d'un paiement donné. Voici les statuts possibles :
- En attente
- Complète
- Remboursée
- Échouée
- Abandonnée
- Révoquée
array_convert()
Cette méthode vous permet d'obtenir toutes les propriétés disponibles sous forme de tableau. Exemple :
$payment = new EDD_Payment( 4577 ); $payments_array = $payment->array_convert();
IMPORTANT : les propriétés qui ont été déplacées dans un tableau avec array_convert NE SERONT PAS mises à jour dans ce tableau. Si vous avez besoin d'une version mise à jour après un changement, vous devrez réexécuter cette méthode et re-remplir votre tableau.
save()
Cette méthode prend toutes les modifications ou mises à jour effectuées par toute autre méthode et les écrit dans la base de données.
NOTE : si vous n'utilisez pas save(), aucune de vos modifications ne sera réellement appliquée.
Exemples
Voici quelques exemples de code pour des tâches courantes :
Création d'un paiement
$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
Modification d'un paiement existant
$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();
Changement du statut d'un paiement
$payment = new EDD_Payment( 1337 ); $payment->status = 'revoked'; $payment->save();
Ajout d'un téléchargement à prix variable
$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();
Ajout d'un téléchargement avec options
$payment = new EDD_Payment( 2008 );
$args = array(
'item_price' => 4.00,
);
$options = array(
'is_renewal' => true,
);
$payment->add_download( 28, $args, $options );
$payment->save();
Suppression d'un téléchargement
$payment = new EDD_Payment( 2008 ); $payment->remove_download( 23 ); $payment->save();
Suppression d'un téléchargement avec tarification variable
$payment = new EDD_Payment( 2008 );
$args = array(
'price_id' => 1,
);
$payment->remove_download( 28, $args );
$payment->save();
