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

Guida su come aggiungere commissioni personalizzate a WooCommerce Checkout tramite codice

89

In alcuni casi potrebbe essere necessario aggiungere una commissione ai totali del carrello. A volte solo se viene soddisfatta una determinata condizione, ad esempio a seconda dei totali del carrello o del luogo di spedizione. Con WooCommerce aggiungere una commissione è abbastanza facile, molto più facile che aggiungere uno sconto in effetti. In questo post impareremo come aggiungere una tariffa personalizzata a WooCommerce.

WooCommerce ha una funzione integrata nell’oggetto carrello per l’aggiunta di commissioni. Tutto ciò che serve è agganciarsi all’azione giusta e, con l’oggetto carrello fornito, chiamare una funzione per aggiungere una commissione. WooCommerce visualizzerà automaticamente le commissioni nel carrello e i totali del checkout. Decidi tu l’etichetta e l’importo della commissione.

Guida su come aggiungere commissioni personalizzate a WooCommerce Checkout tramite codice

È importante notare che l’importo della commissione non può essere negativo, dando così al cliente uno sconto. Questo "hack" funzionava prima nelle versioni precedenti di WooCommerce, ma non più.

Entriamo nel dettaglio del codice! L’unico gancio di cui devi preoccuparti è woocommerce_cart_calculate_fees. All’interno di questo gancio puoi ottenere l’oggetto carrello chiamando WC()->cart. Con quell’oggetto puoi chiamare add_fee()che accetta quattro parametri (probabilmente ti servono solo i due prima); add_fee($fee_name, $amount_in_float, $taxable_boolean, $tax_class_string). I primi due sono autoesplicativi. Il terzo parametro è un booleano che decide se il canone è imponibile o meno. E il quarto è fornire una classe fiscale per la tassa (se il terzo parametro è vero). Ma può essere lasciato vuoto per la classe fiscale standard.

Aggiungendo una quota fissa

L’aggiunta di una tariffa personalizzata avviene nella sua forma più semplice in questo modo:

Il primo passo è impedire l’aggiunta di una commissione se siamo in admin o se Ajax è in corso. Quindi chiamiamo add_fee()l’oggetto carrello. Ciò aggiungerà una commissione denominata "Una piccola commissione" con il valore di 5. Il valore sarà in qualsiasi valuta tu abbia nel tuo negozio. Se la valuta del negozio è impostata su dollari, diventa $ 5. Regola il nome e l’importo in base alle tue esigenze.

Aggiunta di una commissione come percentuale del totale del carrello

Se vuoi che l’importo della commissione sia una percentuale del totale del carrello, devi solo calcolarlo in modo diverso. Ricorda che abbiamo sempre accesso all’oggetto carrello chiamando WC()->carte da quello possiamo recuperare i totali.

Il codice sopra aggiungerà una commissione che ammonta al 5% del totale del carrello, ovvero il totale degli articoli del carrello (get_cart_contents_total()) più il costo di spedizione del carrello (get_shipping_total()). Regola la tariffa e quali totali includere o escludere in ciò di cui hai bisogno.

Quindi questo è piuttosto carino, ma in alcuni casi potremmo voler personalizzare quando aggiungere una commissione. Forse vuoi aggiungere una commissione solo per un determinato metodo di spedizione, metodo di pagamento o in base al totale del carrello. Il processo è lo stesso, aggiungiamo solo la tariffa solo se le nostre condizioni sono soddisfatte.

Aggiunta di una commissione in base ai totali del carrello

Supponi di voler aggiungere una commissione solo se i totali del carrello erano inferiori a un determinato importo. Supponi di voler aggiungere una commissione per la gestione di piccoli importi. Potresti farlo così:

Utilizzare WC()->cart->get_cart_contents_total()per ottenere il numero di float del totale del carrello, esclusa la spedizione. (Se desideri includere anche la spedizione, guarda sopra nell’aggiunta della commissione percentuale su come ottenere i totali di spedizione). Quindi fai i tuoi confronti.

Potresti anche girarlo e decidere di aggiungere una commissione se il carrello superava un certo limite.

Aggiunta di una commissione a seconda del luogo di spedizione

Puoi anche aggiungere una commissione a seconda del luogo di spedizione, ad esempio per paese. Analogamente a ottenere l’oggetto del carrello, possiamo usarlo WC()->customerper l’oggetto del cliente. Tieni presente che quando il cliente non è loggato e non è ancora arrivato alla cassa e ha inserito il proprio indirizzo, i valori dell’oggetto cliente saranno vuoti o le impostazioni predefinite nel tuo negozio.

Avrai bisogno di conoscere il codice del paese: ecco un bel riferimento del codice del paese. Ecco un esempio di aggiunta di una commissione se il cliente è norvegese.

Aggiunta di una commissione in base al metodo di spedizione scelto

Ottenere il metodo di spedizione è un po’ più complicato poiché dipende dalla sessione dell’utente e non è disponibile in un "formato comprensibile". Puoi ottenere il metodo di spedizione attualmente scelto con WC()->session->get('chosen_shipping_methods'). Nota che dice "metodi" e non "metodo", quindi questo restituisce un array. Normalmente l’array contiene un elemento, in cui ogni elemento è costituito da stringhe di ID spedizione, due punti e un ID dopo di esso. Raccomando di utilizzare i metodi di stringa PHP per verificare se la stringa contiene l’ID, ad esempio strpos(), e non se è uguale.

Aggiunta di una commissione a seconda del metodo di pagamento scelto

Se si desidera aggiungere una commissione a seconda del gateway di pagamento scelto, è possibile ottenere l’attuale gateway di pagamento scelto WC()->session->get('chosen_payment_method')e fare un confronto con il suo nome (ad esempio per Paypal ritornerebbe 'paypal'). Tuttavia, potresti notare che quando il cliente passa da un gateway di pagamento all’altro al momento del pagamento, la commissione non viene aggiunta o rimossa dinamicamente. Quindi dovrai aggiungere alcuni Javascript aggiuntivi per assicurarti che WooCommerce aggiorni il carrello in modo che la tua tariffa funzioni in modo coerente.

Per aggiungere il Javascript ci agganciamo woocommerce_review_order_before_paymentche si verifica subito prima della casella di pagamento nel checkout e nello script inline di output. Tutto ciò che fa il codice è attivare l’hook di WooCommerce update_checkoutogni volta che viene modificata la scelta del metodo di pagamento. Ciò garantisce che tutti i metodi e gli hook PHP necessari vengano eseguiti (incluso il fee hook) ogni volta che il carrello viene aggiornato.

Aggiunta di una commissione a seconda di quali prodotti sono nel carrello

L’ho menzionato prima, ma lo menzionerò di nuovo: hai pieno accesso all’oggetto carrello con WC()->cart, quindi puoi cercare nel contenuto del carrello un ID prodotto specifico e aggiungere una commissione se esiste nel carrello.

Utilizzando WC()->cart->get_cart_contents()restituisce una matrice di tutti i prodotti nel carrello. Puoi scorrere questo ciclo con un semplice foreachciclo e controllare ogni prodotto alle condizioni desiderate, oppure se vuoi semplicemente controllare gli ID puoi estrarre tutti gli ID prodotto in una riga in questo modo:

L’esempio seguente mostra come aggiungere una commissione a seconda che il carrello contenga un prodotto con un determinato ID:

Puoi anche utilizzare operazioni simili per estrarre quantità se devi aggiungere una commissione quando un cliente aggiunge una quantità davvero grande di qualcosa.

Insomma

Questo post ti ha mostrato come aggiungere una tariffa personalizzata e, attraverso cinque esempi, come aggiungere una commissione a seconda di determinate condizioni. Queste condizioni erano tutto ciò che ho incontrato e a cui potevo pensare, e dovrebbero almeno fornire suggerimenti su come ottenere informazioni per personalizzare ulteriormente le tue condizioni. Fammi sapere se hanno funzionato per te, o se hai trovato un’altra condizione a cui non avevo pensato!

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