【问题标题】:Changing shipping method label names in Woocommerce 3在 Woocommerce 3 中更改运输方式标签名称
【发布时间】:2018-09-06 11:24:50
【问题描述】:

我在我的 Wordpress 网站上添加了两个从 USPS 发货的选项:priority mailfirst-class package service。选项在购物车和结帐页面上分别显示为“一等包裹服务”“优先邮件”

我发现这两个标题有点笨重,我想在购物车和结帐页面上将它们分别更改为“标准”和“优先级”。

关于我需要添加什么代码来完成此操作有什么想法吗?

【问题讨论】:

  • 文本必须在代码中的某处,搜索文件

标签: php wordpress woocommerce label shipping


【解决方案1】:

更新:您的标签名称不正确(还添加了基于方法 ID 的替代方法)

下面的代码将允许您更改/重命名您的运输方式显示的标签名称。下面有 2 个备选方案:

1) 基于运输方式标签名称

add_filter( 'woocommerce_package_rates', 'change_shipping_methods_label_names', 20, 2 );
function change_shipping_methods_label_names( $rates, $package ) {

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

        if ( __( 'First-Class Package Service', 'woocommerce' ) == $rate->label )
            $rates[$rate_key]->label = __( 'Standard', 'woocommerce' ); // New label name

        if ( __( 'Priority Mail', 'woocommerce' ) == $rate->label )
            $rates[$rate_key]->label = __( 'Priority', 'woocommerce' ); // New label name
    }

    return $rates;
}

代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。

您应该需要刷新运输缓存:
1) 首先,此代码已保存在您的 function.php 文件中。
2) 在配送设置中,输入配送区域并禁用配送方式并“保存”。然后重新启用运送方式并“保存”。 你已经完成了。


2) 基于配送方式 ID

add_filter( 'woocommerce_package_rates', 'change_shipping_methods_label_names', 10, 2 );
function change_shipping_methods_label_names( $rates, $package ) {

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

        if ( 'wc_services_usps:1:first_class_package' == $rate_key )
            $rates[$rate_key]->label = __( 'USPS first class', 'woocommerce' ); // New label name

        if ( 'wc_services_usps:1:pri' == $rate_key )
            $rates[$rate_key]->label = __( 'USPS priority', 'woocommerce' ); // New label name
    }
    return $rates;
}

代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。

您应该需要刷新运输缓存:
1) 首先,此代码已保存在您的 function.php 文件中。
2) 在配送设置中,输入配送区域并禁用配送方式并“保存”。然后重新启用运送方式并“保存”。 你已经完成了。

【讨论】:

  • 我尝试按原样添加代码,但它不起作用。我确实安装了 USPS 运输插件,但我启用的运输选项是通过 WooCommerce 进行的(也就是说,我没有在 USPS 插件中选择任何运输选项)。这是购物车页面的网站 URL(尽管仅在将商品添加到购物车后才会显示运输选项):brewhanger.com/cart
  • @AustinSobotka 答案已更新...您的原始标签名称在您的问题中不是很好的名称...我添加了基于方法 ID 的替代方法。此外,您还需要按照说明刷新运输方式……
  • 所以这可能是相关的,也可能是不相关的,但我刚刚注意到,自从进行此更改后,项目不再被打包在一起。也就是说,如果我在购物车中放置两件或多件商品,它会为每件商品收取运费,而不是将这些商品一起放入一个包裹中。我选择了“将物品打包在一起”选项。如果这不相关,我会在其他地方发布!
  • @AustinSobotka 我在此答案中使用的代码仅更改现有运输方式标签名称,而不会更改现有运输方式结构化数据和包裹。所以它绝对不涉及你描述的问题......
  • @LoicTheAztec 我在我的一个网站上使用它,我发现它会随机停止工作,我必须再次刷新运输缓存。你有没有发现这是一个问题?我曾尝试使用“woocommerce_cart_shipping_method_full_label”,因为有人建议这可能是我正在更新标签的事实。虽然这不再作为正确标签或订单信息中的电子邮件通知。
猜你喜欢
  • 2021-01-24
  • 2021-04-21
  • 2021-12-10
  • 1970-01-01
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多