Può succedere che in Woocommerce sia necessario impostare un ordine minimo di acquisto, per esempio se sotto una determinata cifra al venditore non conviene spedire, o comunque per altri motivi.
Per fare ciò possiamo ricorrere ad una piccola funzione, in pratica se il carrello ha un totale inferiore a quello impostato (in questo caso 60€ compreso le spese di spedizione ed eventuali sconti) mostrerà un avviso ed eliminerà il pulsante “Concludi Ordine” così da impedire il processo di checkout, diversamente se l’ordine superà i 60€ l’acquirente può procedere con le normali procedure di acquisto.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
function woo_disabled_btn_checkout() { if( !is_admin() ){ wp_enqueue_style('woo__min_error', WP_PLUGIN_URL . '/woo-minimun-order/css/woo-min-error.css'); } } add_action('wp_enqueue_scripts','woo_disabled_btn_checkout'); //Imposto l'ordine minimo di acquisto add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' ); add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' ); function wc_minimum_order_amount() { // Valore da impostare per ordine minimo $minimum = 60; if ( WC()->cart->total < $minimum ) { function disable_checkout_button_no_shipping() { remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 ); } add_action( 'woocommerce_proceed_to_checkout', 'disable_checkout_button_no_shipping', 1 ); if( is_cart() ) { wc_print_notice( sprintf( '<p class="woo-min-error">' . 'Ordine minimo di %s, il tuo carrello contiene articoli per %s.' . '</p>', woocommerce_price( $minimum ), woocommerce_price( WC()->cart->total ) ), 'error' ); } else { wc_add_notice( sprintf( 'Ordine minimo di %s, il tuo carrello contiene articoli per %s.' , woocommerce_price( $minimum ), woocommerce_price( WC()->cart->total ) ), 'error' ); } } } |
Come impostare l’ordine massimo di acquisto su Woocommerce
Allo stesso modo possiamo scrivere una piccola funzione per impostare un ordine massimo di acquisto, nel mio caso ho impostato 1000€, ecco il codice.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
add_action( 'woocommerce_checkout_process', 'wc_maximum_order_amount' ); add_action( 'woocommerce_before_cart' , 'wc_maximum_order_amount' ); function wc_maximum_order_amount() { // Valore da impostare per ordine massimo $maximum = 900; if ( WC()->cart->total > $maximum ) { if( is_cart() ) { wc_print_notice( sprintf( 'Ordine massimo di %s, il tuo carrello contiene articoli per un totale di %s.' , woocommerce_price( $maximum ), woocommerce_price( WC()->cart->total ) ), 'error' ); } else { wc_add_notice( sprintf( 'Ordine massimo di %s, il tuo carrello contiene articoli per un totale di %s.' , woocommerce_price( $maximum ), woocommerce_price( WC()->cart->total ) ), 'error' ); } } } |
Entrambi i codice possono essere utilizzati conteporanemanente senza problemi, sono da incollare nel file functions.php del vostro tema, oppure potete creare un plugin per WordPress
Programmatore WordPress Esperto WooCommerce
Sono l’autore di questo blog con tanti trucchi e guide su WordPress e WooCommerce.