自定义 woocommerce/plugin/checkout/review.order.php

问题描述 投票:0回答:3
php html ajax
3个回答
0
投票

我已经尝试过你的代码,它在我最后工作得很好,但我认为问题是你忘记关闭

<center>
标签。

关闭它,这可能会解决你的问题。


0
投票

为了比我的评论更清楚,您需要从后端处理自定义表发生的情况。

给你的桌子一个ID

<table ID="MyCustomTableId">
    <center><h4>MAKE PAYMENT</h4></center>
    <center><p>Please select the following payment method</p></center>
</table>

从后端查看 asset/js/frontend/checkout.js 中的触发器:

  • 初始化_结账
  • 更新_结账
  • 更新_结账
  • 结账错误

在 AJAX 回调中,处理您的表格(只需将表格的 HTML 替换为您的请求之一;此时它将停止重复)。这是一个例子:

init_checkout: function() {
        $( '#billing_country, #shipping_country, .country_to_state', '#MyCustomTableId' ).change();
        $( document.body ).trigger( 'update_checkout' );
    },

强调列表中添加的“#MyCustomTableId”!对所有触发器执行此操作,它应该可以解决您的问题。每次更新 woocommerce 也会失败,所以想一下! (这不是世界末日,你会擅长的,但是你知道......可持续性是一个因素,谁知道我们中的一个人什么时候被公共汽车撞到......)


0
投票

我遇到了这个确切的问题,在按照操作挂钩后我找到了原因。在文件 wc-template-hooks.php 的第 223 和 224 行(在撰写本文时),您可以看到:

add_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 10 );
add_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );

这就是事情重复的原因。 woocommerce_checkout_order_review 操作连续连接到两个单独的函数,我假设这些函数有一些代码来补偿用于防止重复的表标签,当使用 woocommerce_checkout_order_review 时,其他任何内容都会被重复。

因此,为了解决这个问题,我所做的就是为 Woocommerce 已纳入 woocommerce_checkout_order_review 的两个函数创建自己的操作挂钩,并将它们添加为代码片段或添加到函数文件中,如下所示:

/*** Create hook for the Woocommerce order summary table ***/
add_action( 'woocommerce_checkout_order_summary', 'woocommerce_order_review', 10 );

/*** Create hook for the Woocommerce order payment form ***/
add_action( 'woocommerce_checkout_order_payment', 'woocommerce_checkout_payment', 20 );

使用这些,我可以完美地调用各个部分,并将它们包装在我自己的 HTML 中,以提供我想要的任何布局。

我知道对于原来的问题来说已经太晚了,但我希望这对某人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.