В шаблонах электронной почты заказа (например, email-order-items.php
) WooCommerce использует функцию wc_display_item_meta
для отображения сведений о продукте в таблице заказа.Код функции присутствует в файле wc-template-functions.php
(номер строки 3011).Я копирую приведенный ниже код функции для справки
function wc_display_item_meta( $item, $args = array() ) {
$strings = array();
$html = '';
$args = wp_parse_args( $args, array(
'before' => '<ul class="wc-item-meta"><li>',
'after' => '</li></ul>',
'separator' => '</li><li>',
'echo' => true,
'autop' => false,
) );
foreach ( $item->get_formatted_meta_data() as $meta_id => $meta ) {
$value = $args['autop'] ? wp_kses_post( $meta->display_value ) : wp_kses_post( make_clickable( trim( $meta->display_value ) ) );
$strings[] = '<strong class="wc-item-meta-label">' . wp_kses_post( $meta->display_key ) . ':</strong> ' . $value;
}
if ( $strings ) {
$html = $args['before'] . implode( $args['separator'], $strings ) . $args['after'];
}
$html = apply_filters( 'woocommerce_display_item_meta', $html, $item, $args );
if ( $args['echo'] ) {
echo $html; // WPCS: XSS ok.
} else {
return $html;
}
}
Проблема в том, что не требуется никаких аргументов, которые могут помочь мне отфильтровать данные элемента, которые я не хочупоказать в заказе по электронной почте.Я не хочу менять эту функцию в wc-template-functions.php
, так как это основной файл.Итак, я хочу знать, есть ли фрагмент кода, который я могу добавить к functions.php
, который каким-то образом изменит эту функцию wc_display_item_meta
, чтобы отфильтровать метаданные конкретного элемента.
Примечание: Я знаю, что кто-то может подсказать, почему бы просто не удалить данные конкретного товара из сведений о продукте, но эти данные необходимы для внутренней обработки заказа.Я просто не хочу, чтобы это показывалось клиентам.
Обновление № 1: Какие метаданные я не хочу показывать в электронном письме с заказом?Ниже приведен скриншот заказа электронной почты.Я выделил три элемента данных: "Qty Selector", "Qty" и "Total".Я хочу, чтобы все эти три не отображались в электронном письме с заказом.