WooCommerce 购物车页面定制

问题描述 投票:0回答:1

如何在 WooCommerce 中自定义购物车页面,

  1. 带有 X(删除按钮)的列将移至右侧。
  2. 第一列将包含复选框
  3. 功能上:通过复选框选择的产品会进入“结账”页面,而不是所有产品。

像这样: Cart-Page


问题

  1. 有一个设置/东西已经可以做到这一点吗?
  2. “继续结账”应该通过插件编辑进行功能更改,以便达到上述功能?

最诚挚的问候, 罗马

php wordpress woocommerce cart
1个回答
0
投票

表格元素内部和周围有很多可用的钩子,但遗憾的是行本身没有提供方法,例如添加列。 大多数列都有钩子,允许您操作数据在其中显示方式的非常具体的细节。

我建议 通过将其复制到主题或子主题来覆盖

cart.php
模板。 然后查看表格并四处移动/添加
<td>
元素。

继续结帐按钮只是结帐页面的链接。购物车内容位于可通过调用

WC()->cart
访问的会话中。 这将返回一个 WC_Cart 实例,其中包含
remove_cart_item
等方法。

// Get items as array keyed by what $cart_item_key refers to.
$cart_items = WC()->cart->get_cart();

// Apply logic here to identify the key you need to pass as arg.
WC()->cart->remove_cart_item($cart_item_key);

然后在结账前更换购物车。 例如。将继续按钮替换为表单提交,并在提交之前使用 JS 填充隐藏字段,这样您就可以在重定向到结账之前使用

$_POST
数据编辑购物车。 或者让 JS 将其发送到(自定义或 WC)WP REST 端点,该端点可以在结帐之前编辑您的购物车。

如果您对 php/wp(以及可能的 JS)有一定经验,这些都是相当简单的想法。

如果项目很严肃,并且您不太熟悉 php 和 WP 的内部工作原理,我建议不要更改购物车相关逻辑。 它很快就会变得复杂或破坏结帐。

如果这是一个有趣/学习的项目,我会说去做吧!这将是一个令人沮丧的过程,但也会教会你很多关于 WP 的知识,以及它的怪癖,使其在保持不合理的向后兼容性的同时不会完全无法使用。

请注意,它不会教您任何现代编程,但尝试将现代思想应用于 WP 的混乱局面,对于学习如何从复杂、大型、次优或普通的旧代码库中提取信息非常有帮助。 (此外,WP 在现实世界中几乎是不可避免的,所以了解一些东西很高兴)。

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