WooCommerce“缺货”:隐藏订单、电子邮件、收据、送货单等中的 $string

问题描述 投票:0回答:1

目前已启用 WooCommerce 延期交货功能,但希望从 WooCommerce 订单面板、所有电子邮件通知、收据、送货单等中删除表单通知“延期交货:1”。

Backordered on Order Form

Backordered on Delivery Note

这可以通过子主题functions.php 文件使用自定义PHP 实现吗?

不幸的是,我还没有找到任何方法来做到这一点。

我已经做了一些谷歌搜索,但是,我发现的只是有关重命名 $string 而不是隐藏/删除它的文章。

php woocommerce metadata orders email-notifications
1个回答
0
投票

由于此订单项元数据是通过

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 文件中(或插件中)。已测试并有效。

© www.soinside.com 2019 - 2024. All rights reserved.