WooCommerce 按重量运送 – 代码片段 + 插件

已发表: 2022-09-15
目录隐藏
1. WooCommerce 按重量运输是什么?
2.如何在没有插件的情况下设置 WooCommerce 按重量发货?
2.1。 按重量设置发货
2.2. 按重量代码发货
3. WooCommerce 按重量运输,当地取货
4. WooCommerce 基于重量的运输插件
4.1。 WooCommerce 基于重量的运输
4.2. 表运费
4.3. 有条件的运输和付款
4.4. 统一费率盒装运输
5.基于运输领域从一个地方管理订单和产品
6.结论

WooCommerce 在设置运输区域和类别方面非常灵活。 它还允许您设置统一费率、免费送货和本地取货作为运费类型。

有些商店收取固定运费,有些商店根据客户所在的位置收取不同的运费。 但是,对于尺寸和重量差异很大的产品,您不能收取单一的固定运费。

您可能想要选择解决方案或向运输区域添加一些代码,以设置 WooCommerce 按重量运输和其他高级运输规则。

因为默认 WooCommerce 没有任何规定来设置基于重量的运输。

在本文中,我们将展示可用于设置基于重量的运输的代码,以及一些用于高级规则的 WooCommerce 运输插件。

WooCommerce 按重量运输是什么?

基于重量的运输使您能够根据产品的重量设置费率。 购买重物的客户将比购买较小产品的客户支付更多的运费。

此外,购买大宗商品的客户还将收取象征性的运费。 也不建议按产品数量或订单中的不同产品收取运费。

使用基于重量的运输,您可以对大订单和小订单收取公平的价格。 此外,您可以避免向客户收取过少或多收的运费。

如何在没有插件的情况下按重量设置 WooCommerce 运输?

在跳转到代码之前,请确保满足这些要求。

  • 你的产品应该有重量。 您所有的简单产品和/或单一变体的weight > 0 。 在 WooCommerce > 设置 > 产品下,确保选择正确的“重量单位”(默认为公斤)。
  • 如果您有多个可配送区域,则应用第一个配送区域。 假设您有两个航运区,一个用于澳大利亚,一个用于大洋洲。 大洋洲的航运区将在第一个位置应用。 申请澳大利亚的航运区,你需要按住汉堡图标并将其拖到大洋洲上方。

按重量设置发货

在我们的示例中,我们将拥有三个基于重量的运输等级:

  1. 3公斤以下的订单10美元
  2. 5 公斤以下(但超过 3 公斤)的订单 15 美元
  3. 5公斤以上的订单20美元

您可以为每个配送区域设置无限的层级和无限的统一费率。 这一切都取决于你。

此外,您可以将每个统一费率重命名为“3 公斤以下的订单”、“5 公斤以上的订单”等,以使结帐标签更加用户友好。

为所有三种设置运输方式,如下所示:

  1. 统一费率 #1 > 重命名为“3 公斤以下的订单”并指定成本 = 10 美元
  2. 统一费率 #2 > 重命名为“5 公斤以下的订单”并指定成本 = 15 美元
  3. 统一费率 #3 > 重命名为“5 公斤以上的订单”并指定成本 = 20 美元
WooCommerce 按重量设置发货

如果您需要帮助,请参阅此博客关于设置运费和区域。

按重量代码发货

现在根据购物车重量,应该使用统一费率而不是其他费率。 这是您可以向最终用户显示正确的统一费率的唯一方法。

在继续之前,请记下三个统一费率的唯一 ID 。 它们应该看起来像“ flat_rate:9 ”。

在我们的示例中,以下是以下费率 ID:

  1. 统一费率 #1 > flat_rate:6
  2. 统一费率 #2 > flat_rate:7
  3. 统一费率 #3 > flat_rate:8

我们需要根据总重量取消设置费率,所以总的来说,我们需要三个条件:当重量低于 3 公斤、低于 5 公斤和高于 5 公斤时。 这是代码片段:

add_filter('woocommerce_package_rates', 'storeapps_woocommerce_tiered_shipping', 9999, 2);
功能 storeapps_woocommerce_tiered_shipping( $rates, $package ) {
    if ( WC()->cart->get_cart_contents_weight() < 3 ) {
       if ( isset( $rates['flat_rate:7'] ) && isset( $rates['flat_rate:8'] ) ) 未设置( $rates['flat_rate:7'], $rates['flat_rate:8'] ) ;
    } elseif ( WC()->cart->get_cart_contents_weight() < 5 ) {
        if ( isset( $rates['flat_rate:6'] ) && isset( $rates['flat_rate:8'] ) ) 未设置( $rates['flat_rate:6'], $rates['flat_rate:8'] ) ;
    } 别的 {
        if ( isset( $rates['flat_rate:6'] ) && isset( $rates['flat_rate:7'] ) ) 未设置( $rates['flat_rate:6'], $rates['flat_rate:7'] ) ;
    }
    返回 $rates;
}

请参阅此文档以了解如何安全地添加代码片段。

WooCommerce 按重量运输,当地取货

例如,您可能希望添加本地取货,而不是统一费率的运输方式。 然后,您可以将上面的代码替换为:

add_filter('woocommerce_package_rates', 'storeapps_woocommerce_tiered_shipping', 9999, 2);
功能 storeapps_woocommerce_tiered_shipping( $rates, $package ) {
    if ( WC()->cart->get_cart_contents_weight() < 3 ) {
       if ( ( isset( $rates['flat_rate:7'] ) && 'local_pickup' !== $rates['flat_rate:7']->get_method_id() )
           && ( isset( $rates['flat_rate:8'] ) && 'local_pickup' !== $rates['flat_rate:8']->get_method_id() ) ) {
               未设置($rates['flat_rate:7'],$rates['flat_rate:8']);
       }
    } elseif ( WC()->cart->get_cart_contents_weight() < 5 ) {
        if ( ( isset( $rates['flat_rate:6'] ) && 'local_pickup' !== $rates['flat_rate:6']->get_method_id() )
        && ( isset( $rates['flat_rate:8'] ) && 'local_pickup' !== $rates['flat_rate:8']->get_method_id() ) ) {
            未设置($rates['flat_rate:6'],$rates['flat_rate:8']);
       }
    } 别的 {
        if ( ( isset( $rates['flat_rate:6'] ) && 'local_pickup' !== $rates['flat_rate:6']->get_method_id() )
        && ( isset( $rates['flat_rate:7'] ) && 'local_pickup' !== $rates['flat_rate:7']->get_method_id() ) ) {
            未设置($rates['flat_rate:6'],$rates['flat_rate:7']);
    }
    返回 $rates;
}

WooCommerce 基于重量的运输插件

如果您不想被代码卡住,可以使用一些功能强大的 WooCommerce 按重量发货的插件。

这些插件允许您根据产品重量为客户创建不同的运费和条件。 让我们检查其中一些:

WooCommerce 基于重量的运输

这是 WordPress 存储库上的免费送货插件。 它允许您根据各种条件添加多个规则。

您可以根据需要为不同的订单目的地、重量和小计范围创建任意数量的运输规则,并设置免费运输阈值,

您还可以单独设置每个特定运输类别的运输成本。

这个插件的专业版售价 19 美元

获取 WooCommerce 基于重量的运输

表运费

该插件为您提供高度可定制的运输选项。

您可以根据重量、价格、位置或项目数量定义多个运费。

您还可以添加基于重量的规则并添加每重量单位的成本。 该插件的直观界面使用户可以轻松管理他们的运输策略。

您可以从 WooCommerce 市场以 99 美元的价格购买此插件。

获取表费率运输

有条件的运输和付款

WooCommerce 上的另一个运输扩展,使您能够限制客户可用的运输选项、付款选项和运输目的地。

您可以根据包裹重量、物品数量或购物车总数来限制运输方式和实时费率。

您还可以使用该插件通过订阅续订提供免费送货服务。

这个插件很受欢迎,你可以花79 美元购买它。

获得有条件的运输和付款

统一费率盒装运输

这个插件允许你定义箱子到不同目的地的成本。 您可以根据物品的大小和体积将物品装入箱子,然后该箱子使用您为每个目的地定义的固定成本。

您可以为每个运输区域添加多个箱子尺寸,添加每个箱子和每个重量单位的成本,还可以为无法装入箱子的物品定义成本。

该插件可从 WooCommerce 市场以49 美元的价格购买。

获得统一费率盒子运输

根据运输字段从一个地方管理订单和产品

Smart Manager 插件允许您使用类似 Excel 的表格编辑器从一个地方管理成百上千的订单。

您可以查看和管理所有订单及其运输详细信息,例如运输方式、运输状态、运输国家、订单运输税和其他详细信息。

智能管理器订单仪表板

如果您想在数千个订单中根据“统一费率”等运输方式查找一些订单,请使用“高级搜索”选项。 Smart Manager 将快速为您获取准确的结果。

您还可以将新订单和自定义订单直接添加到工作表编辑器,为其设置订单状态并设置运输方式。

另一个额外的好处是根据运输方式和其他详细信息导出订单

现在,除了订单,Smart Manager 还允许您按重量过滤产品,为批量产品添加重量,还可以为它们设置和批量编辑价格。

为产品设置散装价格重量

您还可以应用过滤器列出所有重量超过 X 公斤的产品,然后更新正常价格/销售价格产品字段,所有更改将立即应用。

此外,使用 Smart Manager,您可以:

  • 管理和批量编辑任何帖子类型——优惠券、订阅、预订、用户、产品插件、直销、博客文章、页面等。
  • 永久删除记录或将其移至垃圾箱——测试产品、测试订单、测试优惠券……
  • 复制特定帖子类型的选定记录或所有记录
  • 将所有记录或基于任何帖子类型的过滤器导出到 CSV
  • 设置自定义视图(列集),提供访问限制仪表板……

试试现场演示

结论

通过一些编码调整,设置基于重量的 WooCommerce 运输很简单。

更简单的方法是从上面的列表中获取一个插件,以节省时间和麻烦。 他们都很受欢迎,值得你花钱。

我希望你觉得这篇文章有用。 有任何问题或建议,请在下方留言。