✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Guida: modifica i prezzi in WooCommerce in base al codice

76

Questo post è per te che vuoi aggiungere un codice che regola i prezzi nel tuo negozio web WooCommerce di WordPress. Puoi aumentare i prezzi o scontarli. E come e da dove arrivano gli aggiustamenti, dipende interamente dal tuo caso. Il tuo negozio online potrebbe operare con sconti percentuali impostati su ciascun utente registrato, un’impostazione globale personalizzata nelle impostazioni di WooCommerce, una somma fissa codificata o qualcosa impostato su ogni prodotto o categoria di prodotto.

Ho cercato di rendere il codice il più generale possibile in modo da poterlo adattare al tuo caso. Nel mio caso gli adeguamenti dei prezzi derivano da uno sconto percentuale aggiunto come meta utente.

Il codice è stato aggiornato per funzionare con WooCommerce 3.x e versioni successive. Non posso garantire che funzionerà per le versioni precedenti.

Passaggio 1: crea un posto per il tuo codice

Il primo passo è facile; hai bisogno di un posto per aggiungere il tuo codice. Questo dipende interamente da te. Puoi aggiungerlo direttamente nel tuo tema functions.phpo da qualche parte nei file del tuo plugin. Mi piace lavorare con classi che manterranno tutto bene insieme in un unico posto. Per semplicità inserirò la classe in una sottodirectory /src/nel mio tema, la includerò e la istanziarò in functions.php.

require_once(get_stylesheet_directory().'/src/ChangePrices.php'); new ChangePrices();

Modifica questo passaggio per adattarlo al tuo caso.

Passaggio 2: decidi come dovrebbero funzionare gli adeguamenti dei prezzi

Questo passaggio potrebbe già essere chiaro per te: è qui che devi sapere come e dove ottenere l’adeguamento del prezzo. L’obiettivo finale dovrebbe essere un numero con cui sommare, sottrarre, moltiplicare o dividere i prezzi.

Nel mio caso ho un meta utente su ogni utente che contiene uno sconto percentuale; un numero compreso tra 0 e 99. L’amministratore del sito può impostare uno sconto su ciascun utente. Non mostrerò il codice per aggiungere il meta campo utente, poiché potrebbe non essere adatto a te ed è facilmente eseguibile con ad esempio Advanced Custom Fields.

Nella mia classe conservo una variabile di classe che nel costruttore verrà impostata su un moltiplicatore. A seconda che un utente abbia effettuato l’accesso, preleverò lo sconto salvato dall’utente e creerò un moltiplicatore da esso. Di default il moltiplicatore dovrebbe essere 1. Prezzo 1 = stesso prezzo di prima. Ma per uno sconto ad esempio del 10% il moltiplicatore sarebbe 0,9. Prezzo 0,9 = prezzo scontato del 10%.

Ora che ho un moltiplicatore pronto per l’uso, è tempo di esaminare l’effettiva regolazione dei prezzi in WooCommerce.

Passaggio 3: filtri dei prezzi in WooCommerce

In WooCommerce c’è un filtro per i tipi di prodotto semplici, raggruppati ed esterni e un altro per i tipi di prodotto variabili. Ti consiglio di aggiungere entrambi i filtri per coprire tutti i tipi di prodotto. Oltre a questo, WooCommerce opera con tre filtri di prezzo aggiuntivi:

  • Prezzi normali (woocommerce_product_get_regular_pricee woocommerce_product_variation_get_regular_price)
  • Prezzi di vendita (woocommerce_product_get_sale_pricee woocommerce_product_variation_get_sale_price)
  • Il prezzo attivo corrente (woocommerce_product_get_pricee woocommerce_product_variation_get_price). Il prezzo attivo corrente verrà recuperato dal prezzo normale o dal prezzo scontato.

Ora puoi semplicemente filtrare il prezzo attivo corrente e chiamarlo un giorno, ma dipende da come vuoi gestire la visualizzazione dei prezzi nel tuo negozio online. Ricorda che i prodotti in saldo per impostazione predefinita mostrano il vecchio prezzo (prezzo normale) barrato e il prezzo scontato (prezzo attivo) accanto ad esso. Se filtri solo x_get_pricee un prodotto è in vendita, il vecchio prezzo verrà mostrato non scontato.

Per questo motivo, scelgo di filtrare sia il prezzo corrente attivo (x_get_price) che il prezzo normale (x_get_regular_price), perché non voglio confondere gli utenti del mio negozio online.

Scrivere il filtro del prezzo

Tutti e quattro i filtri faranno riferimento alla stessa funzione. All’interno della funzione moltiplichiamo semplicemente il prezzo fornito per la variabile di classe. Ricorda che se non viene impostato alcuno sconto, il moltiplicatore è 1 che non comporta alcuna variazione di prezzo.

Si noti che tutti i filtri forniscono l’oggetto prodotto come secondo parametro. Se desideri modificare i prezzi in base ai prodotti, puoi modificare il codice per farlo.

Se controlli il tuo negozio online mentre sei connesso come utente con uno sconto, ora dovresti vedere i prezzi scontati! Tuttavia, non abbiamo ancora finito. WooCommerce ha apportato alcune modifiche alla 2.4.7 (leggi di più qui) che influiscono sui prezzi dinamici per i prodotti variabili.

Gestione dei prezzi variabili dei prodotti

Per far funzionare i prezzi dinamici su prodotti variabili, dovresti aggiungere i filtri menzionati nel post del blog collegato sopra; woocommerce_variation_prices_price(e il filtro del prezzo normale corrispondente woocommerce_variation_prices_regular_price) e il filtro woocommerce_get_variation_prices_hash. Il filtro hash gestisce la cache interna di WooCommerce e dobbiamo dire a WooCommerce di cancellarla correttamente quando modifichiamo i prezzi in base al codice.

I primi due filtri di prezzo seguono la stessa procedura di adjustPrice(), tuttavia assegno loro una funzione diversa perché i parametri sono diversi. Per quanto riguarda la funzione di filtro hash, dobbiamo aggiungere all’array hash per identificare quando la cache deve essere cancellata. L’aggiunta dell’ID utente è una buona idea poiché il moltiplicatore è unico per ogni utente.

Finalmente dovrebbe essere così!

Nota che hai accesso all’oggetto prodotto completo in tutti i filtri (anche l’oggetto variazione negli ultimi due). Ciò è utile nei casi in cui desideri modificare i prezzi in base alle informazioni sul prodotto; come escludere determinati prodotti dallo sconto o applicare uno sconto in base alle categorie di un prodotto. Dovrebbe essere abbastanza semplice per te adattare il codice a ciò di cui hai bisogno per il tuo caso.

Il codice finale completo

Come al solito spero che tu abbia imparato qualcosa seguendo questo post passo dopo passo, ma fornirò la classe completa come riferimento:

Fonte di registrazione: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More