Spis treści
Klasa EDD_Payment ułatwia tworzenie, edycję i usuwanie informacji o płatnościach w Easy Digital Downloads. Oto kilka przykładów:
Przykład tworzenia nowej płatności
$payment = new EDD_Payment(); $payment->add_download( 97 ); $payment->email = '[email protected]'; $payment->status = 'complete'; $payment->save();
Przykład aktualizacji adresu e-mail przy istniejącej płatności:
$payment = new EDD_Payment( 4023 ); $payment->email = '[email protected]'; $payment->save();
Dostępne właściwości
Oto właściwości dostępne dla Twojego obiektu:
- $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
- $szczegoly_koszyka
- $nieograniczone_pobieranie
- $oczekujacy
- $platnosc_nadrzedna
Dostępne metody
add_download( $download_id = 0, $args = array(), $options = array() )
Ta metoda pozwala dodać produkt do pobrania do płatności. Akceptuje trzy argumenty:
$download_id
To jest identyfikator produktu do pobrania, który chcesz dołączyć. Jest to zawsze liczba całkowita.
$args
To jest tablica, która może nadpisać te wbudowane wartości domyślne:
'quantity' => 1,
'price_id' => false,
'item_price' => 0.00,
'tax' => 0.00,
'fees' => array()
Opłaty mogą być czymkolwiek wymaganym, ale zgodnie z formatem
add_fee(). Więcej informacji można znaleźć w dokumentacji EDD_Fees.
$options
To jest tablica, która może przyjmować dowolne opcje dla produktu do pobrania. Przykłady mogą obejmować
is_renewal lub is_upgrade dla rozszerzenia Software Licensing.
WAŻNE: jeśli dodasz produkt do pobrania do zakończonej płatności, nowy produkt do pobrania zostanie ustawiony na cenę zerową. Jeśli dodasz produkt do pobrania do płatności z jakimkolwiek innym statusem, ten produkt do pobrania zachowa swoją domyślną wartość finansową, a całkowita wartość płatności wzrośnie.
To domyślne zachowanie może zostać nadpisane przez wysłanie
item_price w $args.
remove_download( $download_id, $args = array() )
Ta metoda pozwala usunąć produkt do pobrania z płatności. Akceptuje dwa argumenty:
$download_id
To jest identyfikator produktu do pobrania, który chcesz dołączyć. Jest to zawsze liczba całkowita.
$args
To jest tablica, która może nadpisać te wbudowane wartości domyślne:
'quantity' => 1,
'price_id' => false,
'item_price' => 0.00,
'cart_index' => false,
UWAGA: jeśli Twój produkt do pobrania jest zmienny, wymagany jest identyfikator ceny (price_id), aby można było usunąć właściwy element.
UWAGA: Domyślnie remove_download() usuwa tylko jeden element. Jeśli masz wiele takich samych elementów, będziesz musiał użyć opcji ilości (quantity) w $args.
get_meta( $meta_key = ‘_edd_payment_meta’, $single = true )
Ta metoda pobiera metadane powiązane z płatnością. Akceptuje klucz metadanych i wartość logiczną, aby zażądać metadanych w trybie pojedynczym lub nie.
Wewnętrznie ta metoda uruchamia get_post_meta, a następnie stosuje pewną logikę, aby zapewnić wsteczną kompatybilność z EDD 1.5
Następnie uruchamia apply_filters na
'edd_get_payment_meta_' . $meta_key, a następnie zwraca wynik po kolejnym filtrowaniu edd_get_payment_meta
update_meta( $meta_key = ”, $meta_value = ”, $prev_value = ” )
Ta metoda pozwala zaktualizować metadane posta dla płatności. Akceptuje klucz metadanych, wartość metadanych i poprzednią wartość metadanych do porównania.
Przed aktualizacją klucz metadanych jest przetwarzany przez filtr o nazwie
'edd_update_payment_meta_' . $meta_key.
Zwracana wartość to wynik
update_post_meta.
add_fee( $args = ”, $global = true )
Ta metoda pozwala dołączyć dowolną opłatę do płatności. Działa dokładnie tak samo jak w EDD_Fees, proszę przeczytać tam dokumentację.
remove_fee( $key )
Ta metoda pozwala usunąć daną opłatę. Działa dokładnie tak samo jak w EDD_Fees,
proszę zapoznać się z dokumentacją tam.
remove_fee_by( $key, $value, $global = false )
Ta metoda pozwala usunąć opłatę bez konieczności znajomości jej pozycji w tablicy opłat. Na przykład, jeśli masz opłatę z etykietą wysyłka, możesz zrobić coś takiego:
$payment->remove_fee_by( 'label', 'Shipping' );
Powyższy kod usunie pierwsze wystąpienie opłaty z etykietą Wysyłka. Jeśli dodasz flagę global true w ten sposób:
$payment->remove_fee_by( 'label', 'Shipping', true );
usunie WSZYSTKIE opłaty z etykietą Wysyłka.
add_note( $note = false )
Ta metoda pozwala dołączyć notatkę do płatności. Wyniki będą wyglądać mniej więcej tak:

update_status( $status = false )
Ta metoda pozwala ustawić status danej płatności. Oto możliwe statusy:
- Oczekująca
- Zakończona
- Zwrócono środki
- Nieudana
- Porzucona
- Anulowano
array_convert()
Ta metoda pozwala uzyskać wszystkie dostępne właściwości jako tablicę. Przykład:
$payment = new EDD_Payment( 4577 ); $payments_array = $payment->array_convert();
WAŻNE: właściwości, które zostały przeniesione do tablicy za pomocą array_convert, NIE będą aktualizowane w tej tablicy. Jeśli potrzebujesz zaktualizowanej wersji po zmianie, musisz ponownie uruchomić tę metodę i ponownie wypełnić tablicę.
save()
Ta metoda pobiera wszelkie zmiany lub aktualizacje dokonane przez inne metody i zapisuje je w bazie danych.
UWAGA: jeśli nie użyjesz save(), żadna z Twoich zmian nie zostanie wprowadzona.
Przykłady
Oto kilka przykładów kodu dla niektórych typowych zadań:
Tworzenie płatności
$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
Edycja istniejącej płatności
$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();
Zmiana statusu płatności
$payment = new EDD_Payment( 1337 ); $payment->status = 'revoked'; $payment->save();
Dodawanie produktu z ceną zmienną
$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();
Dodawanie produktu z opcjami
$payment = new EDD_Payment( 2008 );
$args = array(
'item_price' => 4.00,
);
$options = array(
'is_renewal' => true,
);
$payment->add_download( 28, $args, $options );
$payment->save();
Usuwanie produktu
$payment = new EDD_Payment( 2008 ); $payment->remove_download( 23 ); $payment->save();
Usuwanie produktu z ceną zmienną
$payment = new EDD_Payment( 2008 );
$args = array(
'price_id' => 1,
);
$payment->remove_download( 28, $args );
$payment->save();
