我在“https://woocommerce.com/products/print-invoices-packing-lists/”使用woocommerce和"Print Invoices & Packing lists" . 为了显示woocommerce购物车和结帐页面中的总节省数量,我使用此代码并完美运行:
function bbloomer_wc_discount_total() {
global $woocommerce;
$cart_subtotal = $woocommerce->cart->cart_contents;
$discount_total = 0;
foreach ($woocommerce->cart->cart_contents as $product_data) {
if ($product_data['variation_id'] > 0) {
$product = wc_get_product( $product_data['variation_id'] );
} else {
$product = wc_get_product( $product_data['product_id'] );
}
if ( !empty($product->sale_price) ) {
$discount = ($product->regular_price - $product->sale_price) * $product_data['quantity'];
$discount_total += $discount;
}
}
if ( $discount_total > 0 ) {
echo '<tr class="cart-discount">
<th>'. __( 'Total Saving :', 'woocommerce' ) .'</th>
<td data-title=" '. __( 'Total Saving :', 'woocommerce' ) .' ">'
. wc_price($discount_total+$woocommerce->cart->discount_cart) .'</td>
</tr>';
}
}
add_action( 'woocommerce_cart_totals_after_order_total', 'bbloomer_wc_discount_total');
add_action( 'woocommerce_review_order_after_order_total', 'bbloomer_wc_discount_total');
此功能基于woocommerce购物车内容 . 如何显示打印发票和装箱单生成的Html发票中的总节省量插件(基于订单而不是购物车内容)插件中的挂钩如下:
add_action('wc_pip_after_header','bbloomer_wc_discount_total'); add_action('wc_pip_document_header','bbloomer_wc_discount_total');
1 回答
— Update 2 — (添加了WooCommerce版本3的兼容性)
此代码只能在开头的 invoice.php PIP模板中直接使用,由此替换 <?php global $wpo_wcpdf ?> :
然后你可以在模板中使用它来输出它,这样(在html内部):
或者(在PHP代码中):
此代码经过测试和运行 .