为了账号安全,请及时绑定邮箱和手机立即绑定

将 WooCommerce 品牌名称添加到所有运输方式名称之前

将 WooCommerce 品牌名称添加到所有运输方式名称之前

PHP
慕桂英4014372 2023-07-01 15:18:58
我正在尝试弄清楚是否可以在任何可用的运输选项前添加品牌名称。我将建立一家商店,您一次只能订购一个品牌,我将内置购物车限制,以防止将两个品牌混合在一起。我有一个名为 Veeqo 的外部订购系统,无需了解太多细节,我需要将购物车中产品的品牌名称添加到所选的任何运输方式之前,以便我可以通过这些运输选项过滤订单。例如BRAND-NAME UK 次日 BRAND-NAME UK 3-5 天这可以做到吗?如果是这样,怎么办?意识到我在这里问了很多,但如果有人知道一种方法来做到这一点,将不胜感激!:)也许有一个函数在第一个行项目中搜索“品牌”,然后将此值添加到所有运输方式标题中。WooCommerce 只会根据国家/地区等向他们显示相关的购物方式。
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

使用挂钩在过滤器挂钩中的自定义函数woocommerce_package_rates,您将能够将购物车商品品牌名称添加到运输方式标签名称之前。

由于在 WooCommerce 中启用品牌的方法有多种,您需要定义在 WooCommerce 中启用的品牌插件所使用的分类法...

add_filter( 'woocommerce_package_rates', 'prepend_brand_to_shipping_methods', 10, 2 );

function prepend_brand_to_shipping_methods( $rates, $package ){

    // HERE define the taxonomy for product brand (depend of used plugin)

    $taxonomy ='product_brand';


    // Get the first cart item

    $cart_item = reset($package['contents']);


    // Get the product brand term name

    $brand_name = wp_get_post_terms( $cart_item['product_id'], $taxonomy, ['fields' =>'names']);

    $brand_name = reset($brand_name);


    // Loop through shipping rates

    foreach ( $rates as $rate_key => $rate ){

        // Changing shipping method label name

        $rates[$rate_key]->label = $brand_name . ' ' . $rate->label;

    }

    return $rates;

}

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


刷新运输缓存:

1). 此代码已保存在您的 function.php 文件中。

2)。在运输区域设置中,禁用/保存任何运输方式,然后启用返回/保存。

你已经完成了,你可以测试它。


查看完整回答
反对 回复 2023-07-01
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信