워드프레스 우커머스 쇼핑몰에서 옵션 상품을 구성하면 상품 가격이 최저가와 최고가 사이의 범위로 표시됩니다. 상품 페이지에 하나의 가격만 표시하고 싶은 경우 아래의 방법을 이용할 수 있습니다.
아래의 코드가 잘 작동할 것으로 보이지만 이 글이 작성한 지 오래되어 최신 WooCommerce 버전에서 작동하지 않을 수도 있습니다. 다음 글에서 최신 버전에서 작동하는 코드를 확인할 수 있습니다.
우커머스 옵션 상품 페이지에 하나의 가격만 표시하는 방법
우커머스에서 옵션 상품을 구성하는 경우 상품 가격이 다음 그림과 같이 가격 범위(예: 900,000원~1,000,000원)로 표시됩니다.
하지만 하나의 가격만 표시되도록 하고 싶은 경우가 있을 수 있습니다. 이런 경우 다음 코드를 사용하도록 합니다.
// WC 2.0 옵션 가격 포맷 사용. 할인가가 최소값으로 표시됨 add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 ); add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 ); function wc_wc20_variation_price_format( $price, $product ) { // Main Price $prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) ); $price = $prices[0] !== $prices[1] ? sprintf( __( '할인가: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] ); // Sale Price $prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) ); sort( $prices ); $saleprice = $prices[0] !== $prices[1] ? sprintf( __( '할인가: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] ); if ( $price !== $saleprice ) { $price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>'; } return $price; } // Source: stackoverflow
위의 코드를 사용 중인 워드프레스 테마의 함수 파일(functions.php)에 추가하도록 합니다. 그러면 다음 그림과 같이 가격이 표시됩니다. (위의 코드를 테마 함수 파일에 추가하는 방법은 이 글을 참고하세요.)
옵션 가격 범위를 완전히 없애려면 다음 코드를 사용할 수 있습니다.
add_filter( 'woocommerce_variable_sale_price_html', 'bbloomer_remove_variation_price', 10, 2 ); add_filter( 'woocommerce_variable_price_html', 'bbloomer_remove_variation_price', 10, 2 ); function bbloomer_remove_variation_price( $price ) { $price = ''; return $price; } // Source: businessbloomer.com
그러면 모든 곳에서 옵션 상품 범위가 표시되지 않습니다.
최소 가격만 표시하려면 다음 코드를 사용자 함수 파일에 추가해보시기 바랍니다.
function custom_variation_price( $price, $product ) { $price = ''; if ( ! $product->min_variation_price || $product->min_variation_price !== $product->max_variation_price ) { $price .= woocommerce_price( $product->get_price() ); } return $price; } add_filter( 'woocommerce_variable_price_html', 'custom_variation_price', 10, 2); // Source: support.woothemes.com
최소 가격 또는 최대 가격만을 표시하는 방법은 이 글을 참고해보세요. (참고로 링크된 글의 코드를 사용해보니 잘 안 되는 경우도 있는 것 같습니다.)
옵션 상품을 구성하는 방법은 "우커머스 옵션 상품 설정하기" 글을 참고해보시기 바랍니다. 옵션 상품을 정교하게 구성하고자 하는 경우 WooCommerce Extra Product Options 플러그인을 사용할 수 있습니다(참고).
은인이십니다..
복받으실거예요!
안녕하세요 이정규님, 도움이 되셨기를 바랍니다. 즐거운 주말과 휴일 보내세요.