Показывать сумму экономии для распродажных продуктов на страницах отдельных продуктов WooCommerce.Php

Кемеровские программисты php общаются здесь
Anonymous
Показывать сумму экономии для распродажных продуктов на страницах отдельных продуктов WooCommerce.

Сообщение Anonymous »

Я использую следующий код для отображения процентной скидки для простых и переменных продуктов, и он отлично работает:
add_action( 'woocommerce_before_shop_loop_item_title', 'bbloomer_show_sale_percentage_loop', 25 );

function bbloomer_show_sale_percentage_loop() {

global $product;

if ( !$product->is_on_sale() ) return;

if ( $product->is_type( 'simple' ) ) {

$max_percentage = ( ( $product->get_regular_price() - $product->get_sale_price() ) / $product->get_regular_price() ) * 100;

} elseif ( $product->is_type( 'variable' ) ) {

$max_percentage = 0;

foreach ( $product->get_children() as $child_id ) {

$variation = wc_get_product( $child_id );

$price = $variation->get_regular_price();

$sale = $variation->get_sale_price();

if ( $price != 0 && !empty( $sale ) )$percentage = ( $price - $sale ) / $price * 100;

if ( $percentage > $max_percentage ) {

$max_percentage = $percentage;

}

}

}

if ( $max_percentage > 0 )echo "
" . round( $max_percentage ) . "%   Discount
";
}

Как звонить на страницах шаблонов:


Теперь я хочу рассчитать сумму скидки, чтобы показать покупателю выгоду от покупки этого продукта.
Я нашел код для достижения этой цели. , но у этого кода есть две основные проблемы:
Первая: он применим только к простым продуктам.
Вторая: добавление этого кода в функции. php, произойдет сбой страницы оплаты WooCommerce.
Есть ли лучший код или решение для этого, чтобы я мог рассчитать и показать прибыль клиента для всех продуктов WooCommerce (простых и переменных)?
Код, показывающий прибыль клиента от покупки простого продукта:
add_action( 'woocommerce_single_product_summary', 'simple_product_saving_amount', 11 );
function simple_product_saving_amount() {
global $product;
if( $product->is_type('simple') && $product->is_on_sale() ) {
$regular_price = (float) wc_get_price_to_display( $product, array('price' => $product->get_regular_price() ) );
$active_price = (float) wc_get_price_to_display( $product, array('price' => $product->get_sale_price() ) );
$saved_amount = $regular_price - $active_price;
echo '
'. __(&quot your profit &quot) .': ' . wc_price($saved_amount) . '
';}
}


Подробнее здесь: https://stackoverflow.com/questions/765 ... duct-pages

Вернуться в «Php»