php 如何从客户电子邮件中删除某些 meta数据(Woocommerce)?

juzqafwq  于 2023-02-07  发布在  PHP
关注(0)|答案(1)|浏览(107)

我的产品有一个上传文件的非必填字段。结帐后,管理员和客户都会收到一封关于订单的电子邮件。如果一个项目有一个文件“附加”到它,邮件包括一个预览图像和一个链接到我的商店服务器上的文件。我想删除这两个,但不是从客户的电子邮件文件名。据我所知,有一个钩子可以添加邮件中显示的内容。2但是我怎么删除数据呢?

add_action( 'woocommerce_order_item_meta_start', 'action_woocommerce_order_item_meta_start', 10 , 4 );

function action_woocommerce_order_item_meta_start( $item_id, $item, $order, $plain_text ) {
    // only email notifications
    if ( is_wc_endpoint_url() ) return; 
    
    $metadata = $item['item_meta'];

    // ???
}

邮件的部分如下所示:

az31mfrm

az31mfrm1#

解决方案:

add_filter( 'woocommerce_order_item_display_meta_value', 'change_order_item_meta_value', 20, 3 );

/**
 * Changing a meta value
 * @param  string        $value  The meta value
 * @param  WC_Meta_Data  $meta   The meta object
 * @param  WC_Order_Item $item   The order item object
 * @return string        The title
 */
function change_order_item_meta_value( $value, $meta, $item ) {
    // only email notifications
    if ( is_wc_endpoint_url() ) return;
 
    // By using $meta-key we are sure we have the correct one.
    if (strstr($meta->key, "Druckvorlage")) {
        $value = strip_tags($value);
    }

    return $value;
}

下面是一篇关于订单项元数据的好文章:https://www.ibenic.com/manage-order-item-meta-woocommerce/

相关问题