[워드프레스] 우커머스 옵션 상품 페이지에 하나의 가격만 표시하는 방법
워드프레스 우커머스 쇼핑몰에서 옵션 상품을 구성하면 상품 가격이 최저가와 최고가 사이의 범위로 표시됩니다. 상품 페이지에 하나의 가격만 표시하고 싶은 경우 아래의 방법을 이용할 수 있습니다.
아래의 코드가 잘 작동할 것으로 보이지만 이 글이 작성한 지 오래되어 최신 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 플러그인을 사용할 수 있습니다(참고).
은인이십니다..
복받으실거예요!
안녕하세요 이정규님, 도움이 되셨기를 바랍니다. 즐거운 주말과 휴일 보내세요.