Accedi
Inizia

Documentazione di Easy Digital Downloads

Documentazione, Materiali di Riferimento e Tutorial per Easy Digital Downloads 

Licenze Software – Personalizzazioni Sviluppatore

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.

Questo articolo è stato utile?

Inizia a vendere oggi!

Unisciti a oltre 50.000 proprietari di negozi intelligenti e inizia a usare il modo più semplice per vendere prodotti digitali con WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]