Indice dei contenuti
Proprio come il core di Easy Digital Downloads, l'estensione Software Licensing include una varietà di action e filter hook che puoi utilizzare per modificare il comportamento dell'estensione per adattarla meglio alle tue esigenze. Questa documentazione è scritta per utenti avanzati che hanno già familiarità con la WordPress Plugins API.
Creazione Licenza
Durata Licenza
Per impostazione predefinita, a ogni chiave di licenza viene assegnata una data di scadenza di un anno. Questa durata di scadenza può essere facilmente modificata utilizzando il filtro edd_sl_license_exp_length. Ci sono quattro parametri passati al filtro:
- $length (string) – La durata di scadenza per questa licenza. “+1 anno” è l'impostazione predefinita
- $payment_id (int) – L'ID del pagamento con cui è stata generata questa licenza
- $download_id (int) – L'ID del download/prodotto a cui è collegata questa licenza
- $license_id (int) L'ID della licenza appena creata
Ecco un rapido esempio di come potresti cambiare la durata della scadenza:
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 );
Esegui Funzioni Dopo la Creazione della Licenza
L'action edd_sl_store_license viene attivata subito dopo la creazione della chiave di licenza e l'associazione di tutti i metadati. L'action accetta tre parametri:
- $license_id (int) – L'ID della licenza appena creata
- $download_id (int) – L'ID del download/prodotto a cui è collegata questa licenza
- $payment_id (int) – L'ID del pagamento con cui è stata creata questa licenza
Una funzione di esempio che potresti collegare a questa action potrebbe assomigliare a questo:
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 );
Esegui Funzioni Durante l'Attivazione della Licenza
L'action edd_sl_activate_license viene eseguita subito dopo l'attivazione di una licenza tramite API.
do_action( 'edd_sl_activate_license', $license_id, $download_id );
Esegui Funzioni Durante il Controllo della Licenza
L'action edd_sl_check_license viene eseguita subito dopo il controllo di una licenza tramite API.
do_action( 'edd_sl_activate_license', $license_id, $download_id );
Altri Filtri
edd_sl_license_response – applicato alla risposta inviata durante il controllo remoto della versione di un download/prodotto.
edd_sl_get_license_logs – applicato quando vengono recuperate le voci di log per una licenza.
edd_sl_encoded_package_url – applicato quando viene recuperato l'URL del pacchetto codificato per i pacchetti di download.
edd_sl_download_package_url – applicato quando viene recuperato il file del pacchetto di download per gli aggiornamenti automatici.
edd_license_labels – applicato alle etichette del tipo di post durante la registrazione del tipo di post edd_license.
Altre Azioni
edd_sl_before_package_download – esegue subito prima che il file di download per gli aggiornamenti automatici venga servito al browser.
Software Licensing versione 3.5 e successive include una classe EDD_SL_License per interagire con i record delle chiavi di licenza. La classe EDD_SL_License ti consente di interagire con i dati delle chiavi di licenza, aggiornare le chiavi di licenza esistenti e creare nuovi record di chiavi di licenza.
Istanziamento di Oggetti
Per migliorare le prestazioni nell'accesso a un oggetto licenza, dovresti usare il metodo wrapper, che utilizza il livello di caching degli oggetti core di WordPress. Puoi usare l'ID licenza o la Chiave licenza per istanziare un oggetto. Se non esiste alcuna licenza per le informazioni fornite, il metodo wrapper restituirà `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 può essere istanziato con un ID licenza o senza valore durante la creazione di una nuova licenza. Ecco alcuni esempi:
$license = new EDD_SL_License( 2326422 );
Se desideri creare una nuova licenza:
$license = new EDD_SL_License(); $license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() );
Sebbene tu possa istanziare direttamente una licenza con EDD_SL_License, è preferibile utilizzare la funzione wrapper per motivi di prestazioni.
Gli argomenti necessari per creare una nuova licenza saranno trattati di seguito.
Proprietà disponibili
La classe EDD_SL_License include numerose proprietà accessibili che contengono informazioni relative al record della chiave di licenza.
- ID – Il numero ID del record della licenza. Questo corrisponde all'ID dell'oggetto WP_Post.
- parent – L'ID del post della licenza padre, se presente.
- name – Il nome della licenza. Questa è una concatenazione dell'indirizzo email del cliente e del nome del prodotto a cui è associata la chiave di licenza.
- key – La chiave di licenza stessa. Questa è tipicamente una stringa di 32 caratteri ma può essere qualsiasi cosa.
- user_id – L'ID dell'utente WP_User a cui appartiene la chiave di licenza, se presente.
- customer_id – L'ID del EDD_Customer a cui appartiene la licenza.
- payment_id – L'ID del EDD_Payment per cui è stata creata la licenza.
- payment_ids – Un array di ID di pagamento relativi alla licenza. Include rinnovi e aggiornamenti.
- cart_index – L'indice numerico nell'array degli articoli del carrello del prodotto a cui è associata la chiave di licenza.
- download – Un'istanza EDD_SL_Download del prodotto scaricabile a cui è associata la chiave di licenza.
- download_id – L'ID del post del prodotto scaricabile a cui è associata la chiave di licenza.
- price_id – L'ID dell'opzione di prezzo del prodotto scaricabile assegnata alla chiave di licenza.
- activation_limit – Il numero di URL / macchine uniche su cui la chiave di licenza può essere attivata.
- sites – Un array di URL del sito (o ID macchina) su cui la chiave di licenza è attivata.
- activation_count – Il numero di URL / macchine uniche su cui la chiave di licenza è attualmente attivata.
- expiration – La data di scadenza della chiave di licenza.
- is_lifetime – Flag booleano che indica se la licenza è una licenza a vita (non scade mai).
- status – Lo stato corrente della licenza (attiva, inattiva, scaduta).
- post_status – Lo stato del post dell'oggetto WP_Post per la licenza.
- child_licenses – Un array di chiavi di licenza figlio, se presenti.
Ciascuna proprietà può essere acceduta direttamente, in questo modo:
// Access the price ID of the license $price_id = $license->price_id;
Ciascuna proprietà può anche essere aggiornata impostando il valore della proprietà, in questo modo:
// Set the license activation limit $license->activation_limit = 100;
Le modifiche alle proprietà dell'oggetto verranno salvate immediatamente senza la necessità di chiamare un metodo di salvataggio o aggiornamento.
Metodi disponibili
La classe EDD_SL_License include metodi pubblici per accedere alle proprietà dell'oggetto e diversi altri metodi di supporto che possono essere utilizzati per accedere e interagire con i dati della licenza.
$license->create( $download_id = 0, $payment_id = 0, $price_id = false, $cart_index = 0, $options = array() )
Questo metodo consente di creare un nuovo record di licenza per un prodotto di download e un record di pagamento esistenti.
- $download_id – Deve essere l'ID di un prodotto di download esistente
- $payment_id – Deve essere l'ID di un record di pagamento esistente che includeva un acquisto di $download_id
- $price_id – Questo è un ID prezzo opzionale per $download_id se i prezzi variabili sono abilitati
- $cart_index – Questo è un indice opzionale dell'articolo del carrello che identifica esattamente a quale articolo del carrello corrisponde questa licenza
- $options – Un array di opzioni per la licenza. Può includere le seguenti chiavi
- parent_license_id
- activation_limit
- license_length
- expiration_date
- is_lifetime
Il metodo create() può essere utilizzato per creare una nuova chiave di licenza ma in genere non verrà utilizzato manualmente se non in implementazioni molto personalizzate.
$license->update( $data = array() )
Questo metodo consente di aggiornare i metadati di una licenza in blocco. L'array $data dovrebbe essere una coppia chiave/valore di meta_key/meta_value.
$license->renew()
Questo metodo attiverà un rinnovo di una chiave di licenza, estendendo la data di scadenza di un periodo e reimpostando lo stato della licenza su non attiva o attiva.
$license->enable()
Questo metodo riabiliterà una chiave di licenza disabilitata.
$license->disable()
Questo metodo disabiliterà una chiave di licenza.
$license->get_meta( $meta_key = ”, $single = true )
Questo metodo recupererà i metadati per una licenza.
$license->update_meta($meta_key = ”, $value = ”, $old_value = ” )
Questo metodo aggiornerà i metadati per una licenza.
$license->get_renewal_url()
Questo metodo recupererà l'URL di rinnovo per una licenza.
$license->is_site_active( $url )
Questo metodo determinerà se l'URL fornito è registrato nella licenza.
$license->is_at_limit()
Questo metodo verificherà se la licenza ha raggiunto il suo limite di attivazione.
$license->license_length()
Questo metodo restituirà la durata di un singolo periodo per la licenza, come lifetime o +1 anno.
$license->add_site( $url )
Questo metodo può essere utilizzato per registrare un nuovo URL del sito su una licenza.
$license->remove_site( $url )
Questo metodo può essere utilizzato per rimuovere un URL del sito da una licenza.
$license->reset_activation_limit()
Questo metodo può essere utilizzato per reimpostare il limite di attivazione su una licenza in base alle impostazioni del prodotto scaricabile.
