【发布时间】:2017-08-25 18:01:23
【问题描述】:
我有一个用于自定义元数据的 Woocommerce 插件。我有四个,但其中两个不应显示在客户电子邮件中(但在我的后端)。所以我尝试编辑 email-order-items.php 并删除标准 wc_display_item_meta( $item ); 在我的代码的第一部分中,我尝试删除其中两个,在第二部分中,我尝试显示另外两个
$_product = apply_filters('woocommerce_order_item_product', $order->get_product_from_item($item), $item);
$item_meta = wc_gzdp_get_order_meta($_product, $item);
$item_meta_print = '';
if ($item_meta->meta) {
if (is_array($item_meta->meta)) {
foreach ($item_meta->meta as $key => $value) {
if (stripos($key, "_wccf_pf_donotshow") === 0 ||
stripos($key, "_wccf_pf_donotshow2") === 0) {
unset($item_meta->meta[$key]);
}
}
}
$item_meta_print = $item_meta->display(true, true, '_', ", ");
if(isset($item_meta->meta['_wccf_pf_show'])) {
$item_meta_print .= ', Name: '. $item_meta->meta[_'wccf_pf_show'];
} elseif(isset($item_meta->meta['_wccf_pf_show2'])) {
$item_meta_print .= ', Name2: '. $item_meta->meta['_wccf_pf_show2'];
}
}
这适用于以前的 Woocommerce 版本,但在 Woocommerce 3 中不再适用。客户电子邮件中不再有元数据:-(
如果有任何帮助,我将不胜感激。
【问题讨论】:
-
任何以
_开头的元键,即:_hidden_meta_key将不会通过wc_display_item_meta()显示,因此您可以尝试重命名元键并恢复为默认功能。 -
我删除了元数据中的 _,现在每个元数据都出现了 :-( 顺便说一下,我的 PDF 发票也可以使用相同的代码
-
使用
_为元添加前缀会隐藏它,因此删除该前缀将显示它。我的建议只是为您需要隐藏的元字段添加前缀。但请记住,如果您需要保持向后兼容性,更改名称确实会产生影响......就像您已经保存了一堆数据一样。
标签: php wordpress woocommerce