我正在努力理解一个奇怪的事情在Woocommerce流。最近我已经安装了WPML和Woocommerce多语言插件到我的商店,从那时起,属性段塞被打印在新订单确认电子邮件和感谢页面(产品详细信息表)。
我在class-wc-order-item-meta.php的第142行发现了这个问题
文件源代码
return apply_filters( 'woocommerce_order_items_meta_get_formatted', $formatted_meta, $this );
在函数流之后,我已经看到$formatted_meta变量具有正确的格式化值,但是在应用过滤器之后,返回一个带有slug的数组,用于字段值而不是名称。
Filter On:
[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
这个过滤器是在Woocommerce Multilingual的WCML_Emails::init
中定义的。它返回翻译后的meta,所以如果你把这个ONE SIZE翻译成onesize,这可能是原因。