본문 바로가기
개발일기/워드프레스

[워드프레스/woocommerce] 우커머스 특정 금액이상 '무료 배송'을 지정한 경우, 무료 배송만 보이게 하기

by 프로그래머콩 2019. 2. 1.








예를들어 우커머스 배송 설정에서 30,000원 이상 무료배송 지정한뒤 
결제 테스트를 진행해보면,

30,000원 이하의 물품을 담고 결제를 요청했을 경우에는 
배송비 3000원(지정금액)이 지불 정보에 나타납니다.

30,000 이하, 물품을 담았을 때 지불 정보

30,000이상 물품을 담았을 경우, 당연히 무료 배송이 적용 되어야하는데 
배송료를 지불할것인지 말것인지를 선택사항으로 만들어 혼란을 주네요...
(우커머스는 글로벌 플러그인이고, 아마 외국은 너무 넓어서 거리단위로 배송료를 받는게 당연하다보니 이런 현상이 발생한듯... 예상입니다 ㅜㅜ)

30,000 이상, 물품을 담았을 때 지불 정보

이 문제점을 해결하기위한 프로그래밍 소스가 있습니다!

--> 아래의 소스코드를 적당한 곳 추가하면 이 '무료 배송 선택지' 문제가 해결 됩니다!
 (왠만하면 지금 사용하고있는 테마의 "/테마-child(자식 테마)/function.php"에 소스를 추가하는 것을 권장드립니다.)

/** * Hide shipping rates when free shipping is available. * Updated to support WooCommerce 2.6 Shipping Zones. * * @param array $rates Array of rates found for the package. * @return array */ 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 );
해결 된 모습

* 우커머스(woocommerce) 2.6버전 기준 소스입니다.