Отображение дисконтированного промежуточного итога после скидки на счете в формате PDF в Woocommerce

Я хочу отобразить стоимость товара после купона на скидку на счете.
У меня есть следующий код, но он отображает только базовую цену, а не стоимость после кода купона:

add_filter( 'wpo_wcpdf_woocommerce_totals', 'wpo_wcpdf_woocommerce_totals_custom', 10, 2 );
function wpo_wcpdf_woocommerce_totals_custom( $totals, $order ) {
$totals = array(
'subtotal'  => array(
'label' => __('Subtotal', 'wpo_wcpdf'),
'value' => $order->get_subtotal_to_display(),
),
);
return $totals;
}

Я пытался изменить $totals в $discount, но это не сработало.

1

Решение

Ваш фактический код просто удаляет все итоги, отображая только промежуточный итог. Пожалуйста, попробуйте следующую подключенную функцию, которая будет отображать дисконтированный промежуточный итог после суммы скидки:

add_filter( 'wpo_wcpdf_woocommerce_totals', 'add_discounted_subtotal_to_pdf_invoices', 10, 2 );
function add_discounted_subtotal_to_pdf_invoices( $totals, $order ) {
// Get 'subtotal' raw amount value
$subtotal = strip_tags($totals['cart_subtotal']['value']);
$subtotal = (float) preg_replace('/[^0-9.]+/', '', $subtotal);

// Get 'discount' raw amount value
$discount = strip_tags($totals['discount']['value']);
$discount = (float) preg_replace('/[^0-9.]+/', '', $discount);

$new_totals = array();
// Loop through totals lines
foreach( $totals as $key => $values ){
$new_totals[$key] = $totals[$key];
// Inset new calculated 'Subtotal discounted' after total discount
if( $key == 'discount' && $discount != 0 && !empty($discount) ){
$new_totals['subtotal_discounted'] = array(
'label' => __('Subtotal discounted', 'wpo_wcpdf'),
'value' => wc_price($subtotal - $discount)
);
}
}
return $new_totals;
}

Код помещается в файл function.php вашей активной дочерней темы (или темы).

Проверено и работает. Это должно работать для вас тоже.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]