Zaloguj się
Rozpocznij

Dokumentacja Easy Digital Downloads

Dokumentacja, materiały referencyjne i samouczki dla Easy Digital Downloads 

Licencjonowanie oprogramowania – Niestandardowe rozwiązania deweloperskie

Podobnie jak rdzeń Easy Digital Downloads, rozszerzenie Software Licensing zawiera różnorodne haki akcji i filtrów, których można użyć do dostosowania działania rozszerzenia do własnych potrzeb. Niniejsza dokumentacja jest przeznaczona dla zaawansowanych użytkowników, którzy są już zaznajomieni z WordPress Plugins API.

Tworzenie licencji

Długość Licencji

Domyślnie każda licencja ma datę wygaśnięcia wynoszącą jeden rok. Ten okres wygaśnięcia można łatwo zmienić za pomocą filtru edd_sl_license_exp_length. Do filtru przekazywane są cztery parametry:

  • $length (string) – Długość wygaśnięcia tej licencji. Domyślnie „+1 rok”
  • $payment_id (int) – Identyfikator płatności zakupu, z którym wygenerowano tę licencję
  • $download_id (int) – Identyfikator produktu/pobrania, z którym powiązana jest ta licencja
  • $license_id (int) Identyfikator nowo utworzonej licencji

Oto szybki przykład, jak można zmienić długość wygaśnięcia:

function pw_edd_sl_license_length( $length, $payment_id, $download_id, $license_id ) {
	return '+2 years'; // set length to two years from creation date
}
add_filter( 'edd_sl_license_exp_length', 'pw_edd_sl_license_length', 10, 4 );

Wykonaj funkcje po utworzeniu licencji

Akcja edd_sl_store_license jest uruchamiana tuż po utworzeniu klucza licencyjnego i dołączeniu do niego wszystkich metadanych. Akcja przyjmuje trzy parametry:

  • $license_id (int) – Identyfikator nowo utworzonej licencji
  • $download_id (int) – Identyfikator produktu/pobrania, z którym powiązana jest ta licencja
  • $payment_id (int) – Identyfikator zakupu, z którym utworzono tę licencję

Przykładowa funkcja, którą można dołączyć do tej akcji, może wyglądać mniej więcej tak:

function pw_edd_sl_custom_admin_alert( $license_id, $download_id, $payment_id ) {
	
	// send admin alert

	wp_mail( get_bloginfo( 'admin_email' ), 'License Created', 'A new license key with the ID of ' . $license_id . ' has been created.' );

}
add_action( 'edd_sl_store_license', 'pw_edd_sl_custom_function', 10, 3 );

Wykonaj funkcje podczas aktywacji licencji

Akcja edd_sl_activate_license jest uruchamiana tuż po aktywacji licencji przez API.

do_action( 'edd_sl_activate_license', $license_id, $download_id );

Wykonaj funkcje podczas sprawdzania licencji

Akcja edd_sl_check_license jest uruchamiana tuż po sprawdzeniu licencji przez API.

do_action( 'edd_sl_activate_license', $license_id, $download_id );

Inne filtry

edd_sl_license_response – stosowany do odpowiedzi wysyłanej podczas zdalnego sprawdzania wersji produktu/pobrania.

edd_sl_get_license_logs – stosowany podczas pobierania wpisów dziennika dla licencji.

edd_sl_encoded_package_url – stosowany podczas pobierania zakodowanego adresu URL pakietu dla pakietów pobierania.

edd_sl_download_package_url – stosowany podczas pobierania pliku pakietu pobierania do automatycznych aktualizacji.

edd_license_labels – stosowany do etykiet typu posta podczas rejestrowania typu posta edd_license.

Inne akcje

edd_sl_before_package_download – wykonuje się tuż przed przesłaniem pliku pobierania do automatycznych aktualizacji do przeglądarki.

Licencjonowanie oprogramowania w wersji 3.5 i nowszych zawiera klasę EDD_SL_License do interakcji z rekordami kluczy licencyjnych. Klasa EDD_SL_License pozwala na interakcję z danymi kluczy licencyjnych, aktualizację istniejących kluczy licencyjnych i tworzenie nowych rekordów kluczy licencyjnych.

Instancjonowanie obiektów

Aby poprawić wydajność podczas dostępu do obiektu licencji, należy użyć metody opakowującej, która wykorzystuje warstwę buforowania obiektów rdzenia WordPress. Możesz użyć identyfikatora licencji lub klucza licencyjnego do utworzenia obiektu. Jeśli dla podanych informacji nie istnieje żadna licencja, metoda opakowująca zwróci `false`:

// Instantiate a license via ID
$license = edd_software_licensing()->get_license( 2326422 );

// Instantiate a license via the license key
$license_by_key = edd_software_licensing->get_license( '9e21e9a885212f96cccb4d6186541332', true );

// If you pass in an invalid license ID or key you will get 'false' as a response.
$invalid_license = edd_software_licensing()->get_license( -1 );

EDD_SL_License można utworzyć z identyfikatorem licencji lub bez wartości podczas tworzenia nowej licencji. Oto kilka przykładów:

$license = new EDD_SL_License( 2326422 );

Jeśli chcesz utworzyć nową licencję:

$license = new EDD_SL_License();
$license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() );

Chociaż można bezpośrednio utworzyć licencję za pomocą EDD_SL_License, ze względów wydajności preferowane jest użycie funkcji opakowującej.

Argumenty niezbędne do utworzenia nowej licencji zostaną omówione poniżej.

Dostępne właściwości

Klasa EDD_SL_License zawiera liczne dostępne właściwości, które przechowują informacje związane z rekordem klucza licencyjnego.

  • ID – Numer identyfikacyjny rekordu licencji. Odpowiada to identyfikatorowi obiektu WP_Post.
  • parent – Identyfikator posta nadrzędnej licencji, jeśli istnieje.
  • name – Nazwa licencji. Jest to połączenie adresu e-mail klienta i nazwy produktu, z którym powiązany jest klucz licencyjny.
  • key – Sam klucz licencyjny. Jest to zazwyczaj ciąg znaków o długości 32 znaków, ale może być dowolny.
  • user_id – Identyfikator WP_User, do którego należy klucz licencyjny, jeśli istnieje.
  • customer_id – Identyfikator EDD_Customer, do którego należy licencja.
  • payment_id – Identyfikator EDD_Payment, dla którego została utworzona licencja.
  • payment_ids – Tablica identyfikatorów płatności związanych z licencją. Obejmuje odnowienia i aktualizacje.
  • cart_index – Numeryczny indeks w tablicy elementów koszyka produktu, z którym powiązany jest klucz licencyjny.
  • download – Instancja EDD_SL_Download produktu pobieranego, z którym powiązany jest klucz licencyjny.
  • download_id – Identyfikator posta produktu pobieranego, z którym powiązany jest klucz licencyjny.
  • price_id – Identyfikator opcji ceny produktu pobieranego przypisanej do klucza licencyjnego.
  • activation_limit – Liczba unikalnych adresów URL / maszyn, na których można aktywować klucz licencyjny.
  • sites – Tablica adresów URL witryn (lub identyfikatorów maszyn), na których aktywowany jest klucz licencyjny.
  • activation_count – Liczba unikalnych adresów URL / maszyn, na których klucz licencyjny jest aktualnie aktywowany.
  • expiration – Data wygaśnięcia klucza licencyjnego.
  • is_lifetime – Flaga logiczna wskazująca, czy licencja jest licencją wieczystą (nigdy nie wygasa).
  • status – Aktualny status licencji (aktywna, nieaktywna, wygasła).
  • post_status – status posta obiektu WP_Post dla licencji.
  • child_licenses – Tablica kluczy licencji podrzędnych, jeśli istnieją.

Do każdej właściwości można uzyskać bezpośredni dostęp, w następujący sposób:

// Access the price ID of the license
$price_id = $license->price_id;

Do każdej właściwości można również uzyskać dostęp, ustawiając wartość właściwości, w następujący sposób:

// Set the license activation limit
$license->activation_limit = 100;

Zmiany we właściwościach obiektu zostaną zapisane natychmiast, bez potrzeby wywoływania metody zapisu lub aktualizacji.

Dostępne metody

Klasa EDD_SL_License zawiera publiczne metody dostępu do właściwości obiektu oraz kilka innych metod pomocniczych, które mogą być używane do dostępu i interakcji z danymi licencji.

$license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() )

Ta metoda pozwala na utworzenie nowego rekordu licencji dla istniejącego produktu pobierania i rekordu płatności.

  • $download_id – Musi to być identyfikator istniejącego produktu pobierania
  • $payment_id – Musi to być identyfikator istniejącego rekordu płatności, który zawierał zakup $download_id
  • $price_id – Jest to opcjonalny identyfikator ceny dla $download_id, jeśli włączono zmienne ceny
  • $cart_index – Jest to opcjonalny indeks elementu koszyka, który dokładnie identyfikuje, do którego elementu koszyka odnosi się ta licencja
  • $options – Tablica opcji dla licencji. Może zawierać następujące klucze
    • parent_license_id
    • activation_limit
    • license_length
    • expiration_date
    • is_lifetime

Metoda create() może być używana do utworzenia nowego klucza licencji, ale zazwyczaj nie będzie używana ręcznie, z wyjątkiem bardzo niestandardowych implementacji.

$license->update( $data = array() )

Ta metoda pozwala na masową aktualizację metadanych licencji. Tablica $data powinna być parą klucz/wartość meta_key/meta_value.

$license->renew()

Ta metoda wywoła odnowienie klucza licencji, przedłużając datę wygaśnięcia o jeden okres i resetując status licencji do nieaktywny lub aktywny.

$license->enable()

Ta metoda ponownie włączy wyłączony klucz licencji.

$license->disable()

Ta metoda wyłączy klucz licencji.

$license->get_meta( $meta_key = ”, $single = true )

Ta metoda pobierze metadane dla licencji.

$license->update_meta($meta_key = ”, $value = ”, $old_value = ” )

Ta metoda zaktualizuje metadane licencji.

$license->get_renewal_url()

Ta metoda pobierze adres URL odnowienia dla licencji.

$license->is_site_active( $url )

Ta metoda określi, czy podany adres URL jest zarejestrowany w licencji.

$license->is_at_limit()

Ta metoda sprawdzi, czy licencja osiągnęła limit aktywacji.

$license->license_length()

Ta metoda zwróci długość pojedynczego okresu dla licencji, na przykład dożywotnio lub +1 rok.

$license->add_site( $url )

Ta metoda może być użyta do zarejestrowania nowego adresu URL witryny w licencji.

$license->remove_site( $url )

Ta metoda może być użyta do usunięcia adresu URL witryny z licencji.

$license->reset_activation_limit()

Ta metoda może być użyta do zresetowania limitu aktywacji w licencji zgodnie z ustawieniami produktu do pobrania.

Czy ten artykuł był pomocny?

Zacznij sprzedawać już dziś!

Dołącz do ponad 50 000 sprytnych właścicieli sklepów i zacznij korzystać z najłatwiejszego sposobu sprzedaży produktów cyfrowych za pomocą WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]