根据 Woocommerce 中的购物车商品高度添加费用

2023-12-07

我正在尝试找到一个功能,如果购物车中的产品高度超过 2.9 厘米,则会自动向购物车添加费用。

我正在将 Woocommerce 用于我们简单的非营利漫画书店。在瑞典,我们使用基于重量的运输作为标准,如果物品尺寸为 3 厘米或以上,则会收取大件费用。

我尝试过修改LoicTheAztec 的这个答案关于基于购物车总重量的费用,但我真的不知道我在做什么,因为保存代码后我得到一个空白页。

我试图修改的代码是这样的:

add_action( 'woocommerce_cart_calculate_fees', 'shipping_weight_fee', 30, 1 );
function shipping_weight_fee( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // Convert cart weight in grams
    $cart_weight = $cart->get_cart_contents_weight() * 1000;
    $fee = 50; // Starting Fee below 500g

    // Above 500g we add $10 to the initial fee by steps of 1000g
    if( $cart_weight > 1500 ){
        for( $i = 1500; $i < $cart_weight; $i += 1000 ){
            $fee += 10;
        }
    }
    // Setting the calculated fee based on weight
    $cart->add_fee( __( 'Weight shipping fee' ), $fee, false );
}

我对 php 的经验只不过是能够将操作粘贴到我的子主题的functions.php 中。

我很感激我能得到的任何帮助。


如果任何购物车商品的高度不超过 3 厘米,以下代码将添加特定费用(Woocommerce 中的尺寸单位设置需要位于cm):

add_action( 'woocommerce_cart_calculate_fees', 'shipping_height_fee', 10, 1 );
function shipping_height_fee( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // Your settings (here below)
    $height = 3; // The defined height in cm (equal or over)
    $fee    = 50; // The fee amount
    $found  = false; // Initializing

    // Loop through cart items
    foreach( $cart->get_cart() as $cart_item ){
        if( $cart_item['data']->get_height() >= $height ) {
            $found = true;
            break; // Stop the loop
        }
    }
    // Add the fee
    if( $found ) {
        $cart->add_fee( __( 'Height shipping fee' ), $fee, false );
    }
}

代码位于活动子主题(或活动主题)的 function.php 文件中。经过测试并有效。


添加:基于购物车物品总高度的代码:

add_action( 'woocommerce_cart_calculate_fees', 'shipping_height_fee', 10, 1 );
function shipping_height_fee( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // Your settings (here below)
    $target_height = 3; // The defined height in cm (equal or over)
    $total_height  = 0; // Initializing
    $fee           = 50; // The fee amount

    // Loop through cart items
    foreach( $cart->get_cart() as $cart_item ){
        $total_height += $cart_item['data']->get_height() * $cart_item['quantity'];
    }
    // Add the fee
    if( $total_height >= $target_height ) {
        $cart->add_fee( __( 'Height shipping fee' ), $fee, false );
    }
}

代码位于活动子主题(或活动主题)的 function.php 文件中。经过测试并有效。

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

根据 Woocommerce 中的购物车商品高度添加费用 的相关文章

  • 保存多对多关系,同步/附加不存在?

    我有以下两个多对多关系的模型 use Illuminate Database Eloquent Model class Permission extends Model The database table used by the mode
  • 如何使用 PHP 对字符串进行 rot13 处理?

    我有一个很大的 php 代码 我想手动对其进行编码和解码 我的问题是 php 代码里面有很多单引号和双引号 因此我在使用时出现错误str rot13 功能如下 那么正确的语法是什么以及如何使用下面的函数进行编码 str rot13 That
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 PHP 的 HTML 页面中显示错误消息?

    我有以下登录表单 login php 其中要求输入用户名和密码
  • 覆盖 FOS 用户包中的“更改密码”模板

    我做了一些研究 遗憾的是找不到任何帮助 因此 我将 FOSUserBundle ChangePasswordAction 渲染到我的模板中 但它显示供应商提供的默认模板 我的渲染控制器的模板 block body h2 Einstellun
  • PHP 中标头的使用

    非常简单的问题 这两个 PHP 版本 5 标头调用中哪一个是 最好的 header Not Modified true 304 header HTTP 1 1 304 Not Modified 我很确定第一个是最多价的 但只是好奇如果在 H
  • 使用 XPATH(和 PHP)从样式属性中选择背景 url

    我只想从此背景图像样式属性中选择 url 这可以通过 XPATH 实现吗 a href http www test com style background image none test a 我有类似的东西 url xpath gt qu
  • Nginx 502 网关错误。通过增加buffer来解决。为什么?

    我正在设置 LEMP 堆栈来运行 Drupal 我安装了 Nginx 和 PHP FastCGI Nginx 工作正常 但任何运行 PHP 的尝试都会出现错误 502 Bad Gateway 谷歌很快发现 nginx 502 错误网关 ht
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • CodeIgniter:My_Lang 中的 get_instance

    我发现这个有用的国际化代码 http pastebin com SyKmPYTX http pastebin com SyKmPYTX 一切正常 除了我无法在此类中使用 CI 函数 我想从 DB 设置 languages 和 special
  • PHP 检查当前日期是在设定日期之前还是之后

    我从数据库中提取一个日期 其格式为 dd mm YYYY 我想做的是检查当前日期 如果当前日期早于数据库中的日期 则需要打印数据库日期 如果是在之后 则需要打印 继续 有人能指出我正确的方向吗 if strtotime database d
  • 雄辩的第一个 where 子句

    我想知道 Laravel 如何实现雄辩的语法 以便可以静态调用第一个 where 子句User where User where id 23 gt where email email gt first 他们有吗public static f
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • PHP 表单 - 带验证蜜罐

    我有以下内容 效果很好 但对垃圾邮件机器人开放 我想放入蜜罐 而不是验证码 下面的代码适用于验证姓名 电子邮件 消息 但我无法让它与蜜罐一起工作 任何人都可以查看 蜜罐 代码并告诉我如何修复它吗 我希望表单给出 success2 不允许垃圾
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • Laravel 搜索关系

    我有两个相关的模型 我正在尝试在产品中进行搜索 并且仅显示实际搜索结果 而不是找到该产品的类别的所有产品 我不想搜索任何类别 因为无论搜索什么或找到什么 类别都会始终显示 Example I have the following categ
  • 通过 htaccess 将 PNG 解析为 PHP 仅适用于本地服务器,但不适用于网络服务器

    我用 PHP 创建了一个动态 PNG 图片 为了使用 PNG 扩展名 我创建了一个包含以下内容的 htaccess 文件 AddType application x httpd php png 在我的本地 XAMPP 服务器上 一切工作正常
  • PHP更改小数点分隔符

    在某些情况下 PHP 会在操作后更改小数点分隔符 下面是一个示例 为什么小数点分隔符变成 这是一个多语言网站 在西班牙语版本中 区域设置设置为西班牙语 es ES 小数点分隔符为 这就是为什么正在改变 解决方案是强制 LC NUMERIC
  • 如何从日期中查找该月的最后一天?

    如何在 PHP 中获取该月的最后一天 Given a date 2009 11 23 我要2009 11 30 并给出 a date 2009 12 23 我要2009年12月31日 t返回给定日期所在月份的天数 请参阅的文档date ht

随机推荐

  • 为什么 ostream_iterator 没有按预期工作?

    不用多说 就是下面的代码 include
  • Android 上的 OpenCV - 标头;没有该文件/目录

    所以我对使用 Android 的 JNI 很陌生 如果这是愚蠢的事情 请提前抱歉 我已经安装了 SDK 并在 Eclipse 中将其添加为项目的库 完成所有操作后 我尝试运行 ndk build 函数 但出现此错误 Compile thum
  • Java 套接字。服务器-客户端通信

    我正在尝试将带有 gui 的客户端与没有 gui 的服务器连接 连接正在完成 但我看不到这两个应用程序之间的任何消息 我应该在客户端中获取 SERVER HERE 在服务器中获取 CLIENT HERE 客户端连接代码 Override p
  • .NET Reactive Framework 的良好介绍[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 除了 Microsoft 文档之外 是否有关于 Microsoft Reactive Rx 框架的良好介绍和教程 另外 反应式使使用传统异步编码技术难以解决的编程问题变得更容易的一个
  • 自动为 Qt 配置套件

    SO 假设我对 QtCreator 中的新套件有许多设置 GCC 编译器 9 3 0 从源代码构建 因为我必须使用的发行版有一个非常旧的版本 以及环境设置 我已经成功地设置了一个用于编译和执行已编译二进制文件的环境 并制作了一个脚本以使其工
  • 如何在 devstack 中管理用户/密码?

    我已经安装了devstack到一个干净的 Ubuntu 机器 我可以访问 OpenStack 仪表板 http localhost auth login 但是 我不知道如何管理用户或我的初始凭据是什么 此信息保存在哪里 该信息保存在 Key
  • SQLAlchemy与association_proxy的关系问题

    我一直在浏览许多网站 试图了解正在发生的事情 但我确实需要一些直接的帮助 如果我错过了文档中明显的内容 我很抱歉 这就是我想要做的 我已经删除了除了基本代码之外的所有内容 Base declarative base class User B
  • 使用默认文本填充 FILE 字段

    我正在尝试重新利用生成 FILE 字段的代码 以便在将某些内容添加到数据库时使用 并在编辑或详细查看相关项目时使数据库中已有的数据变灰 并禁用 但是 我似乎无法让文本填充该字段 我正在使用这个 echo
  • 如何在oracle中创建具有动态列名和动态数据类型的动态表,无需任何视图或任何其他表类型

    谢谢大家 我们可以在以下的帮助下动态创建一个表execute immediate询问 但是 当我们创建一个表时 它已经创建了 但是如果我想动态创建具有动态列数的表 那么就会出现问题 实际上我已经创建了一个表 但是当我没有随表创建任何列时 会
  • 用于查找、搜索和替换文件中字符串数组的 Shell 脚本

    这与我问的另一个问题 代码高尔夫有关Code Golf 重复文本的 颜色突出显示 我有一个包含以下内容的文件 sample1 txt LoremIpsumissimplydummytextoftheprintingandtypesettin
  • 如何选择合适的距离函数

    这可能是一个微不足道的问题 对于特殊的高维数据集 如何选择一个好的距离函数 我读到一些距离函数 例如欧几里得距离 在高维数据中效果不佳 如果这不能为我们提供良好的距离测量 那么什么函数可以呢 它来自维度的诅咒 基本上是随着维度的增加 空间呈
  • 在 BASH 中向特定日期添加 X 天

    BASH 完全陌生 提前致歉 Problem 我想在特定日期添加 X 天 Code 我发现date在 BASH 中检索当前日期 我还发现可以通过以下方式将 X 天添加到当前日期 expiration date date v 1d 这使 Tu
  • 如何使两个div的高度彼此相等?

    这里我在类行中有两个引导面板 我试图使两个面板的高度彼此相等 即使在面板内放置了任何数量的数据 div class panel body div 任何面板 下面是我的html div class row div class col md 6
  • 如何防止 vim 创建(和留下)临时文件?

    vim 为什么要创建
  • 解析错误:语法错误,意外的 T_ENCAPSED_AND_WHITESPACE

    我可能有语法错误或其他错误 但我什么也没看到
  • 如何在 Woocommerce 中动态更改 PayPal 地址?

    我正在尝试更改 Woocommerce 使用的 PayPal 地址 具体取决于它们所在的页面 我目前只有 5 个产品 所有 5 个产品都需要使用不同的 PayPal 地址 我发现这个钩子可以更改 Paypal 地址 尽管不太确定如何准确添加
  • 如何在不使用在线服务的情况下使用 Ruby 检测用户的输入语言?

    我正在寻找一个库或技术来检测用户提供的文本块的输入语言 在线查找 如谷歌翻译 不适用于此任务 因为我正在编写一个必须离线运行的应用程序 Thanks 这里还有两个n gram您可能想尝试的基于宝石 他们离线工作 https github c
  • 在一个应用程序中使用多个数据库

    我有一个为几组彼此不相关的人制作的网络应用程序 我正在考虑创建单独的数据库 而不是为所有这些数据库使用一个数据库 这将提高查询速度 并使我无需检查用户属于哪个组 但由于我正在使用 LINQ to SQL 我的类与数据库显式连接 因此我必须单
  • 使用 double、OpenCL 进行原子操作

    我想知道是否有一种方法可以用 double 类型实现原子操作 特别是atomic add 对于浮点数 此代码有效 但是原子xchg不支持双倍 while value atomic xchg addr atomic xchg addr 0 0
  • 根据 Woocommerce 中的购物车商品高度添加费用

    我正在尝试找到一个功能 如果购物车中的产品高度超过 2 9 厘米 则会自动向购物车添加费用 我正在将 Woocommerce 用于我们简单的非营利漫画书店 在瑞典 我们使用基于重量的运输作为标准 如果物品尺寸为 3 厘米或以上 则会收取大件