<html lang="it-it" dir="ltr"><head></head><body># Licenze Software - Problemi comuni e FAQ

L'estensione [Software Licensing](https://easydigitaldownloads.com/downloads/software-licensing/) per Easy Digital Downloads richiede una configurazione e integrazione - ed è possibile che si verifichino alcuni problemi. Alcuni di questi sono delineati qui con potenziali soluzioni.

##### Indice dei contenuti

- [FAQ](#faq)
- [Problemi comuni](#common)
- [Risoluzione dei problemi di aggiornamento](#update)



FAQ
----

### Come si contattano i clienti quando è disponibile un aggiornamento?

Si consiglia di utilizzare un servizio di email marketing, come Mailchimp o ConvertKit. WordPress non è raccomandato per l'invio di email di massa, quindi il contatto con gli utenti deve essere effettuato esternamente a EDD/WordPress.

### È possibile vendere licenze personalizzate / enterprise?

Sebbene non vi sia un supporto integrato per la vendita di licenze personalizzate o enterprise che possono essere attivate su un numero maggiore di siti, esistono soluzioni alternative per far funzionare questo sistema. L'opzione più semplice è fatturare al cliente tramite una fattura Stripe o PayPal. Una volta pagato, [crea manualmente](https://easydigitaldownloads.com/docs/manually-creating-purchases/) un ordine e aggiorna il limite di attivazione della licenza al numero di attivazioni che desideri rendere disponibili al cliente.

### Software Licensing funziona con Amazon S3?

Sì, è pienamente compatibile senza problemi e senza impostazioni speciali.

### Gli ambienti locali / di sviluppo influiscono sul conteggio delle attivazioni?

Se scegli di limitare il numero di attivazioni di licenza che un cliente può avere, è comunque possibile consentirgli di attivare una licenza nel proprio ambiente di sviluppo locale senza influire sul conteggio delle attivazioni.

Ciò consente ai tuoi utenti di rimanere facilmente aggiornati nei loro ambienti di test e sviluppo senza ottenere attivazioni di licenza gratuite.

Affinché ciò funzioni, devono accadere due cose:

#### 1) Ignora URL di host locali

Nella tua bacheca di WordPress, sotto
***Download → Impostazioni → Estensioni → Licenze Software*** cerca una casella di controllo che dice *Ignora URL di host locali*. Assicurati che sia selezionata.

![](https://easydigitaldownloads.com/wp-content/uploads/2022/01/edd-software-licensing-settings-800x145.png)#### 2) Educa i clienti

Vedi [questa guida](https://easydigitaldownloads.com/docs/how-can-i-ignore-local-host-urls-for-activation/) su come ignorare le attivazioni per i siti di sviluppo.

### Come si creano formati di chiave di licenza personalizzati?

Le chiavi di licenza EDD sono per impostazione predefinita un riassunto md5 come questo:

```
e0c7ccc47b2613c82d1073a4214deecc
```

Se desideri avere qualcos'altro, con [Software Licensing](https://easydigitaldownloads.com/downloads/software-licensing/) è facile come creare una funzione per creare chiavi univoche coerenti e agganciarsi a un filtro chiamato edd\_sl\_generate\_license\_key.

I formati delle chiavi di licenza possono essere davvero qualsiasi cosa tu desideri, purché siano univoci e coerenti. Se desideri chiavi in questo formato:

```
username_timestamp_licensekey

sdavis2702_20151015120022_e0c7ccc47b2613c82d1073a4214deecc
```

Puoi usare questa funzione:

```
// Esempio che mostra come basare l'MD5 sull'email dell'utente e sulla data di acquisto
function pw_edd_license_md5_user_and_date( $key, $license_id, $download_id, $payment_id, $cart_index ) {

    $name      = get_user_by( 'email', edd_get_payment_user_email( $payment_id ) );
    $date      = get_post_field( 'post_date', $payment_id );
    $timestamp = strtotime(￼$date);
    $nice_date = date( 'Yndhis', $timestamp );
    $license   = md5( $license_id );
    $key       = $name-&gt;user_nicename . '_' . $nice_date . '_' . $license;

    return $key;
}
add_filter( 'edd_sl_generate_license_key', 'pw_edd_license_md5_user_and_date', 10, 5 );
```

Una funzione più semplice utilizza solo il nome utente e la chiave di licenza:

```
// antepone il nome utente dell'utente alla chiave di licenza
function sd_edd_license_username_md5( $key, $license_id, $download_id, $payment_id, $cart_index ) {
    $name      = get_user_by( 'email', edd_get_payment_user_email( $payment_id ) );
    $license   = md5( $license_id );
    $key       = $name-&gt;user_nicename . '_' . $license;

    return $key;
}
add_filter( 'edd_sl_generate_license_key', 'sd_edd_license_username_md5', 10, 5 );
```

La cosa più importante da capire da questo documento è che puoi usare qualsiasi codice che produca stringhe univoche coerenti e usare quelle stringhe come chiavi di licenza.

### Mostrare un elenco delle chiavi di licenza dei clienti

Il seguente codice ti permetterà di recuperare e visualizzare un elenco di chiavi di licenza per un cliente specifico.

**Nota:** "$customer-&gt;id" dovrebbe essere sostituito con l'ID cliente effettivo.

```
$licenses = edd_software_licensing()-&gt;licenses_db-&gt;get_licenses( array(
		'number'      =&gt; -1,
		'customer_id' =&gt; $customer-&gt;id,
		'orderby'     =&gt; 'id',
		'order'       =&gt; 'ASC',
	) );
```

### Cosa succede se il dominio del mio negozio va offline?

Ti incoraggiamo a utilizzare l'[SDK di EDD Software Licensing](https://github.com/awesomemotive/edd-sl-sdk) per gestire le licenze nel tuo plugin o tema WordPress. L'SDK non invierà richieste API ripetute al tuo sito se non riceve una risposta valida.

Se intendi cambiare dominio o chiudere un nome di dominio, sarebbe meglio rilasciare un aggiornamento che utilizzi il nuovo dominio o rimuova del tutto le chiamate all'API.

Problemi comuni
-------------

### Personalizza il codice di esempio

Il codice di esempio fornito con Software Licensing potrebbe utilizzare prefissi di funzione come `edd_` e `edd_sl_`. Questi dovrebbero essere modificati per corrispondere al tuo plugin e la ricerca e sostituzione è un ottimo modo per farlo, ma devi fare attenzione alla tua stringa di ricerca.

Ci sono funzioni con prefissi come `edd_action_` che non dovrebbero essere modificate. Assicurati di modificare solo i prefissi dei nomi delle tue funzioni e non i prefissi del core di EDD.

### Risoluzione dei problemi di aggiornamento

Se stai riscontrando errori durante il tentativo di aggiornare plugin e temi dal tuo negozio Software Licensing, ecco alcune cose che puoi controllare, a seconda dell'errore segnalato.

#### Personalizza il tuo updater

Se stai utilizzando la classe legacy dell'updater del plugin fornita nelle versioni precedenti di Software Licensing, probabilmente stai utilizzando la classe `EDD_SL_Plugin_Updater` per gestire le licenze e i controlli di aggiornamento. Esiste il rischio di un "conflitto" se un altro plugin include una versione diversa della classe `EDD_SL_Plugin_Updater` rispetto a quella che stai impacchettando con il tuo plugin. Puoi rinominare questa classe in qualcosa di univoco per il tuo plugin, in modo che eviti conflitti. Ad esempio, se il nome del mio plugin è "My Custom Ads", potrei rinominare `EDD_SL_Plugin_Updater` in `MCA_Plugin_Updater` e modificare tutti i riferimenti ad essa. In alternativa, l'utilizzo dell'SDK EDD Software Licensing semplificherà notevolmente la gestione degli aggiornamenti di plugin/temi.

#### Errori SSL

Ci sono molti errori che possono essere causati da problemi di connettività SSL; i seguenti sono comunemente riscontrati con Software Licensing.

##### SSL: il nome del soggetto del certificato non corrisponde

Questo errore significa che il certificato SSL installato sul tuo sito non corrisponde al tuo nome di dominio principale. Questo può accadere tipicamente in ambienti di hosting condiviso e la soluzione più comune è richiedere un indirizzo IP dedicato al tuo provider di hosting. Se il tuo provider di hosting non supporta indirizzi IP dedicati, dovrai collaborare con il tuo provider di hosting per configurare una catena SSL corretta che corrisponda al tuo dominio principale, invece di un certificato SSL wildcard condiviso.

##### SSL23\_GET\_SERVER\_HELLO:sslv3 alert handshake failure

Questo errore SSL Handshake si verifica quando la versione OpenSSL sul server del sito che richiede l'aggiornamento è obsoleta e non supporta i protocolli SSL richiesti dal negozio che fornisce l'aggiornamento. Ci sono due modi per risolvere questo problema. La soluzione *ideale* è che il sito che richiede l'aggiornamento verifichi che il suo software OpenSSL sia aggiornato per la sua piattaforma. OpenSSL è un software server che facilita la comunicazione tramite il protocollo HTTPS. Se questa non è una soluzione possibile, puoi collaborare con il tuo provider di hosting o amministratore di sistema per configurare il tuo web server per accettare queste versioni SSL obsolete, ma questo non è l'ideale in quanto consente connessioni meno sicure al tuo server.

##### cURL error 35: SSL connect error

Questo errore specifico con Software Licensing che fornisce aggiornamenti viene solitamente riscontrato quando si utilizza l'opzione SSL Flessibile di Cloudflare. Questa opzione causa un problema di catena con alcune versioni di cURL esistenti sul server client che richiede l'aggiornamento. Ci sono un paio di modi per risolvere questo problema dal lato server (senza dover richiedere al client di aggiornare la sua versione cURL). Il primo è l'aggiornamento a un SSL Cloudflare a pagamento. I certificati SSL di livello a pagamento di Cloudflare solitamente non presentano questo problema. L'altra soluzione è acquistare un certificato SSL da terze parti e installarlo direttamente sul tuo server.

##### Download failed. SSL: no alternative certificate subject name matches target host name

```
Si è verificato un errore durante l'aggiornamento di Resurrect: Download failed. SSL: il nome del soggetto del certificato '*.example.com' non corrisponde al nome host di destinazione 'anotherexample.com'
```

Ciò si verifica quando il sito del cliente ha una vecchia versione di OpenSSL o cURL. I due siti quindi non possono comunicare in modo sicuro e l'aggiornamento fallisce.

L'unica soluzione è che il sito con la versione più vecchia del software sul suo server si aggiorni alle ultime versioni.

##### Download failed. SSL peer certificate or SSH remote key was not OK

Se i tuoi clienti riscontrano questo errore durante l'aggiornamento dei loro prodotti, dovrai contattare il tuo web host per informarlo che il tuo certificato SSL è configurato in modo errato:

#### Download failed. Service Unavailable

Vedrai questo errore quando stai tentando di aggiornare un plugin o un tema su un sito che ospita anche questo plugin o tema. A causa del modo in cui Software Licensing si integra con l'API di aggiornamento di WordPress, non è attualmente possibile aggiornare i propri temi o plugin dal sito che li vende. Quando WordPress installa un aggiornamento, mette temporaneamente il tuo sito in modalità di manutenzione e durante quel processo il tuo sito non può installare il proprio aggiornamento. Per aggiornare un plugin o un tema da un sito che lo vende, dovrai installare manualmente l'aggiornamento.

#### Download failed. Unauthorized / Too many redirects

Questo errore si verifica durante l'aggiornamento del tuo plugin o tema a una nuova versione. Durante il caricamento della nuova versione, se aggiungi un nuovo file con la tua nuova versione e poi elimini la riga del file precedente, invece di sostituire la versione corrente, è possibile che si verifichi questo errore. Attualmente siamo a conoscenza di questo bug e stiamo lavorando per risolverlo, tuttavia la soluzione semplice nel frattempo è fare clic sul pulsante 'Aggiorna' una seconda volta, per riscrivere le chiavi dei file, o sostituire sempre il file corrente invece di aggiungere i tuoi nuovi file su una seconda riga di file.

#### Update Package Unavailable

Quando si presenta questo errore, significa tipicamente:

1. C'è un problema con l'attivazione della licenza sul sito del cliente. Ci sono alcune cose da controllare se un cliente segnala questo errore. La prima è che il dominio che sta cercando di aggiornare è stato attivato per la licenza. Puoi determinarlo andando su ***Download → Licenze***. Puoi quindi cercare la chiave di licenza che l'utente sta cercando di aggiornare e fare clic su 'Gestisci siti' per assicurarti che il dominio su cui si trova sia nell'elenco. In caso contrario, puoi aggiungerlo tu stesso dall'amministratore, oppure far visitare al cliente la sua pagina di gestione licenze e attivarla da solo.
2. L'altro risultato è che una licenza è scaduta o disabilitata. In tal caso, il cliente deve rinnovare la propria licenza o un amministratore del sito l'ha disabilitata manualmente.

#### Cartella con nome strano e lungo dopo l'aggiornamento

Ciò accade quando il file .zip viene creato in modo errato. Quando si crea l'archivio .zip finale, è importante comprimere la cartella *e* il suo contenuto anziché solo il contenuto della cartella.

La struttura del file zip dovrebbe assomigliare a questo:

nomefile.zip

\- nome-prodotto/

\-- file qui

\-- altro file qui

In altre parole, i file devono trovarsi in una cartella e non nella parte superiore del file zip. Ripacchetta il tuo file per includere il nome della cartella all'interno e questo lo risolverà.

#### Integrazione CloudFlare

Se stai utilizzando CloudFlare come CDN, livello di cache o provider SSL, ti consigliamo di configurare CloudFlare per ignorare la cache per tutti gli URL che contengono la seguente stringa:

```
/edd-sl
```

Questo è l'endpoint API per il controllo dello stato della licenza e la consegna dei pacchetti di aggiornamento. Se questi URL endpoint vengono memorizzati nella cache, ciò può causare problemi nella corretta consegna degli aggiornamenti ai tuoi clienti.

#### PCLZIP\_ERR\_BAD\_FORMAT

Questo errore non è esclusivo della piattaforma EDD Software Licensing, ma presenta un paio di soluzioni che potresti verificare. La prima è che ci sia spazio su disco sufficiente per scaricare e decomprimere il file (presumi che avrai bisogno del doppio della dimensione del file .zip per elaborare l'aggiornamento). Se il tuo file .zip è di 1 MB, avrai bisogno di poco più di 2 MB disponibili per elaborare correttamente un aggiornamento. Questi numeri non sono esattamente 2x, ma è una buona misura per iniziare.

L'altra cosa da verificare è che il file .zip non sia corrotto. Puoi testarlo trasferendo il file .zip su un altro computer (allegato in un'email o tramite USB) e tentando di decomprimerlo anche lì. Se non si decomprime su un computer diverso, è probabile che ci sia un problema con la creazione del file .zip sul computer originale.

Questo errore può anche essere causato da un plugin o uno script che genera un errore. Quando l'API di Software Licensing tenta di creare il pacchetto zip, l'errore viene aggiunto al file zip, rompendo la sua struttura. Normalmente ciò significa che il tuo sito web ha WP\_DEBUG impostato su TRUE nel file wp-config.php. Sebbene sia un buon modo per verificare eventuali errori, è meglio impostarlo su FALSE su un sito Web live. In alternativa, puoi mantenerlo abilitato ma registrare gli errori in un file sul tuo server, nel file wp-contents/debug.log. Fallo aggiungendo le seguenti righe al file wp-config.php:

```
define( 'WP_DEBUG_LOG', true );&lt;br&gt;&lt;/br&gt;define( 'WP_DEBUG_display', false );&lt;br&gt;&lt;/br&gt;
```</body></html>