目前已启用 WooCommerce 延期交货功能,但希望从 WooCommerce 订单面板、所有电子邮件通知、收据、送货单等中删除表单通知“延期交货:1”。
这可以通过子主题functions.php 文件使用自定义PHP 实现吗?
不幸的是,我还没有找到任何方法来做到这一点。
我已经进行了一些谷歌搜索,但是,我发现的只是有关重命名 $string 而不是隐藏/删除它的文章。
WC_Order_Item
get_formatted_meta_data()
方法 显示的,因此您可以使用 woocommerce_order_item_get_formatted_meta_data
专用过滤器挂钩,隐藏要显示的任何特定订单项元数据。
以下内容将从客户订单和电子邮件通知中隐藏“缺货”元数据:
add_filter( 'woocommerce_order_item_get_formatted_meta_data', 'hide_specific_order_item_metadata', 10, 2);
function hide_specific_order_item_metadata($formatted_meta, $item){
if( is_admin() ) return $formatted_meta; // Exit if Admin orders
foreach( $formatted_meta as $key => $meta ){
if( $meta->key === 'Backordered' ) {
unset($formatted_meta[$key]);
}
}
return $formatted_meta;
}
代码位于子主题的functions.php 文件中(或插件中)。已测试并有效。
如果您还想对管理单订单隐藏它,只需删除函数内的第一行即可。
请注意,如果您想在没有任何代码的情况下摆脱它,您可以在单个产品设置中更改它:对于“允许延期交货?”选项,选择“允许”而不是“允许,但通知客户”: