Spis treści
Płatności cykliczne zawierają nową klasę EDD do zarządzania subskrybentami. Klasa EDD_Recurring_Subscriber pozwala na interakcję z klientami subskrypcji i subskrypcjami na ich kontach.
Tworzenie obiektów
EDD_Recurring_Subscriber powinno być wywoływane z identyfikatorem klienta EDD lub użytkownika WordPress w witrynie. Może to być adres e-mail, identyfikator użytkownika WordPress lub identyfikator klienta EDD. Oto kilka przykładów:
$subscriber = new EDD_Recurring_Subscriber( '[email protected]' );
Jeśli przekażesz liczbę całkowitą, wyszukany zostanie klient EDD z tym customer_id.
$subscriber = new EDD_Recurring_Subscriber( 3 );
Jeśli przekażesz liczbę całkowitą z drugim argumentem true, wyszukany zostanie użytkownik WordPress z tym user_id.
$subscriber = new EDD_Recurring_Subscriber( 3, true );
Każda z powyższych opcji zwróci obiekt wyglądający tak:
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
)
)
Dostępne metody
Każda z poniższych metod zakłada, że masz obiekt powiązany z konkretnym klientem i będzie odnosić się do tego klienta jako „klienta”.
Metody warunkowe
$subscriber->has_active_subscription()
Ta metoda sprawdza, czy klient ma aktywną lub anulowaną, ale nie wygasłą subskrypcję.
Zwraca wartość boolean, filtrowaną w następujący sposób:
apply_filters( 'edd_recurring_has_active_subscription', $ret, $this );
$subscriber->has_product_subscription( $product_id = 0 )
Ta metoda sprawdza, czy klient ma jakikolwiek rodzaj subskrypcji dla konkretnego produktu EDD.
Akceptuje liczbę całkowitą będącą identyfikatorem produktu EDD.
Zwraca wartość boolean, filtrowaną w następujący sposób:
return apply_filters( 'edd_recurring_has_product_subscription', $ret, $product_id, $this );
$subscriber->has_active_product_subscription( $product_id = 0 )
Ta metoda sprawdza, czy klient ma aktywną subskrypcję dla konkretnego produktu EDD.
Akceptuje liczbę całkowitą będącą identyfikatorem produktu EDD.
Zwraca wartość boolean, filtrowaną w następujący sposób:
return apply_filters( 'edd_recurring_has_active_product_subscription', $ret, $product_id, $this );
Pobieranie informacji o subskrybencie
$subscriber->get_subscription_by_profile_id( $profile_id = ” )
Ta metoda akceptuje identyfikator profilu płatności i zwraca obiekt EDD_Subscription ze wszystkimi informacjami o tej subskrypcji.
Akceptuje identyfikator profilu bramki płatności. Identyfikatory profilów dla poszczególnych subskrypcji można znaleźć na stronie szczegółów konkretnej subskrypcji w sekcji Pobrane pliki → Subskrypcje. 
Zwraca obiekt EDD_Subscription. Przykład można znaleźć w dokumentacji EDD_Subscription.
$subscriber->get_subscription( $subscription_id = 0 )
Ta metoda akceptuje identyfikator subskrypcji i zwraca obiekt EDD_Subscription ze wszystkimi informacjami o tej subskrypcji, podobnie jak $subscriber->get_subscription_by_profile_id().
$subscriber->get_subscriptions( $product_id = 0, $statuses = array() )
Ta metoda pobierze wszystkie subskrypcje klienta, które spełniają podane wymagania. Akceptuje dwa argumenty: pierwszy to product_id, a drugi to tablica statusów. Oto kilka przykładów:
// 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 )
Ta metoda określa datę wygaśnięcia subskrypcji o jeden okres po bieżącej dacie wygaśnięcia. Na przykład, jeśli datą wygaśnięcia byłby 2017-01-01 23:59:59, a okres wynosiłby jeden miesiąc, ta metoda zwróciłaby 2017-02-01 23:59:59.
Akceptuje liczbę całkowitą dla download_id jako pierwszy wymagany argument.
Akceptuje liczbę całkowitą dla price_id w przypadku cen zmiennych, opcjonalnie
Zwraca datę w formacie R-m-d G:i:s.
$subscriber->get_recurring_customer_ids()
Ta metoda zwraca tablicę zawierającą wszystkie identyfikatory klientów utworzone przez bramki płatności dla klienta. Przykładem może być
Array
(
[stripe] => cus_85YmUU1QuH5yxY
)
Wyjście jest filtrowane w ten sposób:
apply_filters( 'edd_recurring_customer_ids', $ids, $this );
$subscriber->get_recurring_customer_id( $gateway = false )
Ta metoda akceptuje nazwę bramki i zwraca ciąg znaków zawierający identyfikator klienta powiązany z klientem i tą bramką.
Akceptuje ciąg znaków zawierający nazwę bramki, taką jak stripe.
Zwraca ciąg znaków zawierający identyfikator klienta, taki jak cus_85YmUU1QuH5yxY
Wyjście jest filtrowane w ten sposób:
apply_filters( 'edd_recurring_get_customer_id', $customer_id, $this );
Ustawianie opcji subskrybenta
$subscriber->set_as_subscriber()
Ta metoda pobiera klienta i tworzy Klienta EDD z jego informacjami.
$subscriber->set_recurring_customer_id( $recurring_id = ”, $gateway = false )
Ta metoda akceptuje identyfikator cykliczny bramki płatności i nazwę bramki płatności i powiązuje je z klientem.
Akceptuje ciąg znaków zawierający identyfikator cykliczny bramki płatności, taki jak
cus_85YmUU1QuH5yxY. Wymagane.
stripe. WymaganeZarządzanie subskrypcjami
$subscriber->add_subscription( $args = array() )
Ta metoda dodaje subskrypcję do klienta EDD. Jeśli nie ma podanego customer_id, tworzy go z klienta WordPress.
Ta metoda używa EDD_Subscription::create(), a zatem ma wszystkie te same wymagania. Pełna dokumentacja dla EDD_Subscription::create().
Akceptuje tablicę danych wymaganych przez EDD_Subscription::create().
Zwraca obiekt subskrypcji.
$subscriber->add_payment( $args = array() )
Ta metoda dodaje rekord płatności do określonej subskrypcji dla klienta. Akceptuje tablicę taką jak ta:
$args = array(
'subscription_id' => 0,
'amount' => '0.00',
'transaction_id' => '',
);
Klucz tablicy subscription_id nie może być pusty i powinien być liczbą całkowitą.
Ta metoda używa EDD_Subscription::add_payment(), a zatem ma wszystkie te same wymagania. Pełna dokumentacja dla EDD_Subscription::add_payment().
Zwraca true.
