在 WooCommerce 3 生成的发票中显示自定义总节省
Display Custom Total Saving in generated invoice in WooCommerce 3
在 WooCommerce 中,我正在使用 WooCommerce 打印发票和装箱单插件…
如何在此插件生成的发票中显示任何订单的总节省额?
1 年前,我一直在使用基于 [ 这个答案] 的代码,并且在我更新 WooCommerce 之前就可以使用:
<?php
$discount_total = 0;
$_order = wc_get_order( $order_id );
foreach ($_order->get_items() as $order_item) {
if ($order_item['variation_id'] > 0) {
$line_item = wc_get_product( $order_item['variation_id'] );
} else {
$line_item = wc_get_product( $order_item['product_id'] );
}
$sale_price = $line_item->sale_price;
$regular_price = $line_item->regular_price;
if ( !empty($sale_price) ) {
$discount = ($regular_price - $sale_price) * $order_item['item_meta']['_qty'][0];
$discount_total += $discount;
}
}
$discount_saving = round ( $discount_total + $_order->get_total_discount() );
if ( $discount_total > 0 ) {
<tr>
<td class="order_saving" colspan="5"><strong><?php _e( 'Total Savings: ', 'woocommerce' ); ?></strong></td>
<td class="value" colspan="2" ><span class="woocommerce-Price-saving saving"><?php echo $discount_saving ; ?></span></td>
</tr>
<?php } ?>
所以现在它不再起作用了。我尝试过更改但没有成功。
那么正确的解决方案是什么?
这是适用于 WooCommerce 版本 3+ 的更新代码:
<?php
///////////// HERE BEGINS CUSTOMIZATION /////////////
$discount_total = 0;
$_order = wc_get_order( $order_id );
foreach ($_order->get_items() as $line_item) {
// The WC_product object
$_product = $line_item->get_product();
// The product prices
$sale_price = $_product->get_sale_price();
$regular_price = $_product->get_regular_price();
if ( !empty($sale_price) ) {
$discount = ($regular_price - $sale_price) * $line_item->get_quantity();
$discount_total += $discount;
}
}
$discount_saving = round ( $discount_total + $_order->get_total_discount() );
if ( $discount_total > 0 ) {
?>
<tr>
<td class="order_saving" colspan="5"><strong><?php _e( 'Total Savings: ', 'woocommerce' ); ?></strong></td>
<td class="value" colspan="2" ><span class="woocommerce-Price-saving saving"><?php echo $discount_saving ; ?></span></td>
</tr>
<?php
}
///////////// END OF CUSTOMIZATION /////////////
?>
这应该对你有用
相关话题:
在 WooCommerce 中,我正在使用 WooCommerce 打印发票和装箱单插件…
如何在此插件生成的发票中显示任何订单的总节省额?
1 年前,我一直在使用基于 [ 这个答案] 的代码,并且在我更新 WooCommerce 之前就可以使用:
<?php
$discount_total = 0;
$_order = wc_get_order( $order_id );
foreach ($_order->get_items() as $order_item) {
if ($order_item['variation_id'] > 0) {
$line_item = wc_get_product( $order_item['variation_id'] );
} else {
$line_item = wc_get_product( $order_item['product_id'] );
}
$sale_price = $line_item->sale_price;
$regular_price = $line_item->regular_price;
if ( !empty($sale_price) ) {
$discount = ($regular_price - $sale_price) * $order_item['item_meta']['_qty'][0];
$discount_total += $discount;
}
}
$discount_saving = round ( $discount_total + $_order->get_total_discount() );
if ( $discount_total > 0 ) {
<tr>
<td class="order_saving" colspan="5"><strong><?php _e( 'Total Savings: ', 'woocommerce' ); ?></strong></td>
<td class="value" colspan="2" ><span class="woocommerce-Price-saving saving"><?php echo $discount_saving ; ?></span></td>
</tr>
<?php } ?>
所以现在它不再起作用了。我尝试过更改但没有成功。
那么正确的解决方案是什么?
这是适用于 WooCommerce 版本 3+ 的更新代码:
<?php
///////////// HERE BEGINS CUSTOMIZATION /////////////
$discount_total = 0;
$_order = wc_get_order( $order_id );
foreach ($_order->get_items() as $line_item) {
// The WC_product object
$_product = $line_item->get_product();
// The product prices
$sale_price = $_product->get_sale_price();
$regular_price = $_product->get_regular_price();
if ( !empty($sale_price) ) {
$discount = ($regular_price - $sale_price) * $line_item->get_quantity();
$discount_total += $discount;
}
}
$discount_saving = round ( $discount_total + $_order->get_total_discount() );
if ( $discount_total > 0 ) {
?>
<tr>
<td class="order_saving" colspan="5"><strong><?php _e( 'Total Savings: ', 'woocommerce' ); ?></strong></td>
<td class="value" colspan="2" ><span class="woocommerce-Price-saving saving"><?php echo $discount_saving ; ?></span></td>
</tr>
<?php
}
///////////// END OF CUSTOMIZATION /////////////
?>
这应该对你有用
相关话题: