Spis treści
Klasa EDD_Customer służy do pobierania danych klienta, tworzenia nowych wpisów klientów i edycji istniejących wpisów klientów. Wartości, którymi można zarządzać za pomocą tej klasy, to:
- user_id
- name
- payment_ids
- purchase_value
- purchase_count
- notes
Pobieranie klienta
Twoje powody pobierania danych klienta mogą się różnić od prostego wyświetlania informacji po wykorzystanie ich do statystyk, logowania lub czegokolwiek innego. Oto kroki, aby pobrać i wyświetlić informacje o kliencie.
Krok 1, Pobierz dane
Aby utworzyć obiekt klienta, musisz przekazać jakiś identyfikator podczas tworzenia instancji klasy. Może to być adres e-mail, identyfikator klienta lub identyfikator użytkownika WordPress.
Przykłady:
Email
$customer = new EDD_Customer( '[email protected]' );
ID klienta
$customer = new EDD_Customer( 33 );
ID użytkownika WordPress
$customer = new EDD_Customer( 96, true );
Uwaga: dla identyfikatora użytkownika WordPress musisz przekazać wartość true jako drugi parametr, aby wiedział, że ma szukać w WordPress, a nie w EDD.
Krok 2, Użyj danych
Teraz możesz uzyskać dostęp do właściwości obiektu klienta w następujący sposób:
- $customer->name;
- $customer->email;
- $customer->date_created;
- $customer->purchase_count;
- $customer->purchase_value;
- $customer->id; // ID klienta
- $customer->user_id; // ID użytkownika WordPress
- $customer->payment_ids;
Możesz je wypisać, sparsować; cokolwiek zechcesz.
Pobieranie danych płatności klienta
Klasa EDD_Customer ma metodę o nazwie
get_payments(). Ta metoda zwraca tablicę obiektów EDD_Payment. Przykład:
$customer = new EDD_Customer( 33 ); $payments = $customer->get_payments();
Teraz $payments będzie zawierać tablicę obiektów EDD_Payment. Więcej informacji o tym, jak wygląda ta tablica,
znajdziesz w dokumentacji klasy EDD_Payment.
Tworzenie klienta
Najpierw utwórz obiekt:
$customer = new EDD_Customer;
Przykład 1:
$args = array( 'user_id' => 12 'name' => 'Jose Canseco', 'email' => '[email protected]', 'payment_ids' => '', 'purchase_value' => '', 'purchase_count' => '', 'notes' => 'Whatever note you'd like', );
Uwaga: podany
user_id to numer identyfikacyjny użytkownika WordPress. Jest wymagany tylko wtedy, gdy chcesz powiązać swojego Klienta z użytkownikiem WordPress. Jeśli nie, usuń go z tablicy.
$customer->create( $args );
wymaganą opcją jest e-mail, więc to również zadziała:
$args = array( 'email' => '[email protected]', );
$customer->create( $args );
Tworzy to klienta tylko z podanym adresem e-mail, co działa doskonale.
Aktualizacja klienta
Krok 1, Pobierz dane.
Użyj przykładowego kodu z sekcji „Pobieranie klienta” powyżej.
Krok 2, Zaktualizuj dane
Istnieją dwa sposoby aktualizacji danych klienta za pomocą EDD_Customer. Jednym z nich jest użycie
metody update() i aktualizacja wielu pól naraz.
Przykład:
$customer = new EDD_Customer( 33 ); $update_args = array( 'email' => '[email protected]', 'name' => 'Jose Canseco', );
Teraz klient 33 ma zaktualizowany adres e-mail i nową notatkę.
Uwaga: aktualizacja pola notatek za pomocą tej metody spowoduje usunięcie wszystkich istniejących notatek. Użyj wspomnianej poniżej metody add_note(), aby dodać nową notatkę.
Aktualizacja konkretnych pól
Zamiast używać ogólnej metody update() wymienionej powyżej, zazwyczaj powinieneś próbować używać jednej z poniższych metod pomocniczych. Zapewniają one specyficzne, ograniczone funkcje, które mogą pomóc zmniejszyć liczbę błędów.
Dla każdej z poniższych metod najpierw utworzyłbyś klasę klienta, jak powyżej:
$customer = new EDD_Customer( 33 );
attach_payment() i remove_payment()
Służą one do dołączania i usuwania płatności do i od klienta. Obie przyjmują identyfikator płatności jako pierwszą zmienną i opcję boolean jako drugą. Druga opcja zaktualizuje statystyki, jeśli zostanie ustawiona na true.
Przykłady:
$customer->attach_payment( 33, true );
$customer->remove_payment( 33, true );
increase_purchase_count() i decrease_purchase_count()
Służą one do zwiększania i zmniejszania
liczby zakupów dokonanych przez jednego klienta. Oba przyjmują po prostu liczbę całkowitą, zmieniając zapisaną wartość o tę kwotę.
Przykłady:
$customer->increase_purchase_count( 1 );
$customer->decrease_purchase_count( 1 );
increase_value() i decrease_value()
Służą one do zwiększania i zmniejszania kwoty wydanej przez jednego klienta. Oba przyjmują po prostu liczbę dziesiętną, z dokładnością do dwóch miejsc, zmieniając zapisaną wartość o tę kwotę.
Przykłady:
$customer->increase_value( 14.98 );
$customer->decrease_value( 3.00 );
get_notes()
Ta metoda zwraca notatki pozostawione na koncie klienta. Akceptuje 2 zmienne, pierwsza określa, ile notatek chcesz uzyskać, a druga to przesunięcie.
Przykłady:
$customer->get_notes( 5 ); // pobiera pierwsze 5 notatek$customer->decrease_value( 5, 6 ); // pobiera 5 notatek zaczynając od pozycji 6, czyli notatki 6-10get_notes_count()
Ta metoda zwraca liczbę notatek na koncie klienta. Nie przyjmuje żadnych danych wejściowych.
Przykład:
$customer->get_notes_count();
add_note()
Ta metoda akceptuje ciąg znaków jako dane wejściowe i przechowuje go jako nową notatkę na koncie klienta. Zachowuje podziały wierszy, ale nie pozwala na HTML.
Przykład:
$customer->add_note( 'To jest notatka. Czyż nie jest fajna?' );
Metadane klienta
Dowolne metadane klienta mogą być zarządzane za pomocą funkcji meta wbudowanych w klasę EDD_Customer.
get_meta( $meta_key = ”, $single = true )
get_meta przyjmuje klucz meta i zwraca jego wartość. Jeśli parametr single jest ustawiony na false, zawsze zwróci tablicę.
add_meta( $meta_key = ”, $meta_value, $unique = false )
add_meta akceptuje klucz meta i jego wartość, ale także akceptuje wartość logiczną dla parametru unique. Jeśli trzeci argument jest prawdziwy, add_meta powiedzie się tylko wtedy, gdy klucz meta jeszcze nie istnieje. Zwraca false w przypadku niepowodzenia. True w przypadku sukcesu.
update_meta( $meta_key = ”, $meta_value, $prev_value = ” )
update_meta akceptuje klucz meta i nową wartość, którą chcesz dla niego ustawić. Jeśli masz wiele kluczy o tej samej nazwie, wszystkie zostaną zaktualizowane o nową wartość. Trzeci argument akceptuje wartość do porównania z poprzednią wartością. Więc jeśli masz już kilka kluczy meta o nazwie
foo, ale tylko jeden z wartością bar, możesz ustawić bar jako trzeci argument, a aktualizacja nastąpi tylko na tym jednym. Zwraca false w przypadku niepowodzenia. True w przypadku sukcesu.
delete_meta( $meta_key = ”, $meta_value = ” )
delete_meta usunie wszystkie metadane z pasującym kluczem. Jeśli zostanie również podana wartość, obie muszą pasować. Zwraca false w przypadku niepowodzenia. True w przypadku sukcesu.
Adresy e-mail klienta
Każdy klient może mieć wiele adresów e-mail, co pozwala mu na zakupy z więcej niż jednego adresu lub na zakupy z jednego, a otrzymywanie wsparcia z innego. Każdy klient będzie miał również główny adres e-mail, który jest używany jako domyślny dla klienta. W zakładce Zarządzanie klientami interfejs wygląda tak:
Klasa EDD_Customer pozwala programiście na usuwanie adresów od klienta i dodawanie adresów do klienta, a także na ustawienie konkretnego adresu jako głównego.
add_email( $email = ”, $primary = false )
Ta funkcja akceptuje adres e-mail do dodania do klienta. Jeśli drugi parametr jest prawdziwy, nowy adres e-mail zostanie ustawiony jako główny adres klienta. Zwraca false w przypadku błędu. True w przypadku sukcesu.
set_primary_email( $new_primary_email = ” )
Ta funkcja akceptuje adres e-mail i jeśli adres e-mail jest już powiązany z tym klientem, ustawi go jako główny adres e-mail tego klienta. Zwraca false w przypadku błędu. True w przypadku sukcesu.
remove_email( $email = ” )
Ta funkcja akceptuje adres e-mail i jeśli adres e-mail jest już powiązany z tym klientem, usuwa go od tego klienta. Zwraca false w przypadku błędu. True w przypadku sukcesu.
