【问题标题】:WooCommerce Checkout Template without table breaks JS functionality没有表格中断 JS 功能的 WooCommerce 结帐模板
【发布时间】:2017-11-05 22:15:25
【问题描述】:

我更改了 cartcheckout 页面的 前端模板(通过将文件复制到我的自定义主题文件夹中来覆盖)通过用 div 容器替换一些 table-row-columns-constructs 来创建(在我看来)更清晰的布局,也用于处理响应式布局更改。

看来,从模板 checkout/form-checkout.php 模板触发的 Wordpress 钩子/操作 woocommerce_checkout_order_review 使用来自 cart/cart-shipping.php 的代码,这很好,因为 ist 使包含可选运输方式的列表在两个页面上保持一致。

“关键”更改是:删除 tdth 标记,并在 cart/cart-shipping.php 中将 <tr class="shipping"> 替换为 <div class="shipping">

这会导致问题:

单击 shipping_methods ul 的列表项会触发事件 update_checkoutupdated_checkout,(我认为)它们负责更新购物车/结账页面。 使用我更改的 HTML 模板,事情并没有按应有的方式工作;每次点击都会复制整个ul。 我在 woocommerce js code 中找不到 tr.shipping.shipping 的任何出现。

为什么更改模板结构会破坏 jQuery 代码?我怎样才能在不中断的情况下实现这种改变?

【问题讨论】:

  • 我可以在文件“\woocommerce\assets\js\admin\meta-boxes-order.js”中看到对选择器“tr.shiping”的引用。您指的是管理屏幕吗?这是我能看到的唯一地方,它会导致您将 tr 重命名为脚本文件中的 div 出现问题。
  • 我刚刚更新了我的问题,使其更加清晰。不,我指的是前端。我也找不到选择器的出现,这可能无法计算重命名的<div class="shipping"></div>
  • 这个运气好吗?如果您提供链接,我可能会提供更多帮助。

标签: jquery wordpress woocommerce


【解决方案1】:

没有更多代码很难说。或许如果你能提供一个链接,我可以提供更多帮助?

失明,听起来这是与点击有关的问题...

我可以确认,在assets/js/admin/meta-boxes-order.js 中,第 250-251 行第 541、786 行和874。可能是这些行导致了问题。

您正在尝试做的事情有点骇人听闻......并且无法测试很难说或确认,但尝试复制这些相关功能但只在您的 div.shipping 上调用它

看看你的出路在哪里。

【讨论】:

  • 你是对的。以这种方式更改标记不是一个好主意。我对标记和功能没有很好地分离这一事实感到有点沮丧。但另一方面,WooCommerce 是一款相当不错的软件。我将不得不接受表格布局。
  • 理想情况下,他们不会以 div 为目标。可能值得向他们的 repo 提出更改请求?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-24
  • 2017-10-29
  • 2015-01-11
  • 2021-04-21
  • 2013-02-25
  • 2016-07-11
  • 2017-05-28
相关资源
最近更新 更多