La fel ca nucleul Easy Digital Downloads, extensia Software Licensing include o varietate de cârlige de acțiune și filtrare pe care le puteți utiliza pentru a ajusta comportamentul extensiei pentru a se potrivi mai bine nevoilor dumneavoastră. Această documentație este scrisă pentru utilizatori avansați care sunt deja familiarizați cu API-ul de plugin-uri WordPress.
Creare Licență
Durata licenței
Implicit, fiecărei chei de licență i se acordă o dată de expirare de un an. Această durată de expirare poate fi modificată cu ușurință utilizând filtrul edd_sl_license_exp_length. Există patru parametri transmiși filtrului:
- $length (string) – Durata de expirare pentru această licență. „+1 an” este implicit
- $payment_id (int) – ID-ul plății cu care a fost generată această licență
- $download_id (int) – ID-ul produsului/descărcării la care este conectată această licență
- $license_id (int) ID-ul licenței nou create
Iată un exemplu rapid despre cum ați putea schimba durata de expirare:
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 );
Executare Funcții După Crearea Licenței
Acțiunea edd_sl_store_license este declanșată imediat după crearea cheii de licență și atașarea tuturor metadatelor la aceasta. Acțiunea preia trei parametri:
- $license_id (int) – ID-ul licenței nou create
- $download_id (int) – ID-ul produsului/descărcării la care este conectată această licență
- $payment_id (int) – ID-ul plății cu care a fost creată această licență
O funcție eșantion pe care ați putea-o atașa acestei acțiuni ar putea arăta cam așa:
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 );
Executare Funcții În Timpul Activării Licenței
Acțiunea edd_sl_activate_license rulează imediat după activarea unei licențe prin API.
do_action( 'edd_sl_activate_license', $license_id, $download_id );
Executare Funcții În Timpul Verificării Licenței
Acțiunea edd_sl_check_license rulează imediat după verificarea unei licențe prin API.
do_action( 'edd_sl_activate_license', $license_id, $download_id );
Alte Filtre
edd_sl_license_response – aplicat răspunsului trimis la verificarea la distanță a versiunii unui produs/descărcare.
edd_sl_get_license_logs – aplicat la preluarea intrărilor de jurnal pentru o licență.
edd_sl_encoded_package_url – aplicat la preluarea URL-ului pachetului codificat pentru pachetele de descărcare.
edd_sl_download_package_url – aplicat la preluarea fișierului pachetului de descărcare pentru actualizări automate.
edd_license_labels – aplicat etichetelor tipului de postare la înregistrarea tipului de postare edd_license.
Alte Acțiuni
edd_sl_before_package_download – executat imediat înainte ca fișierul pachetului pentru upgrade-uri automate să fie servit browserului.
Software Licensing versiunea 3.5 și ulterioare include o clasă EDD_SL_License pentru interacțiunea cu înregistrările cheilor de licență. Clasa EDD_SL_License vă permite să interacționați cu datele cheilor de licență, să actualizați cheile de licență existente și să creați noi înregistrări ale cheilor de licență.
Instanțierea Obiectelor
Pentru a îmbunătăți performanța la accesarea unui obiect de licență, ar trebui să utilizați metoda wrapper, care folosește stratul de caching al obiectelor din nucleul WordPress. Puteți folosi fie ID-ul licenței, fie cheia licenței pentru a instanția un obiect. Dacă nu există nicio licență pentru informațiile furnizate, metoda wrapper va returna `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 poate fi instanțiat cu un ID de licență sau fără valoare la crearea unei noi licențe. Iată câteva exemple:
$license = new EDD_SL_License( 2326422 );
Dacă doriți să creați o nouă licență:
$license = new EDD_SL_License(); $license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() );
Deși puteți instanția direct o licență cu EDD_SL_License, este preferabil să utilizați funcția wrapper din motive de performanță.
Argumentele necesare pentru a crea o nouă licență vor fi acoperite mai jos.
Proprietăți disponibile
Clasa EDD_SL_License include numeroase proprietăți accesibile care dețin informații legate de înregistrarea cheii de licență.
- ID – Numărul ID al înregistrării licenței. Acesta corespunde ID-ului obiectului WP_Post.
- parent – ID-ul postului licenței părinte, dacă există.
- name – Numele licenței. Aceasta este o concatenare a adresei de e-mail a clientului și a numelui produsului cu care este asociată cheia de licență.
- key – Cheia de licență în sine. Aceasta este, de obicei, un șir de 32 de caractere, dar poate fi orice.
- user_id – ID-ul utilizatorului WP_User căruia îi aparține cheia de licență, dacă există.
- customer_id – ID-ul clientului EDD_Customer căruia îi aparține licența.
- payment_id – ID-ul plății EDD_Payment pentru care a fost creată licența.
- payment_ids – O listă de ID-uri de plăți legate de licență. Include reînnoiri și upgrade-uri.
- cart_index – Indexul numeric în lista de articole din coș a produsului cu care este asociată cheia de licență.
- download – O instanță EDD_SL_Download a produsului de descărcare cu care este asociată cheia de licență.
- download_id – ID-ul postului produsului de descărcare cu care este asociată cheia de licență.
- price_id – ID-ul opțiunii de preț a produsului de descărcare atribuită cheii de licență.
- activation_limit – Numărul de URL-uri unice / mașini pe care cheia de licență poate fi activată.
- sites – O listă de URL-uri de site (sau ID-uri de mașini) pe care cheia de licență este activată.
- activation_count – Numărul de URL-uri unice / mașini pe care cheia de licență este în prezent activată.
- expiration – Data de expirare a cheii de licență.
- is_lifetime – Indicator boolean care indică dacă licența este o licență pe viață (nu expiră niciodată).
- status – Starea curentă a licenței (activă, inactivă, expirată).
- post_status – Starea postului post_status a obiectului WP_Post pentru licență.
- child_licenses – O listă de chei de licență copil, dacă există.
Fiecare proprietate poate fi accesată direct, astfel:
// Access the price ID of the license $price_id = $license->price_id;
Fiecare proprietate poate fi, de asemenea, actualizată prin setarea valorii proprietății, astfel:
// Set the license activation limit $license->activation_limit = 100;
Modificările aduse proprietăților obiectului vor fi salvate imediat, fără a fi necesară apelarea unei metode de salvare sau actualizare.
Metode disponibile
Clasa EDD_SL_License include metode publice pentru accesarea proprietăților obiectului și mai multe alte metode ajutătoare care pot fi utilizate pentru a accesa și interacționa cu datele licenței.
$license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() )
Această metodă vă permite să creați o nouă înregistrare de licență pentru un produs de descărcare existent și o înregistrare de plată.
- $download_id – Acesta trebuie să fie ID-ul unui produs de descărcare existent
- $payment_id – Acesta trebuie să fie ID-ul unei înregistrări de plată existente care a inclus o achiziție a $download_id
- $price_id – Acesta este un ID de preț opțional pentru $download_id dacă prețurile variabile sunt activate
- $cart_index – Acesta este un index opțional al elementului din coș care identifică exact la ce element din coș corespunde această licență
- $options – Un array de opțiuni pentru licență. Poate include următoarele chei
- parent_license_id
- activation_limit
- license_length
- expiration_date
- is_lifetime
Metoda create() poate fi utilizată pentru a crea o nouă cheie de licență, dar în mod normal nu va fi utilizată manual, cu excepția implementărilor foarte personalizate.
$license->update( $data = array() )
Această metodă vă permite să actualizați metadatele pentru o licență în bloc. Array-ul $data ar trebui să fie o pereche cheie/valoare de meta_key/meta_value.
$license->renew()
Această metodă va declanșa reînnoirea unei chei de licență, extinzând data de expirare cu o perioadă și resetând starea licenței la inactivă sau activă.
$license->enable()
Această metodă va reactiva o cheie de licență dezactivată.
$license->disable()
Această metodă va dezactiva o cheie de licență.
$license->get_meta( $meta_key = ”, $single = true )
Această metodă va prelua metadatele pentru o licență.
$license->update_meta($meta_key = ”, $value = ”, $old_value = ” )
Această metodă va actualiza metadatele pentru o licență.
$license->get_renewal_url()
Această metodă va prelua URL-ul de reînnoire pentru o licență.
$license->is_site_active( $url )
Această metodă va determina dacă URL-ul furnizat este înregistrat pe licență.
$license->is_at_limit()
Această metodă va verifica dacă licența a atins limita de activare.
$license->license_length()
Această metodă va returna lungimea unei singure perioade pentru licență, cum ar fi pe viață sau +1 an.
$license->add_site( $url )
Această metodă poate fi utilizată pentru a înregistra un nou URL de site pe o licență.
$license->remove_site( $url )
Această metodă poate fi utilizată pentru a elimina un URL de site dintr-o licență.
$license->reset_activation_limit()
Această metodă poate fi utilizată pentru a reseta limita de activare pe o licență, conform setărilor produsului descărcabil.
