Из-за того, что плагин Essential Grid просто передает названия продуктов в его заголовок лайтбокса, для отображения достаточного количества описаний продуктов я вынужден иметь более длинные заголовки для продуктов в моем магазине Woocommerce. Эти более длинные заголовки, в свою очередь, выводятся в электронном письме с заказом WooCommerce для клиента, включая теги HTML, как показано ниже.
Электронные письма с длинными заголовками, включая HTML-код
Я исправил это поведение в модальном окне мини-тележки, вызвав для каждого продукта настраиваемую мету simple_title для вывода, а не заголовок по умолчанию, как показано ниже в моем отредактированном mini-cart.php (*** указывает на мои единственные изменения)
<?php
do_action( 'woocommerce_before_mini_cart_contents' );
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
***$meta_title = get_post_meta( $product_id, 'simple_title', true)***;
...
<?php echo str_replace( array( 'http:', 'https:' ), '', $thumbnail ) . ***$meta_title*** . ' '; ?>
Теперь я хотел бы реализовать то же решение в WooCommerce email-downloads.php, чтобы исправить мои электронные письма Woocommerce, но я не могу заставить get_post_meta работать в foreach в этом файле. Может ли кто-нибудь поделиться правильным форматированием или где вставить это в приведенный ниже код?
По крайней мере, я изолировал выходную часть от
<?php echo esc_html( $download['product_name'] ); ?>
- именно этот вывод нужно заменить отображением настраиваемой мета-информации simple_title продукта.
Большое спасибо за любые идеи.
<table class="td" cellspacing="0" cellpadding="6" style="width: 100%; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; margin-bottom: 40px;" border="1">
<thead>
<tr>
<?php foreach ( $columns as $column_id => $column_name ) : ?>
<th class="td" scope="col" style="text-align:<?php echo $text_align; ?>;"><?php echo esc_html( $column_name ); ?></th>
<?php endforeach; ?>
</tr>
</thead>
<?php foreach ( $downloads as $download ) : ?>
<tr>
<?php foreach ( $columns as $column_id => $column_name ) : ?>
<td class="td" style="text-align:<?php echo $text_align; ?>;"><?php
if ( has_action( 'woocommerce_email_downloads_column_' . $column_id ) ) {
do_action( 'woocommerce_email_downloads_column_' . $column_id, $download );
} else {
switch ( $column_id ) {
case 'download-product' : ?>
<?php echo esc_html( $download['product_name'] ); ?>
<?php
break;
case 'download-file' : ?>
<a href="<?php echo esc_url( $download['download_url'] ); ?>" class="woocommerce-MyAccount-downloads-file button alt"><?php echo esc_html( $download['download_name'] ); ?></a>
<?php
break;
case 'download-expires' : ?>
<?php if ( ! empty( $download['access_expires'] ) ) : ?>
<time datetime="<?php echo date( 'Y-m-d', strtotime( $download['access_expires'] ) ); ?>" title="<?php echo esc_attr( strtotime( $download['access_expires'] ) ); ?>"><?php echo date_i18n( get_option( 'date_format' ), strtotime( $download['access_expires'] ) ); ?></time>
<?php else : ?>
<?php _e( 'Never', 'woocommerce' ); ?>
<?php endif;
break;
}
}
?></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>