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