우커머스에서 무료배송 설정 시 방문 수령 옵션 문제

이 블로그의 이전 글에서 워드프레스 우커머스 쇼핑몰에서 무료배송을 이용할 수 있는 경우에 다른 배송비를 숨기는 방법을 설명한 적이 있습니다.

링크된 글에서 제시된 방법을 사용하면 무료배송을 이용할 수 있으면 무료배송을 제외한 모든 배송비가 표시되지 않습니다. 하지만 '방문 수령'을 선택한 경우 무료 '방문 수령' 옵션도 표시되지 않는 문제가 발생합니다.

이 경우 다음과 같은 코드를 사용하면 무료배송을 이용할 수 있는 경우에도 '방문 수령' 옵션이 함께 표시될 것입니다.

// Hide shipping rates when free shipping is available except Local Pickup
// 우커머스에서 무료배송을 이용할 수 있는 경우 방문 수령을 제외한 모든 배송비 숨기기
function woocommerce_hide_shipping_when_free_is_available($rates) {
	$free = array();
	foreach ($rates as $rate_id => $rate) {
		if ('free_shipping' === $rate->method_id) {
			foreach($rates as $rate_id => $rate) {
            if ('flat_rate' === $rate->method_id )
                unset($rates[ $rate_id ]);
        }
			break;
		}
	}
	return !empty( $free ) ? $free : $rates;
}
add_filter('woocommerce_package_rates', 'woocommerce_hide_shipping_when_free_is_available', 100);

위의 코드가 최신 우커머스 버전에서도 잘 작동하는지 여부는 확인하지 않았습니다. 당분간은 잘 작동할 것으로 생각되지만, 최신 WooCommerce 버전에서 제대로 작동하지 않는 경우, 제대로 작동하는 코드를 알려주시면 글을 업데이트하도록 하겠습니다.

정교하게 배송비를 설정하려는 경우 pluginhive라는 업체에서 개발한 WooCommerce Table Rate Shipping Pro Plugin을 사용해볼 수 있습니다. 현재 6000개 이상의 사이트에 설치되어 사용되고 있고 고객들의 평가도 매우 높은 편입니다.

배송 클래스를 활용하면 상품 그룹별로 배송료를 지정할 수 있습니다. 우커머스 배송 클래스 설정에 대한 자세한 내용은 "우커머스 배송 클래스 사용하기 (상품 그룹별 배송료 지정)"를 참고해보시기 바랍니다.

참고:

일부 글에 제휴 링크가 포함될 수 있으며 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

2개 댓글

    1. 안녕하세요, kyounakim님.

      앞서 댓글에서 알려드렸듯이 저는 테스트를 해보니 오류는 발생하지 않지만, 최신 우커머스 버전에서는 더 이상 이 코드를 사용할 필요가 없는 것 같습니다.

      최근 Woocommerce 버전에서 무료 배송비가 가능한 경우에 고정 배송비가 표시되는 버그가 수정된 것으로 보입니다. 더 이상 이 코드를 사용하지 말고 우커머스 기본 기능을 그대로 사용하시기 바랍니다.

댓글 남기기

* 이메일 정보는 공개되지 않습니다.