반응형
Woocommerce 제품의 할인된 가격과 백분율을 표시합니다.
아래 이미지에는 할인된 가격과 백분율이 나와 있습니다.
이 기능이 있는 커스텀코드 검색을 찾을 수 없습니다.
아래 코드를 사용하여 할인된 가격을 표시하고 있지만, 가격이 포맷되어 있지 않습니다(통화 기호와 소수점이 누락되어 있습니다.
add_filter( 'woocommerce_get_price_html', 'modify_woocommerce_get_price_html', 10, 2 );
function modify_woocommerce_get_price_html( $price, $product ) {
if( $product->is_on_sale() && ! is_admin() )
return $price . sprintf( __('<p class="saved-sale">Save: %s</p>', 'woocommerce' ), $product->regular_price - $product->sale_price );
else
return $price;
}
올바른 형식의 할인 가격을 표시하려면 어떻게 해야 합니까?할인율도 어떻게 표시하나요?
어떤 도움이라도 감사히 받겠습니다.
제품 오브젝트 속성으로 woocommerce 버전3에 직접 액세스 할 수 없기 때문에 코드가 조금 오래되었습니다.대신 사용 가능한 것을 사용해야 합니다.WC_Product
메서드.
사용할 가격을 포맷하려면wc_price()
전용 포맷 기능.
다음의 3가지 가능성이 있습니다.
1) 절약 가격:
add_filter( 'woocommerce_get_price_html', 'change_displayed_sale_price_html', 10, 2 );
function change_displayed_sale_price_html( $price, $product ) {
// Only on sale products on frontend and excluding min/max price on variable products
if( $product->is_on_sale() && ! is_admin() && ! $product->is_type('variable')){
// Get product prices
$regular_price = (float) $product->get_regular_price(); // Regular price
$sale_price = (float) $product->get_price(); // Active price (the "Sale price" when on-sale)
// "Saving price" calculation and formatting
$saving_price = wc_price( $regular_price - $sale_price );
// Append to the formated html price
$price .= sprintf( __('<p class="saved-sale">Save: %s</p>', 'woocommerce' ), $saving_price );
}
return $price;
}
2) 절약율:
add_filter( 'woocommerce_get_price_html', 'change_displayed_sale_price_html', 10, 2 );
function change_displayed_sale_price_html( $price, $product ) {
// Only on sale products on frontend and excluding min/max price on variable products
if( $product->is_on_sale() && ! is_admin() && ! $product->is_type('variable')){
// Get product prices
$regular_price = (float) $product->get_regular_price(); // Regular price
$sale_price = (float) $product->get_price(); // Active price (the "Sale price" when on-sale)
// "Saving Percentage" calculation and formatting
$precision = 1; // Max number of decimals
$saving_percentage = round( 100 - ( $sale_price / $regular_price * 100 ), 1 ) . '%';
// Append to the formated html price
$price .= sprintf( __('<p class="saved-sale">Save: %s</p>', 'woocommerce' ), $saving_percentage );
}
return $price;
}
3 둘 다 (할인된 가격과 비율) :
add_filter( 'woocommerce_get_price_html', 'change_displayed_sale_price_html', 10, 2 );
function change_displayed_sale_price_html( $price, $product ) {
// Only on sale products on frontend and excluding min/max price on variable products
if( $product->is_on_sale() && ! is_admin() && ! $product->is_type('variable')){
// Get product prices
$regular_price = (float) $product->get_regular_price(); // Regular price
$sale_price = (float) $product->get_price(); // Active price (the "Sale price" when on-sale)
// "Saving price" calculation and formatting
$saving_price = wc_price( $regular_price - $sale_price );
// "Saving Percentage" calculation and formatting
$precision = 1; // Max number of decimals
$saving_percentage = round( 100 - ( $sale_price / $regular_price * 100 ), 1 ) . '%';
// Append to the formated html price
$price .= sprintf( __('<p class="saved-sale">Save: %s <em>(%s)</em></p>', 'woocommerce' ), $saving_price, $saving_percentage );
}
return $price;
}
코드가 기능합니다.php 파일에는 액티브한 아이 테마(또는 활성 테마).
테스트 및 동작.
언급URL : https://stackoverflow.com/questions/48480480/display-the-discounted-price-and-percentage-on-woocommerce-products
반응형
'sourcecode' 카테고리의 다른 글
형식 스크립트 속성이 유니언 유형에 없습니다. (0) | 2023.04.04 |
---|---|
2개의 JSON 개체를 연결합니다. (0) | 2023.04.04 |
WooCommerce - 제품 페이지 외부에 카트 항목 이름 나열 (0) | 2023.04.04 |
대응 - 로그인 및 인증을 처리하는 가장 좋은 방법은 무엇입니까? (0) | 2023.04.04 |
php 클래스에서 html을 사용하는 것이 나쁜가요? (0) | 2023.04.04 |