<html lang="it-it" dir="ltr"><head></head><body># EDD_Customer

##### Indice dei contenuti

- [Ottenere un cliente](#getting)
- [Ottenere i dati di pagamento del cliente](#payments)
- [Creare un cliente](#creating)
- [Aggiornare un cliente](#updating)
- [Aggiornare campi specifici](#fields)
- [Meta del cliente](#meta)
- [Indirizzi email del cliente](#meta)
 


 La classe EDD\_Customer viene utilizzata per ottenere i dati del cliente, creare nuove voci cliente e modificare le voci cliente esistenti. I valori che possono essere gestiti con questa classe sono:

- user\_id
- name
- email
- payment\_ids
- purchase\_value
- purchase\_count
- notes

### Ottenere un cliente

 Le ragioni per ottenere i dati del cliente possono variare dal semplice rendering delle informazioni all'utilizzo per statistiche o logging o qualsiasi altra cosa. Ecco i passaggi per ottenere e visualizzare le informazioni sul cliente.

#### Passaggio 1, Ottenere i dati

 Per creare un oggetto Customer è necessario passare un qualche tipo di identificatore durante l'istanziazione della classe. Questo può essere un indirizzo email, un ID cliente o un ID utente WordPress.

 Esempi:

 Email 
 `$customer = new EDD_Customer( 'jose@canseco.com' );`

 ID cliente 
 `$customer = new EDD_Customer( 33 );`

 ID utente WordPress 
 `$customer = new EDD_Customer( 96, true );`

 Nota: per l'ID utente WordPress è necessario passare un valore true come secondo parametro, in modo che sappia che deve cercare in WordPress anziché in EDD.

#### Passaggio 2, Utilizzare i dati

 Ora è possibile accedere alle proprietà dell'oggetto cliente in questo modo:

- $customer-&gt;name;
- $customer-&gt;email;
- $customer-&gt;date\_created;
- $customer-&gt;purchase\_count;
- $customer-&gt;purchase\_value;
- $customer-&gt;id; // ID cliente
- $customer-&gt;user\_id; // ID utente WordPress
- $customer-&gt;payment\_ids;

 È possibile visualizzarli, analizzarli; qualsiasi cosa si desideri.

### Ottenere i dati di pagamento del cliente

 La classe EDD\_Customer ha un metodo chiamato `get_payments()`. Questo metodo restituirà un array di oggetti EDD\_Payment. Esempio:

```
$customer = new EDD_Customer( 33 );

$payments = $customer-&gt;get_payments();
```

 Ora $payments conterrà un array di oggetti EDD\_Payment. Per ulteriori informazioni su come appare quell'array, [si prega di consultare la documentazione sulla classe EDD\_Payment](https://easydigitaldownloads.com/docs/edd_payment/).

### Creare un cliente

 Prima istanzia un oggetto:

 `$customer = new EDD_Customer;`

##### Esempio 1:



 Quindi imposta alcuni argomenti: 

```
$args = array(
	'user_id'        =&gt; 12
	'name'           =&gt; 'Jose Canseco',
	'email'          =&gt; 'jose@canseco.com',
	'payment_ids'    =&gt; '',
	'purchase_value' =&gt; '',
	'purchase_count' =&gt; '',
	'notes'          =&gt; 'Qualsiasi nota tu voglia',
);
```

 **Nota**: l'user\_id sopra è un numero ID utente WordPress. È richiesto solo se si desidera associare il proprio cliente a un utente WordPress. In caso contrario, rimuoverlo dall'array.



 E quindi eseguire il metodo di creazione: 

 `$customer-&gt;create( $args );`

 E ora a questo punto il tuo cliente dovrebbe esistere. 


 Esempio 2: 

 L'esempio precedente mostra come creare un cliente con tutte le opzioni possibili. L'unica opzione *richiesta* è l'email, quindi anche questo funzionerebbe: 

```
$args = array(
	'email' =&gt; 'jose@canseco.com',
);
```

 `$customer-&gt;create( $args );`

 Questo crea un cliente con solo l'indirizzo email fornito, il che funziona benissimo.

### Aggiornare un cliente

##### Passaggio 1, Ottenere i dati.

 Utilizzare il codice di esempio da "Ottenere un cliente" sopra.

##### Passaggio 2, Aggiornare i dati

 Ci sono due modi per aggiornare i dati del cliente con EDD\_Customer. Uno è utilizzare il metodo update() e aggiornare più campi contemporaneamente.

 **Esempio:**

```
$customer = new EDD_Customer( 33 );

$update_args = array(
	'email'          =&gt; 'jose@canseco.com',
	'name'          =&gt; 'Jose Canseco',
);
```

 Ora il cliente 33 ha un indirizzo email aggiornato e una nuova nota.

 **Nota:** l'aggiornamento del campo note con questo metodo cancellerà tutte le note esistenti. Utilizzare il metodo add\_note() menzionato di seguito per aggiungere una nuova nota.

### Aggiornare campi specifici

 Invece di utilizzare il metodo generale update() elencato sopra, in genere si dovrebbe provare a utilizzare uno dei metodi di supporto forniti di seguito. Questi forniscono funzionalità specifiche e limitate che possono aiutare a ridurre gli errori.

 Per ciascuno dei seguenti metodi, si dovrebbe prima istanziare la classe cliente come sopra:

 `$customer = new EDD_Customer( 33 );`

#### attach\_payment() e remove\_payment()

 Questi vengono utilizzati per allegare e rimuovere pagamenti da e verso un cliente. Entrambi accettano un payment\_id come prima variabile e un'opzione booleana come seconda. La seconda aggiornerà le statistiche se impostata su true.

##### Esempi:

 `	$customer-&gt;attach_payment( 33, true );`

 `$customer-&gt;remove_payment( 33, true );	`

#### increase\_purchase\_count() e decrease\_purchase\_count()

 Questi vengono utilizzati per aumentare e diminuire il **numero** di acquisti effettuati da un singolo cliente. Entrambi accettano semplicemente un intero, modificando il valore memorizzato di quella quantità.

##### Esempi:

 `$customer-&gt;increase_purchase_count( 1 );`

 `$customer-&gt;decrease_purchase_count( 1 );`

#### increase\_value() e decrease\_value()

 Questi vengono utilizzati per aumentare e diminuire l'importo speso da un singolo cliente. Entrambi accettano semplicemente un numero decimale, fino a due cifre, modificando il valore memorizzato di quella quantità.

##### Esempi:

 `$customer-&gt;increase_value( 14.98 );`

 `$customer-&gt;decrease_value( 3.00 );`

#### get\_notes()

 Questo metodo restituisce le note lasciate sull'account del cliente. Accetta 2 variabili, la prima per quante note si desidera e la seconda è un offset.

##### Esempi:

 `$customer-&gt;get_notes( 5 );` // ottiene le prime 5 note 

 `$customer-&gt;decrease_value( 5, 6 );` // ottiene 5 note a partire dalla posizione 6, quindi le note da 6 a 10 

#### get\_notes\_count()

 Questo metodo restituisce il numero di note sull'account del cliente. Non accetta input.

##### Esempio:

 `$customer-&gt;get_notes_count();`

#### add\_note()

 Questo metodo accetta una stringa come input e la memorizza come nuova nota sull'account del cliente. Preserva i ritorni a capo, ma non consente HTML.

##### Esempio:

 `$customer-&gt;add_note( 'Questa è una nota. Non è fantastico?' );`

### Meta del cliente

 Metadati personalizzati del cliente possono essere gestiti utilizzando le funzioni meta integrate nella classe EDD\_Customer.

#### get\_meta( $meta\_key = '', $single = true )

 get\_meta accetta semplicemente una chiave meta e restituisce il valore. Se single è impostato su false, restituirà sempre un array.

#### add\_meta( $meta\_key = '', $meta\_value, $unique = false )

 add\_meta accetta una chiave meta e il suo valore, ma accetta anche un booleano per unique. Se il terzo input è true, add\_meta avrà successo solo se la chiave meta non esiste in precedenza. Restituisce false in caso di fallimento. True in caso di successo.

#### update\_meta( $meta\_key = '', $meta\_value, $prev\_value = '' )

 update\_meta accetta una chiave meta e il nuovo valore che si desidera impostare per essa. Se si hanno più chiavi con lo stesso nome, verranno tutte aggiornate con il nuovo valore. Il terzo input accetta un valore da confrontare con il valore precedente. Quindi, se si hanno già diverse chiavi meta di `foo` ma solo una con un valore di `bar`, si potrebbe rendere `bar` il terzo input e l'aggiornamento avverrà solo su quella. Restituisce false in caso di fallimento. True in caso di successo.

#### delete\_meta( $meta\_key = '', $meta\_value = '' )

 delete\_meta eliminerà tutti i metadati con una chiave corrispondente. Se viene passato anche un valore, entrambi devono corrispondere. Restituisce false in caso di fallimento. True in caso di successo.

### Indirizzi email del cliente

 Ogni cliente può avere più indirizzi email, consentendo loro di acquistare da più indirizzi, o acquistare da uno e ricevere supporto da un altro. Ogni cliente avrà anche un indirizzo email primario, che viene utilizzato come predefinito per il cliente. Nella scheda Gestione clienti l'interfaccia utente appare così: ![](https://easydigitaldownloads.com/wp-content/uploads/2022/07/6184cb9cbc571.png)

 La classe EDD\_Customer consente allo sviluppatore di rimuovere indirizzi da un cliente e aggiungere indirizzi a un cliente, nonché di rendere un indirizzo specifico primario.

#### add\_email( $email = '', $primary = false )

 Questa funzione accetta un indirizzo email da aggiungere al cliente. Se il secondo input è true, il nuovo indirizzo email verrà impostato come indirizzo primario per il cliente. Restituisce false in caso di fallimento. True in caso di successo.

#### set\_primary\_email( $new\_primary\_email = '' )

 Questa funzione accetta un indirizzo email e se l'indirizzo email è già associato a questo cliente, lo renderà l'indirizzo email primario per quel cliente. Restituisce false in caso di fallimento. True in caso di successo.

#### remove\_email( $email = '' )

 Questa funzione accetta un indirizzo email e se l'indirizzo email è già associato a questo cliente, lo rimuove da quel cliente. Restituisce false in caso di fallimento. True in caso di successo.</body></html>