Come creare codici coupon univoci in WooCommerce in modo programmatico
Pubblicato: 2020-07-06Nel nostro post precedente, abbiamo discusso di come applicare automaticamente il codice coupon al carrello WooCommerce. Lì abbiamo utilizzato un codice coupon generico che viene creato nel menu WooCommerce -> Coupon per tutti gli ordini effettuati dai diversi clienti.
Ma a volte come proprietario di un negozio, vuoi creare un codice coupon univoco per ogni cliente sul tuo sito web per determinate situazioni. Prendiamo due esempi in cui potresti voler creare codici coupon univoci.
Esempio 1:
Come proprietario di un negozio online, la cosa peggiore che puoi affrontare con il ciclo di acquisto di un cliente è l'abbandono del carrello. ca. Dal 68 al 70% dei carrelli su un sito Web viene abbandonato dagli utenti e le ragioni possono essere molteplici. Uno dei motivi più comuni sarebbero i prezzi più alti dei prodotti o le spese aggiuntive come le spese di spedizione sono elevate, il che viene mostrato generalmente al momento del pagamento e non prima.
Quindi qui, per ridurre al minimo l'abbandono del carrello e convertire il maggior numero di utenti in clienti, puoi semplicemente attirarli con alcuni buoni sconto per il loro acquisto. In questo modo puoi convertire i tuoi carrelli abbandonati in carrelli recuperati.
In questi casi, è meglio fornire un codice coupon univoco con un unico limite di utilizzo per ogni carrello abbandonato per evitare utilizzi multipli del codice.
Esempio 2:
Un altro esempio di creazione di codici coupon univoci sarebbe per i clienti che hanno acquistato una volta dal tuo negozio, ma per attirarli ad acquistare di più preferirai inviare loro dei coupon di sconto per il loro prossimo acquisto. Quindi qui se creerai un codice coupon generico per tutti i clienti, possono passare i coupon alle altre persone che conoscono che possono essere utilizzati da loro per i loro nuovi acquisti.
Quindi qui un codice coupon creato per i clienti abituali può essere utilizzato in modo improprio. Per evitare ciò, è meglio creare un codice coupon univoco per ogni cliente con un limite di utilizzo impostato a 1.
Non è possibile creare manualmente codici coupon univoci per ogni cliente dal menu WooCommerce -> Coupon. Quindi l'altra opzione sarebbe l'aggiunta di uno snippet di codice per la creazione di più coupon alla volta per utenti diversi e discuteremo di come ottenerlo nel nostro post.
2 modi per creare codici coupon univoci in WooCommerce
Il primo passaggio per la creazione di un codice coupon univoco sarebbe la creazione di una stringa casuale per ogni coupon. Verrebbe creato utilizzando il codice seguente.
$caratteri = "ABCDEFGHJKMNPQRSTUVWXYZ23456789"; $lunghezza_carattere = "8"; $stringa_casuale = substr(str_shuffle($caratteri), 0, $lunghezza_carattere);
Qui la funzione substr() restituisce la parte della stringa specificata dai parametri di inizio e lunghezza e la funzione str_shuffle() mescola casualmente la stringa passata.
Dopo aver generato la stringa univoca, il passaggio successivo sarebbe la creazione del codice coupon utilizzando uno snippet di codice. Discuteremo 2 modi in cui puoi creare codici coupon in modo programmatico in WooCommerce .
1. Utilizzo della funzione wp_insert_post()
Il primo modo per aggiungere il codice coupon in modo programmatico è utilizzare la funzione wp_insert_post() che consente di aggiungere o aggiornare un post di WordPress. Quindi, nel nostro caso, stiamo aggiungendo un post con tipo di post shop_coupon usando questa funzione. Per aggiungere il meta per i coupon creati viene utilizzata la funzione update_post_meta(). È necessario aggiungere il codice seguente al file functions.php del tema figlio o utilizzare qualsiasi plug-in di frammenti di codice.
$codice_cedola = 'CODICE UNICO'; // Codice creato utilizzando lo snippet di stringa casuale. $importo = '10'; // Quantità $tipo_sconto = 'percentuale'; // Tipo: carrello_fisso, percentuale, prodotto_fisso, prodotto_percentuale $buono = array( 'post_title' => $codice_cedola, 'post_content' => '', 'post_status' => 'pubblica', 'post_author' => 1, 'post_type' => 'shop_coupon' ); $nuovo_id_buono = wp_inserire_post($buono); // Aggiungi meta update_post_meta($new_coupon_id, 'scount_type', $discount_type); update_post_meta($nuovo_id_cedola, 'importo_cedola', $importo); update_post_meta($new_coupon_id, 'individual_use', 'no'); update_post_meta($new_coupon_id, 'product_ids', ''); update_post_meta($new_coupon_id, 'exclude_product_ids', ''); update_post_meta($new_coupon_id, 'usage_limit', ''); update_post_meta($new_coupon_id, 'expiry_date', ''); update_post_meta($new_coupon_id, 'applica_before_tax', 'yes'); update_post_meta($new_coupon_id, 'spedizione_gratuita', 'no');
2. Utilizzo dell'API Rest di WooCommerce
Un altro modo per aggiungere codice coupon a livello di codice è utilizzare l'API WooCommerce Rest fornita dal plug-in stesso. WooCommerce ha una guida completa fornita per l'API Rest che include autenticazione, recupero dati, coupon, ordini, ecc. Ma per riferimento, di seguito è riportato un piccolo snippet che puoi utilizzare per la creazione del codice coupon.

require_once __DIR__ . '/vendor/autoload.php'; usa Automattic\WooCommerce\Client; usa Automattic\WooCommerce\HttpClient\HttpClientException; $woocommerce = nuovo cliente( 'https://esempio.com', 'consumer_key', 'segreto_di_consumatore', [ 'wp_api' => vero, 'versione' => 'wc/v3' ] ); $dati = [ 'codice' => '10off', 'tipo_sconto' => 'percentuale', 'importo' => '10', 'uso_individuale' => vero, 'exclude_sale_items' => vero, 'importo_minimo' => '100.00' ]; $woocommerce->post('coupon', $dati);
Questo è uno snippet di codice di base per creare un codice coupon con uno sconto del 10% su un ordine con un totale di ordini superiore a $ 100. Il codice coupon è "10off" e può essere utilizzato da un solo cliente. Queste sono solo le proprietà di base richieste per la creazione del codice coupon, ma se vuoi aggiungere alcune proprietà aggiuntive, ecco l'elenco.
id – ( int ) Identificatore univoco per l'oggetto .
code – (stringa)(Obbligatorio) Codice coupon.
importo – (stringa) L'importo dello sconto. Dovrebbe essere sempre numerico, anche se si imposta una percentuale.
date_created – (data-ora) La data di creazione del coupon, nel fuso orario del sito.
date_created_gmt – (data-ora) La data di creazione del coupon, come GMT.
date_modified – (data-ora) La data dell'ultima modifica del coupon, nel fuso orario del sito.
date_modified_gmt – (data-ora) La data dell'ultima modifica del coupon, come GMT.
discount_type – (stringa) Determina il tipo di sconto che verrà applicato. Opzioni: percentuale, carrello_fisso e prodotto_fisso. L'impostazione predefinita è fixed_cart .
description – (stringa) Descrizione del coupon.
date_expires – (stringa) La data di scadenza del coupon, nel fuso orario del sito.
date_expires_gmt – (stringa) La data di scadenza del coupon, come GMT.
usage_count – (int) Numero di volte in cui il coupon è stato già utilizzato.
individual_use – (bool) Se true, il coupon può essere utilizzato solo individualmente. Gli altri coupon applicati verranno rimossi dal carrello. L'impostazione predefinita è false .
product_ids – (array) Elenco di ID prodotto su cui è possibile utilizzare il coupon.
exclude_product_ids – (array) Elenco di ID prodotto su cui non è possibile utilizzare il coupon.
usage_limit – (int) Quante volte il coupon può essere utilizzato in totale.
usage_limit_per_user – (int) Quante volte il coupon può essere utilizzato per cliente.
limit_usage_to_x_items – (int) Numero massimo di articoli nel carrello a cui è possibile applicare il coupon.
free_shipping – (bool) Se true e se il metodo di spedizione gratuita richiede un coupon, questo coupon consentirà la spedizione gratuita. L'impostazione predefinita è false .
product_categories – (array) Elenco di ID categoria a cui si applica il coupon.
esclusi_prodotti_categorie – (array) Elenco di ID di categoria a cui il coupon non si applica.
exclude_sale_items – (bool) Se true, questo coupon non verrà applicato agli articoli che hanno prezzi di vendita. L'impostazione predefinita è false .
importo_minimo – (stringa) Importo minimo dell'ordine che deve essere nel carrello prima dell'applicazione del coupon.
importo_massimo – (stringa) Importo massimo dell'ordine consentito quando si utilizza il coupon.
email_restrictions – (array) Elenco di indirizzi email che possono utilizzare questo coupon.
used_by – (array) Elenco di ID utente (o indirizzi email ospiti) che hanno utilizzato il coupon.
meta_data – (array) Metadati.
Conclusione
I frammenti di codice sopra menzionati sono solo un esempio di come creare il codice coupon. Per utilizzarli sul tuo sito web è necessario collegarli a eventuali ganci o filtri richiesti. Ad esempio, può essere utilizzato su qualsiasi gancio del carrello mentre stai monitorando l'abbandono del carrello o può essere utilizzato nel processo Cron che verrà eseguito ogni settimana per inviare aggiornamenti via e-mail ai tuoi clienti.
Approfitta dei codici coupon univoci e rendi felici i clienti che ritornano per il tuo sito web.