[우커머스 쇼핑몰] 무료 배송이 가능한 경우 다른 배송 방법 숨기기

워드프레스 정보를 제공하는 블로그 Avada 2019. 4. 25. 16:02 • 댓글:

워드프레스에서 우커머스 쇼핑몰을 운영하는 경우 배송 설정에서 정교하게 배송비를 설정할 수 있습니다. 배송 방법으로 고정 요금, 무료배송, 방문 수령 등 세 가지를 지정할 수 있습니다.

여러 개의 배송 방법을 추가할 수 있으며, 고정 요금(정액 배송료) 배송 방법을 설정하여 일괄적으로 기본 배송료(예: 2,500원)를 책정하고, 특정 조건(예: 주문 금액이 5만 원 이상)을 만족할 경우 배송비를 무료가 되도록 설정할 수 있습니다.

하지만 무료 배송과 고정요금 배송 방법을 동시에 활성화할 경우 장바구니 혹은 결제 화면에서 두 배송 방법이 모두 표시됩니다. 무료 배송을 기본 배송으로 설정할 수 있으므로 별 문제는 없지만, 무료 배송을 이용할 수 있는 경우에 다른 배송 방법은 숨기고 싶은 경우에는 다음 코드를 사용 중인 테마의 함수 파일에 추가하면 됩니다.

(물론 차일드 테마를 사용하시기 바랍니다. 그렇지 않으면 추후에 사용 중인 테마가 업데이트되면 수정 사항/추가 사항이 모두 사라지게 됩니다.)

/**
* 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 woocommerce_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', 'woocommerce_hide_shipping_when_free_is_available', 100 );

하지만 '방문 수령' 배송 방법을 함께 지정한 경우 위의 코드를 사용하면 무료 배송이 가능한 상태에서는 '방문 수령' 배송 방법이 표시되지 않는 문제가 표시됩니다.

이 경우에도 '방문 수령을 원합니다'라는 메모를 남기도록 지시 사항을 표시할 수 있지만 사용자 경험에는 좋지 않은 것 같습니다.

방문 수령 방법을 함께 사용할 경우에는 위의 코드를 사용하지 말거나(그런 경우 '고정 요금' 배송 방법이 지정된 경우 함께 표시됨), 위의 코드를 수정하여 '방문 수령' 방법이 항상 표시되도록 해주어야 합니다.

워드프레스에서 쇼핑몰을 운영하려는 경우 아바다, 엔폴드 같은 다목적 테마를 사용하거나 Flatsome 같은 우커머스 전용 테마를 사용할 수 있습니다.

참고: