Fizetős szállítási módok eltüntetése, ha ingyenes is elérhető

Gyakori probléma WooCommerce-ben, hogy akkor is kilistázza a fizetős szállítást, ha elért egy bizonyos határt, ami felett már ingyenes a szállítás. Ilyen esetben egészen furán mutat, hogy megrendelheti ingyen, illetve fizethet is érte, ami félreértésre ad okot. Továbbá biztosan felesleges hívásokkal terhelik az ügyfélszolgálatot a vásárlók.

Ezzel a pár sorral megoldhatjuk a problémát:

function my_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', 'my_hide_shipping_when_free_is_available', 100 );

Csak másold bele a functions.php-ba:

2 kedvelés

Szia Patai!

Remélem nem veszed / veszitek tolakodásnak…
A leírt problémára IT megoldást sajnos nem tudok adni.
Ellenben ha valakinek problémát okoz a bejövő hívások kezelése, abban tudok segíteni.
Egy CC-t üzemeltetek és elég sok partnernek adunk supportot akár csak túlcsordulás kezeléssel a legkülönfélébb témákban…
Egészségügy, IT, sport, pénzügy, műszaki tanácsadás és természetesen webshop CC és live chat is, sorolhatnám…

Keressetek bátran a témában.
segesdizsolt@gmail.com

Szép napot

Kedves Patai!

Szuperül működik a leírás, köszönjük szépen! :slight_smile:
Ezzel kapcsolatban a segítséged szeretném kérni. Azt vettem észre, hogy ha a szállítási módok közül lehetőség van személyes átvételre is, és az ingyenes szállítási mód feltétel teljesül, akkor a személyes átvételi lehetőség is eltűnik a választható lehetőségek közül, így csak az ingyenes szállítás marad meg. Azt hogy lehet beállítani, hogy az ingyenes szállításnál megmaradjon a személyes átvételi lehetőség is?

Segítséged előre is köszönöm!

Balázs