Woocommerce过滤器返回变体属性slug而不是value

时间:2016-08-19 08:52:09

标签: php wordpress woocommerce wpml

我很难理解Woocommerce Flow中的一个奇怪的东西。最近我已经将WPML和Woocommerce多语言插件安装到我的电子商店,从那时起,属性slug打印在新的订单确认电子邮件和感谢页面上(产品详细信息表)。

我在class-wc-order-item-meta.php第142行发现了这个问题

File Source Code

return apply_filters( 'woocommerce_order_items_meta_get_formatted', $formatted_meta, $this );

在函数流程之后,我看到$ formatted_meta变量具有正确的格式化值,但在应用过滤器后,将返回一个带有slug的数组,而不是名称。

过滤开:

[20956]=>
array(3) {
["key"]=>
string(7) "pa_size"
["label"]=>
string(14) "Μέγεθος"
["value"]=>
    string(7) "onesize"
  }
}

过滤关闭

  [20956]=>
  array(3) {
    ["key"]=>
    string(7) "pa_size"
    ["label"]=>
    string(14) "Μέγεθος"
    ["value"]=>
    string(8) "ONE SIZE"
  }

这个变化似乎并没有影响到过程中的任何内容,但我很想知道为什么会发生这种情况,我无法发现过滤器执行其操作的源代码。 我的网站使用Wordpress 4.6和Woocoomerce 2.6.3

1 个答案:

答案 0 :(得分:0)

此过滤器在\WCML_Emails::init中定义,是Woocommerce Multilingual的一部分。它返回已翻译的元数据,因此如果您将此一个尺寸翻译为一个尺寸,则可能是原因。