Connexion
Commencer

Documentation Easy Digital Downloads

Documentation, matériel de référence et tutoriels pour Easy Digital Downloads 

Paiements récurrents – Développeur : EDD_Recurring_Subscriber

Les paiements récurrents sont accompagnés d'une nouvelle classe EDD pour la gestion des abonnés. La classe EDD_Recurring_Subscriber vous permet d'interagir avec les clients abonnés et les abonnements sur leurs comptes.

Création d'objets

EDD_Recurring_Subscriber doit être appelée avec un identifiant pour un client EDD ou un utilisateur WordPress sur le site. Il peut s'agir d'une adresse e-mail, d'un identifiant d'utilisateur WordPress ou d'un identifiant de client EDD. Voici quelques exemples :

$subscriber = new EDD_Recurring_Subscriber( '[email protected]' );

Si vous passez un entier, il recherchera un client EDD avec cet customer_id.

$subscriber = new EDD_Recurring_Subscriber( 3 );

Si vous passez un entier avec un deuxième argument de true, il recherchera un utilisateur WordPress avec cet user_id.

$subscriber = new EDD_Recurring_Subscriber( 3, true );

L'une des options ci-dessus retournera un objet qui ressemble à ceci :

EDD_Recurring_Subscriber Object
(
    [subs_db:EDD_Recurring_Subscriber:private] => EDD_Subscriptions_DB Object
        (
            [table_name] => wp_edd_subscriptions
            [version] => 1.4.1.3
            [primary_key] => id
        )

    [id] => 11111
    [purchase_count] => 19
    [purchase_value] => 2173.3
    [email] => [email protected]
    [emails] => Array
        (
            [0] => [email protected]
        )

    [name] => Bob Smith
    [date_created] => 2015-06-15 16:38:08
    [payment_ids] => 
    [user_id] => 1nan1
    [notes:protected] => 
    [raw_notes:EDD_Customer:private] => 
    [db:protected] => EDD_DB_Customers Object
        (
            [meta_type] => customer
            [date_key] => date_created
            [cache_group] => customers
            [table_name] => wp_edd_customers
            [version] => 1.0
            [primary_key] => id
        )
)

Méthodes disponibles

Chacune des méthodes ci-dessous suppose que vous avez un objet associé à un client spécifique, et fera référence à ce client comme « le client ».

Méthodes conditionnelles

$subscriber->has_active_subscription()

Cette méthode vérifie si le client a un abonnement actif ou annulé, mais pas expiré.

Retourne un booléen, filtré comme suit :

apply_filters( 'edd_recurring_has_active_subscription', $ret, $this );
$subscriber->has_product_subscription( $product_id = 0 )

Cette méthode vérifie si le client a un quelconque abonnement sur un identifiant de produit EDD spécifique.

Accepte un entier qui est un identifiant de produit EDD.

Retourne un booléen filtré comme suit :

return apply_filters( 'edd_recurring_has_product_subscription', $ret, $product_id, $this );
$subscriber->has_active_product_subscription( $product_id = 0 )

Cette méthode vérifie si le client a un abonnement actif sur un identifiant de produit EDD spécifique.

Accepte un entier qui est un identifiant de produit EDD.

Retourne un booléen filtré comme suit :

return apply_filters( 'edd_recurring_has_active_product_subscription', $ret, $product_id, $this );

Obtenir les informations de l'abonné

$subscriber->get_subscription_by_profile_id( $profile_id = ” )

Cette méthode accepte un identifiant de profil de paiement et retourne un objet EDD_Subscription avec toutes les informations relatives à cet abonnement.

Accepts a payment gateway profile ID. You can find profile IDs for specific subscriptions on the details page for a specific subscription under Downloads → Subscriptions.

Retourne un objet EDD_Subscription. Un exemple peut être trouvé dans la documentation EDD_Subscription.

$subscriber->get_subscription( $subscription_id = 0 )

Cette méthode accepte un identifiant d'abonnement et retourne un objet EDD_Subscription avec toutes les informations relatives à cet abonnement, similaire à $subscriber->get_subscription_by_profile_id().

$subscriber->get_subscriptions( $product_id = 0, $statuses = array() )

Cette méthode récupère tous les abonnements du client qui répondent aux exigences d'entrée. Elle accepte deux arguments, le premier étant un product_id et le second un tableau de statuts. Voici quelques exemples :

// gets all subscriptions for the customer
$subscriber->get_subscriptions();
// gets all subscriptions for the customer for product ID 85
$subscriber->get_subscriptions( 85 );
// gets all active subscriptions for the customer for product ID 85
$subscriber->get_subscriptions( 85, array( 'active' ) );
// gets all active subscriptions for the customer, regardless of product
$subscriber->get_subscriptions( '', array( 'active' ) );
// gets all active and cancelled subscriptions for the customer, regardless of product
$subscriber->get_subscriptions( '', array( 'active', cancelled' ) );
$subscriber->get_new_expiration( $download_id = 0, $price_id = null )

Cette méthode détermine la date d'expiration d'un abonnement une période au-delà de la date d'expiration actuelle. Par exemple, si la date d'expiration était le 2017-01-01 23:59:59 et que la période était d'un mois, alors cette méthode retournerait le 2017-02-01 23:59:59.

Accepte un entier pour download_id comme premier argument requis.

Accepte un entier pour price_id dans le cas de prix variables, facultatif

Retourne une date formatée comme Y-m-d H:i:s.

$subscriber->get_recurring_customer_ids()

Cette méthode retourne un tableau contenant tous les identifiants client créés par les passerelles de paiement pour le client. Un exemple serait

Array
(
    [stripe] => cus_85YmUU1QuH5yxY
)

La sortie est filtrée de cette manière :

apply_filters( 'edd_recurring_customer_ids', $ids, $this );
$subscriber->get_recurring_customer_id( $gateway = false )

Cette méthode accepte un nom de passerelle et retourne une chaîne contenant l'identifiant client associé au client et à cette passerelle.

Accepte une chaîne contenant un nom de passerelle comme stripe.

Retourne une chaîne contenant un identifiant client comme cus_85YmUU1QuH5yxY

La sortie est filtrée de cette manière :

apply_filters( 'edd_recurring_get_customer_id', $customer_id, $this );

Définir les options de l'abonné

$subscriber->set_as_subscriber()

Cette méthode prend le client et crée un client EDD avec ses informations.

$subscriber->set_recurring_customer_id( $recurring_id = ”, $gateway = false )

Cette méthode accepte un identifiant récurrent de passerelle de paiement et un nom de passerelle de paiement et les associe au client.

Accepte une chaîne contenant un identifiant récurrent de passerelle de paiement comme cus_85YmUU1QuH5yxY. Requis.

Accepts a string containing a gateway name like
stripe. Required

Gestion des abonnements

$subscriber->add_subscription( $args = array() )

Cette méthode ajoute un abonnement à un client EDD. S'il n'y a pas de customer_id inclus, elle en crée un à partir du client WordPress.

Cette méthode utilise EDD_Subscription::create(), et a donc toutes les mêmes exigences. Documentation complète pour EDD_Subscription::create().

Accepte un tableau de données requis par EDD_Subscription::create().

Retourne un objet d'abonnement.

$subscriber->add_payment( $args = array() )

Cette méthode ajoute un enregistrement de paiement à un abonnement spécifique pour le client. Elle accepte un tableau comme celui-ci :

$args = array(
    'subscription_id' => 0,
    'amount'          => '0.00', 
    'transaction_id'  => '',  
);

La clé de tableau subscription_id ne doit pas être vide et doit être un entier.

Cette méthode utilise EDD_Subscription::add_payment() et a donc toutes les mêmes exigences. Documentation complète pour EDD_Subscription::add_payment().

Retourne vrai.

Was this article helpful?

Commencez à vendre dès aujourd'hui !

Rejoignez plus de 50 000 propriétaires de boutiques avisés et commencez à utiliser le moyen le plus simple de vendre des produits numériques avec WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]