如何删除 woocommerce 添加的购物车项目并重定向到结帐?

2023-12-09

我有一个用于“添加资金”的 Woocommerce 表格。它有一个金额输入字段(20 美元、30 美元...等)和一个提交按钮,该按钮重定向到购物车页面,其中输入的金额为总计。

重定向到结账正常,但如果用户放弃购物车并尝试再次订购,则购物车商品不会被删除。

我尝试了多种重定向到结账的解决方案,但只有一种有效。

重定向到结帐的工作解决方案:

WooCommerce - 跳过购物车页面重定向到结帐页面

无法重定向到结账的解决方案:

https://wordpress.stackexchange.com/questions/267071/redirect-to-woocommerce-checkout-after-adding-to-cart-item-already-in-cart

Woocommerce 添加到购物车按钮重定向到结帐

注意:我已经添加了重定向的有效和无效解决方案 结账,因为它可以让您了解为什么购物车是空的 解决方案不起作用。

如果在添加新产品之前清空购物车,则所有解决方案都不起作用:

https://gist.github.com/viniciusrtf/b49403b5f87dcd7699c1

https://hungred.com/how-to/empty-woocommerce-cart-adding-item/

https://wordpress.stackexchange.com/questions/267071/redirect-to-woocommerce-checkout-after-adding-to-cart-item-already-in-cart

使用 Woocommerce 3.2.6 和 WordPress 4.9.2


首先,您需要在 WooCommerce 设置 > 产品 > 显示“添加到购物车行为”中启用复选框:添加成功后重定向至购物车页面

然后你将需要以下 3 个挂钩函数:

1) 添加到购物车之前清空购物车(如果购物车不为空)

add_filter( 'woocommerce_add_to_cart_validation', 'one_cart_item_at_the_time', 10, 3 );
function one_cart_item_at_the_time( $passed, $product_id, $quantity ) {
    if( ! WC()->cart->is_empty())
        WC()->cart->empty_cart();
    return $passed;
}

2) 添加到购物车重定向到结帐:

add_filter( 'woocommerce_add_to_cart_redirect', 'add_to_cart_checkout_redirection', 10, 1 );
function add_to_cart_checkout_redirection( $url ) {
    return wc_get_checkout_url();
}

3) 跳过购物车页面重定向到结帐:

add_action('template_redirect', 'skip_cart_page_redirection_to_checkout');
function skip_cart_page_redirection_to_checkout() {
    if( is_cart() )
        wp_redirect( wc_get_checkout_url() );
}

代码位于活动子主题(或活动主题)的 function.php 文件中。

经过测试并有效(店面主题使用 Woocommerce 3.2.6 和 WordPress 4.9.2).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除 woocommerce 添加的购物车项目并重定向到结帐? 的相关文章

  • json支持阿拉伯字符吗?

    我想问一个简单的问题 json 是否支持阿拉伯字符 我的意思是当我搜索类似以下内容时 values database gt get by name echo json encode array returnedFromValue gt va
  • WordPress admin-ajax.php 400 错误请求

    我的 WordPress admin ajax php 文件有一个奇怪且令人沮丧的行为 当我发出 ajax 请求时 它返回 400 错误错误请求 function var ajaxscript ajax url mydomain com w
  • wordpressfunctions.php - 为每个帖子类别使用不同的页面模板

    我想连接到 save post 函数 找出帖子所属的类别 然后为每个类别中的帖子分配不同的页面模板 我已经尝试了大约 30 个不同的版本 但都没有成功 有人可以帮我指出正确的方向吗 add action save post assign c
  • 使用 Sendemail 的 HTML 表单

    我不知道问题出在哪里 mail 工作正常 我已经用一个简单的 php 文件对其进行了测试 但我的表单不发送任何电子邮件 HTML section div class wow fadeIn div div class parallax div
  • 在 Laravel 中获取身份验证用户 ID

    如果用户登录 Laravel 5 1 我们可以访问用户 ID Auth user gt id 在我以前的应用程序 不是 laravel 中 当用户登录时 我正在为 userid 注册一个会话 我正在检查 SESSION user id 是否
  • Cakephp 在 Bluehost 上安装

    如何设置 Cakephp 才能在 Bluehost 上正常工作 我应该将我的应用程序 cake 和供应商文件夹以及 htaccess 和 index php 文件放在 public html 目录中吗 我按照这里的说明进行操作 http b
  • 测试 WP_Query 对象是否为空

    如何测试 WP Query 对象是否未返回任何匹配项 我希望能够做这样的事情 这是一个模板 EDIT 更好的例子 我只想在查询找到任何内容时才显示 h2
  • Apache httpd 上的选择性代理端口转发

    我正在尝试将 WordPress 集成到在 Nodejs 服务器上运行的网站中 并启用 Apache Httpd 端口转发 以将所有请求从 80 端口转发到 Nodejs 端口 9000 我已将 WordPress 安装到 Apache h
  • WordPress Loop:如何将每 3 个帖子包装到一个 div 中?

    我正在尝试这个 div div 但这不起作用 谢谢你 感谢各位的支持 我尝试了两种解决方案 但都不起作用 我最终做到了这
  • “stream_socket_enable_crypto():对等证书 CN=`gains.nanosupercloud.com' 与共享托管中预期的 CN=`smtp.sendgrid.net' 不匹配”

    我在 laravel 从事邮件工作 我有以下配置 MAIL DRIVER smtp MAIL HOST smtp sendgrid net MAIL PORT 587 MAIL USERNAME MAIL PASSWORD MAIL ENC
  • 是否可以执行扩展名为 file.php.jpg 的 PHP?

    网站合法文件image upload php用于上传文件89471928047 php jpg这是简单的文件上传表单 将 tmp 文件复制到同一图像文件夹 他们如何设法执行它并通过它上传其他文件 有人知道这怎么可能吗 PHP version
  • Memcached 获取慢、CPU 使用率高

    我在机器上运行了一个 memcached 实例来承受数据库的压力 目前 通过 PHP 每秒约有 350 个请求 根据 memcached 文档 这应该是完全可行的 但我发现 get 时间慢得离谱 平均约为 60 毫秒 双向都有峰值 0 1
  • 使用PHP将图像旋转45度时如何避免黑色背景?

    您好 我必须先翻转缩略图 然后才能将其与另一个 jpeg 文件合并 但是当我使用 php ini 旋转 45 度时它显示黑色背景 我怎样才能避免这种情况 任何机构都可以帮助我 好吧 如果您要生成 jpg 请使用 PHP GD 将背景颜色设置
  • Sphinx错误:搜索请求中未知的本地索引“INDEX_NAME”[已关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我使用 Sphinx 0 9 9 r
  • Symfony2:间歇性高响应时间/缓慢 SessionHandlerProxy::read() 完成

    我看到来自 Symfony2 会话管理器组件的非常奇怪的行为 特别是 SessionHandlerProxy read 函数在我的生产环境中有时会非常慢 Symfony Component HttpFoundation Session St
  • PHP imagettftext 返回的边界框与渲染的边界框不同

    我正在使用 imagettftext 渲染 PNG 文件 对 imagettftext 的调用返回渲染文本的边界框 但仔细检查后发现 文本的渲染稍微超出了它自己的边界框 边界框是正确的 我检查了图像的像素坐标 但文本位置不正确 它输出这个
  • 让 PHP 页面输出静态图像

    我希望 PHP 能够发送 3 张图像中的 1 张 具体取决于 GET 范围 我现在有三个独立的 PNG 图像 并且希望 PHP 脚本将这些图像嵌入其中 然后返回指定的图像 所以 我想要一个 PHP 脚本而不是 3 个图像 这可能吗 我不需要
  • 使用PHP将大文件上传到谷歌云存储

    我正在尝试将大文件从服务器上传到云存储 文件超过 500mb 但 PHP 超时 我尝试查看 Google 客户端库文档 并在 stackoverflow 中进行爬行 但找不到任何可以帮助我的内容 还有有什么办法可以跟踪上传进度吗 这是我目前
  • Laravel 自定义授权

    我在这里进行登录验证 LoginData Input except array token if Auth attempt LoginData return success 我的表不同 所以这里我更改表名称auth php table gt
  • 限制在WhereHas内

    所以我想获取最后状态等于给定状态的请求 我尝试过first 但它给了我一个错误并且限制不起作用 requests Request whereHas requestStatus function query use status return

随机推荐

  • eclipse 没有为其中开发的任何应用程序生成 apk 文件吗?

    我一直在使用 eclipse IDE 在 android 中开发一些应用程序 所有这些应用程序在模拟器上运行良好 但 eclipse 没有生成它们的 apk 文件 并且我无法在任何设备中安装应用程序 此外 在模拟器上运行应用程序时 它不会给
  • 阻止外部访问 PHP 脚本但允许 AJAX

    我读了很多关于 htaccess 规则 检查标头 使用加密等的内容 但我还没有找到我想要的答案 我知道 假设服务器设置正确 您将无法使用 AJAX 访问我珍贵的 PHP 脚本 我尝试检查是否定义了一个访问变量 该变量不允许地址栏访问 但也阻
  • 在express.js上启用HTTPS

    我正在尝试让 HTTPS 在 Express js 上为 Node 工作 但我无法弄清楚 这是我的app js code var express require express var fs require fs var privateKe
  • Android KSOAP2 抛出 SocketTimeoutException

    我在我的 Android 项目中使用了上述 SOAP 对象库 以便连接到 NET Web 服务 该应用程序运行良好 直到我做了一些更改并增加 减少了目标 API 它开始抛出 SocketTimeoutException 并且不会消失 我在用
  • 选择firstChild和空格问题

    我有一个这样的标记 table thead tr td Hello td tr thead table 但是当我尝试选择第一个孩子时 table 它返回空格 正如预期的那样 var ss document getElementById my
  • 样式下拉(选择)框

    我知道使用 jquery 可以制作一些看起来像选择框的东西 这样我就可以让它看起来像我想要的那样 然而 如果只有 css 我有多少控制权 我使用了边框 内边距和宽度 最终结果看起来很棒 唯一让我烦恼的是掉落的部分 这有什么控制吗 有填充看起
  • 调用open时如何调用sys_open而不是sys_openat

    我编写了一段代码来生成系统调用 void open test int fd const char filepath if fd 1 printf Open s Failed n filepath else printf Successful
  • 带有有效负载或表单数据的 DELETE 请求会导致错误请求

    我正在使用 Java Jersey 2 17 构建 RESTful Web 服务 客户端 我正在使用 ExtJS 5 进行开发 我的服务课程 主程序 java public class Main public static final St
  • 如何使用正则表达式通过 jQuery 通过 ID 选择元素?

    我有以下输入元素
  • 以编程方式启用/禁用多点触控手指输入?

    我有一台运行 Windows 7 且支持多点功能的平板电脑 然而 当使用手写笔并距离显示器太远时 我经常会不小心用手指敲击它 从而导致不必要的鼠标点击 解决方案是导航到 控制面板 笔和手指输入 手指输入 然后停用 使用手指作为输入设备 复选
  • mysql负载测试工具

    我想计算表的每行大小 有没有可用的工具 还有人知道任何负载测试工具吗 提前致谢 问候 玛纳西 计算平均行大小 SHOW TABLE STATUS FROM databasename LIKE pattern 超级一击是 MySQL 和 Po
  • 检测耳机是否插入 iOS 设备

    iOS 设备上有互动电影 当电影开始时 点击 视频开始的那个人会问你插入耳机 如果插入 那么视频应该自动跳到故事 直接转到视频故事 我应该怎么办 以及如何编写代码 首先 您必须注册 AudioRoute 更改 AudioSessionAdd
  • JS:在文本中查找 URL,创建链接

    下面用 JS 重写的 PHP 代码是什么 以便文本 blob 内的 url 链接可以替换为 html 链接 我已经开始了jsfiddle
  • 更改PIL模块中的图像颜色

    我正在尝试改变颜色的强度以获得不同颜色的图像 import PIL from PIL import Image from PIL import ImageEnhance from PIL import ImageDraw read imag
  • 如何禁止从 Angular JS 下拉列表中选择特定选项?

    我想从 AngularJS 下拉列表中禁用特定选项 它应该列在下拉列表中 但不应允许选择它 所以我需要禁用它 我的文件 tpl html
  • 重复本地通知不更新内容

    我制作了一个应用程序 每天上午 9 点发送一条本地通知 向用户显示随机素数 问题是显示的数字始终相同 创建通知请求的代码仅被调用一次 这是我所期望的 因为通知是重复的 那么我如何更新其内容 我可以提供生成随机素数的代码 但我已经测试过它并且
  • 使用 Ivy Bridge 和 Haswell 循环展开以实现最大吞吐量

    我正在使用 AVX 同时计算八个点积 在我当前的代码中 我做了这样的事情 在展开之前 常春藤桥 桑迪桥 m256 areg0 mm256 set1 ps a m for int i 0 i
  • 确定字符串是否具有唯一字符

    该问题要求 实现一种算法来确定字符串是否具有所有唯一字符 我看到了解决方案 但不太明白 public boolean isUniqueChars String str if str length gt 256 return false bo
  • 如何在 R 中为 dist 函数指定其他方法?

    在 R 中 dist 函数的文档中有以下内容 method 要使用的距离测量 这必须是 euclidean maximum manhattan canberra binary 或 minkowski 之一 可以给出任何明确的子字符串 但我需
  • 如何删除 woocommerce 添加的购物车项目并重定向到结帐?

    我有一个用于 添加资金 的 Woocommerce 表格 它有一个金额输入字段 20 美元 30 美元 等 和一个提交按钮 该按钮重定向到购物车页面 其中输入的金额为总计 重定向到结账正常 但如果用户放弃购物车并尝试再次订购 则购物车商品不