为了账号安全,请及时绑定邮箱和手机立即绑定

在 WooCommerce 结帐中将优惠券表单移至小计之前

在 WooCommerce 结帐中将优惠券表单移至小计之前

PHP
慕虎7371278 2023-08-06 10:40:44
在我的店面子主题中,在结帐页面中,我尝试将优惠券代码块移至购物车总数上方和商品评论下方我看到review-order.php在正确的位置有以下钩子:do_action( 'woocommerce_review_order_after_cart_contents' );所以在functions.php文件中,我添加了:remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );add_action( 'woocommerce_review_order_after_cart_contents', 'woocommerce_checkout_coupon_form' );但是,优惠券块出现了两次......并且在订单评论上方而不是下方。
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

由于钩子woocommerce_review_order_after_cart_contents 位于</tr>和标签之间的html 表内</tbody>,因此它需要显示在特定的 html 结构内,以避免出现问题。


以下将做到这一点:


remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );

add_action( 'woocommerce_review_order_after_cart_contents', 'woocommerce_checkout_coupon_form_custom' );

function woocommerce_checkout_coupon_form_custom() {

    echo '<tr class="coupon-form"><td colspan="2">';

    

    wc_get_template(

        'checkout/form-coupon.php',

        array(

            'checkout' => WC()->checkout(),

        )

    );

    echo '</tr></td>';

}

代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并有效。


如果您想直接显示优惠券表单,您可以在活动子主题(或活动主题)的 style.css 文件中添加以下内容:


.woocommerce-checkout .checkout_coupon.woocommerce-form-coupon {

    display: block !important;

}


查看完整回答
反对 回复 2023-08-06
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信