最小购物车金额(WooCommerce 中的几种特定产品除外)

2023-12-04

我正在使用以下代码“Woocommerce 中除特定产品外的最低购物车金额“在我的 php 中,允许覆盖 Woocommerce 最低购物车价值 130 美元。

工作正常,但仅适用于一种定义的产品。在这种情况下product_id 2649

我正在尝试通过添加行来进一步修改此代码except_product_id...但这没有帮助。

我如何修改以制作例外列表product id?

任何帮助表示赞赏

add_action( 'woocommerce_check_cart_items', 'min_cart_amount' );
function min_cart_amount() {
    ## ----- EXCLUDES A PRODUCT FROM MINIMUM ORDER DOLLAR VALUE Your Settings below ----- ##

    $min_cart_amount   = 130; // Minimum cart amount
    $except_product_id = 2649; // Except for this product ID
    $except_product_id = 2659; // Except for this product ID
    $except_product_id = 1747; // Except for this product ID



    // Loop though cart items searching for the defined product
    foreach( WC()->cart->get_cart() as $cart_item ){
        if( $cart_item['data']->get_id() == $except_product_id || $cart_item['product_id'] == $except_product_id )
            return; // Exit if the defined product is in cart
    }

    if( WC()->cart->subtotal < $min_cart_amount ) {
        wc_add_notice( sprintf(
            __( "<strong>A Minimum of %s is required before checking out.</strong><br>The current cart's total is %s" ),
            wc_price( $min_cart_amount ),
            wc_price( WC()->cart->subtotal )
        ), 'error' );
    }
}

您可以通过在每个新行上使用相同的命名约定来覆盖变量。因此,如果您想将其应用于多个 ID,则必须将它们放入一个数组中。

function min_cart_amount() {
    ## ----- EXCLUDES A PRODUCT FROM MINIMUM ORDER DOLLAR VALUE Your Settings below ----- ##

    $min_cart_amount   = 130; // Minimum cart amount
    $except_product_id = array ( 2649, 2659, 1747 ); // Except for this product ID

    // Loop though cart items searching for the defined product
    foreach( WC()->cart->get_cart() as $cart_item ) {
        // Product id
        $product_id = $cart_item['product_id'];

        // Exit if the defined product is in cart
        if ( in_array( $product_id, $except_product_id) ) {
            return;
        }
    }

    if( WC()->cart->subtotal < $min_cart_amount ) {
        wc_add_notice( sprintf(
            __( "<strong>A Minimum of %s is required before checking out.</strong><br>The current cart's total is %s" ),
            wc_price( $min_cart_amount ),
            wc_price( WC()->cart->subtotal )
        ), 'error' );
    }
}
add_action( 'woocommerce_check_cart_items', 'min_cart_amount', 10, 0 );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最小购物车金额(WooCommerce 中的几种特定产品除外) 的相关文章

  • 正则表达式匹配IP地址[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我是正则表达式的新手 我想使用preg match函数用于查找字符串是否为 IP 地址 例如 string 10 0 0 1 preg m
  • 如何?使用 PHP API 提交亚马逊创建配送订单 XML

    我现在正在努力使用 Amazon API 我正在尝试创建履行订单 将订单发送到亚马逊以供他们履行 我首先需要创建我使用过的文档 的XMLhttp www jyi org wp content uploads Amazon xml pdf h
  • 向 WordPress 添加全局设置(功能切换)

    我有一个使用定制主题的 WordPress 网站 我想在管理中的某个位置添加一个功能切换 复选框设置 各个主题页面可以读取该功能切换以更改其行为 实现这一点的最佳方法是什么 如果您能包括我如何阅读该设置 我将不胜感激 Use the 主题定
  • 测试 WP_Query 对象是否为空

    如何测试 WP Query 对象是否未返回任何匹配项 我希望能够做这样的事情 这是一个模板 EDIT 更好的例子 我只想在查询找到任何内容时才显示 h2
  • 更改laravel视图页面中的日期格式[重复]

    这个问题在这里已经有答案了 我想更改从数据库获取的日期格式 现在我得到了 2016 10 01 user gt from date 我想更改 laravel 5 3 中的格式 d m y user gt from date gt forma
  • Apache httpd 上的选择性代理端口转发

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

    我正在尝试这个 div div 但这不起作用 谢谢你 感谢各位的支持 我尝试了两种解决方案 但都不起作用 我最终做到了这
  • 从逗号分隔的字符串中删除项目[重复]

    这个问题在这里已经有答案了 假设我有一个字符串 cat mouse dog horse 是否有正则表达式或函数可以按如下方式工作 1 cat return string gt mouse dog horse 2 mouse return s
  • $_POST 不包含所有数据

    几天前 我们的一家网上商店遇到了问题 Gambio基于xtC 我们有一个包含 3000 多个文本字段的公式 其中大约前三分之一工作正常 其余的都是空的 看来 POST 已正确填充 但在服务器上 应用程序获得了一个缩减的数组 我在不同的计算机
  • 获取客户在 WooCommerce 中最后订单的产品

    我想获取客户最近一次购买的产品数据或最近一次购买的产品数据 目前我有这个 但数组的结果给了我随机购买的结果 它甚至没有给我已完成购买的数据 它为我提供了暂停购买的详细信息 我在这里需要一些帮助 这是代码 Get the current us
  • PayPal Express 在沙盒模式下返回 4011 错误消息

    我在 PHP 脚本 curl SOAP 中以沙盒模式使用 PayPal Express 我有一个简单的购买表格 带有 1 个 购买 按钮 当它被点击时 我发送初始 SetExpressCheckout 请求并从 paypal 获得成功响应
  • 以编程方式将 Magento 订单标记为完整

    当我从第三方服务收到特定响应时 我尝试将 处理 订单标记为 完成 我已经为此做好了一切设置 但唯一的问题是订单仍处于处理状态 我正在生成发票 不过我认为我不需要这个 因为每个项目在 Magento 后端都被标记为 已开票 和发货 如下所示
  • Symfony2:间歇性高响应时间/缓慢 SessionHandlerProxy::read() 完成

    我看到来自 Symfony2 会话管理器组件的非常奇怪的行为 特别是 SessionHandlerProxy read 函数在我的生产环境中有时会非常慢 Symfony Component HttpFoundation Session St
  • session_regenerate_id(true) ajax 请求或快速刷新时的无效会话

    为了避免会话固定 我在每个 PHP 页面的开头使用以下代码 session set cookie params 900 domain 1 1 session start session regenerate id true 但如果页面刷新太
  • 带有 ajax 提交处理程序的 jquery 验证插件不起作用

    在过去的几天里 我已经多次使用了 jquery 验证插件 但尚未将其与 ajax 提交一起使用 我所拥有的在下面被削减为两个字段 提交时值没有错误 单击提交按钮时不会发生任何提交 它只是什么都不做 HTML
  • PHP Define() 似乎不能与 include() 一起使用

    我一直在尝试 OO PHP 目前拥有三个文件 我有一个 class lib php 目前它只有一个databaseServer 类 一个index php 文件和一个definitions php 文件 我想将所有敏感数据库信息放入定义文件
  • 如果 CodeIgniter 方法不存在,则重定向到默认方法。

    我正在使用 CodeignIter 并且正在寻找一种在被调用方法不存在时为单个控制器编写自定义处理例程的方法 假设你打电话www website com components login In the components控制器 没有一个方
  • 使用PHP将大文件上传到谷歌云存储

    我正在尝试将大文件从服务器上传到云存储 文件超过 500mb 但 PHP 超时 我尝试查看 Google 客户端库文档 并在 stackoverflow 中进行爬行 但找不到任何可以帮助我的内容 还有有什么办法可以跟踪上传进度吗 这是我目前
  • 如何使用symfony2中的findOneBy方法返回数组而不是对象?

    我有一种情况 我想使用 symfony2 中的 findOneBy id 方法查询数据库 namePosting this gt getDoctrine gt getRepository MyBundle Users gt findOneB
  • 如何使用 php $row 检索 sql 日期时间对象?

    例如 sql SELECT FROM db query sqlsrv query conn sql while row sqlsrv fetch array query echo row date column 会崩溃 我找到的大多数答案都

随机推荐