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' );