【问题标题】:Changing the location of Woocommerce coupon code on checkout makes purchase button stop working?在结帐时更改 Woocommerce 优惠券代码的位置会使购买按钮停止工作?
【发布时间】:2018-10-06 13:24:14
【问题描述】:

好的,所以我到处寻找解决方案,但我无法弄清楚为什么会发生这种情况。从逻辑上讲,这没有任何意义。我不是真正的编码员,但我知道一些基本的 PHP。

我使用以下代码将 Woo 结帐中的优惠券字段简单地移动到不同的位置:

/*** MOVE THE COUPON CODE ***/

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

添加此代码后,用于完成订单的“立即购买”结帐按钮在点击时不会执行任何操作,就像 JS 被禁用一样。

当代码被删除并且优惠券代码回到原来的位置时,按钮正常工作。

有没有其他人遇到过这种情况?太诡异了。

你可以在这里看到页面(上面实现了代码):

http://insiders.nomadmoguls.com/payment/?add-to-cart=205479&variation_id=205481&attribute_pa_type-of-pass=yearly

提前感谢大家的帮助!这是我在自己寻找解决方案几个小时后的最后手段!

【问题讨论】:

    标签: wordpress woocommerce checkout coupon


    【解决方案1】:

    问题是由您使用的钩子引起的,woocommerce_after_order_notes。这导致<form name="checkout"> 在提交按钮之前关闭之前,因此“立即注册”按钮实际上不再位于该表单中,因此在单击它时无法提交它,因为您的(释义) 标记是这样的:

    <form name="checkout">
        <!-- coupon code stuff -->
    </form>
    <button type="submit">Sign Up Now</button>
    

    在开发工具打开的情况下,在网站上查看我的这个 video。您可以在结帐表单外看到“立即注册”按钮 - 只要我将它拖到表单内部,它就可以正常工作。

    一个相对常见的误解是“优惠券代码”是一个结帐表单字段,当它真的是自己单独的 form 时,当然 - 它不想直接嵌套在结帐中表单(表单中不能有表单)。

    这意味着您有两个真正的选择,而无需做一些疯狂的事情,例如在提交按钮上重新绑定单击处理程序以提交表单:

    1. 使用结帐表单后的挂钩,例如 woocommerce_after_checkout_form 而不是 woocommerce_after_order_notes
    2. 将优惠券表格保留在其原始位置。

    【讨论】:

    • 非常感谢!我不知道优惠券代码是分开的,我一定会按照您的建议进行更改。感谢您花时间解释这一点! :)
    • 很高兴,很高兴为您提供帮助!
    猜你喜欢
    • 2016-02-25
    • 2017-07-13
    • 1970-01-01
    • 2016-02-09
    • 2021-01-03
    • 2014-11-26
    • 2020-03-19
    • 2017-09-15
    • 2018-07-03
    相关资源
    最近更新 更多