在Woocommerce结帐中添加总折扣优惠券金额

时间:2018-02-18 03:20:53

标签: php wordpress woocommerce checkout discount

我正在尝试添加所有我添加的优惠券,以便在结帐时获得折扣总额。我尝试在结帐模板文件的顶部添加一个变量,并为每个条目执行++,但是我抛出了错误。

如何将值添加到变量以获得总计?

如果你改变一个值,结帐总数会重新生成,所以每次循环运行时我都会输出答案。

我的代码:

<?php foreach ( WC()->cart->get_coupons() as $code => $coupon ) : ?>
        <tr class="cart-discount coupon-<?php echo esc_attr( sanitize_title( $code ) ); ?>">
            <th><?php wc_cart_totals_coupon_label( $coupon ); ?></th>
            <td><?php $helloworld = wc_cart_totals_coupon_html( $coupon )++; ?></td>
        </tr>
    <?php endforeach; ?>

1 个答案:

答案 0 :(得分:1)

使用一些现有的WC_Cart方法可以轻松完成。

所以在模板checkout/oreder-review.php中,就在此之后:

        <?php foreach ( WC()->cart->get_coupons() as $code => $coupon ) : ?>
            <tr class="cart-discount coupon-<?php echo esc_attr( sanitize_title( $code ) ); ?>">
                <th><?php wc_cart_totals_coupon_label( $coupon ); ?></th>
                <td><?php wc_cart_totals_coupon_html( $coupon ); ?></td>
            </tr>
        <?php endforeach; ?>

您将插入以下代码(第69行之后)

        <?php
            $discount_excl_tax_total = WC()->cart->get_cart_discount_total();
            $discount_tax_total = WC()->cart->get_cart_discount_tax_total();
            $discount_total = $discount_excl_tax_total + $discount_tax_total;
        if( ! empty($discount_total) ): ?>
            <tr class="cart-discount coupon-<?php echo esc_attr( sanitize_title( $code ) ); ?>">
                <th><?php _e('Discount total','woocommerce'); ?></th>
                <td><?php echo wc_price(-$discount_total) ?></td>
            </tr>
        <?php endif; ?>

经过测试和工作。

enter image description here