Показывать сумму экономии для распродажных продуктов на страницах отдельных продуктов 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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