Pri izdelavi spletnih trgovin z WooCommerce nenehno uporablam enake delčke kode, ki jih dodam skoraj v vsak projekt. Takšni delčki kode oziroma funkcije so zelo uporabni in vse kar moramo narediti je, da jih v našo temo (oz. otroka teme) v functions.php dodano to kodo.

Izbral sem 3, ki jih uporabim najpogosteje:

1. Skrij ostale poštnine, če je na voljo brezplačna

function hide_shipping_when_free_is_available( $rates ) {
	$free = array();
	
	foreach ( $rates as $rate_id => $rate ) {
		if ( 'free_shipping' === $rate->method_id ) {
			$free[ $rate_id ] = $rate;
			break;
		}
	}
	
	return ! empty( $free ) ? $free : $rates;
}

add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 100 );

2. Najnižji znesek naročila

function minimum_order_amount() {
    $min = 15; // znesek minimalnega naročila

    if ( WC()->cart->subtotal < $min ) {
        if ( is_cart() ) {
            wc_print_notice( 
                sprintf( 'Naročilo mora biti najmanj v vrednosti %s. Trenutna vrednost vaše košarice znaša %s.' , wc_price( $min ), wc_price( WC()->cart->subtotal ) ), 'error' );
        } else {
            wc_add_notice( 
                sprintf( 'Naročilo mora biti najmanj v vrednosti %s. Trenutna vrednost vaše košarice znaša %s.' , wc_price( $min ), wc_price( WC()->cart->subtotal ) ), 'error' );
        }
    } 
}

add_action( 'woocommerce_checkout_process', 'minimum_order_amount' );
add_action( 'woocommerce_before_cart', 'minimum_order_amount' );

3. Premik vnosnih polj na blagajni

// Primer za pozicioniranje email in telefon polja na višje mesto
function checkout_fields_sort( $checkout_fields ) {
	$checkout_fields['billing']['billing_email']['priority'] = 22;
	$checkout_fields['billing']['billing_phone']['priority'] = 25;
	
	$checkout_fields['shipping']['shipping_phone']['priority'] = 25;
	
	return $checkout_fields;
}

add_filter( 'woocommerce_checkout_fields', 'checkout_fields_sort' );