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
