woocommerce 새 주문 전자 메일에 제품 미리 보기 표시
WordPress / WooCommerce 사이트를 실행하고 있으며, 새로운 주문이 접수될 때 관리자가 받는 이메일을 편집하여 제품의 썸네일을 표시하고 싶습니다.템플릿을 테마 디렉토리에 복사했습니다./themes/mytheme/woocommerce/emails/admin-new-order.php
:
<?php echo $order->email_order_items_table( true, false, true, true, array( 150, 150 ) ); ?>
그리고 이것은 다음의 코드입니다.woocommerce/classes/class-wc-order.php
파일:
/**
* Output items for display in html emails.
*
* @access public
* @param bool $show_download_links (default: false)
* @param bool $show_sku (default: false)
* @param bool $show_purchase_note (default: false)
* @param bool $show_image (default: false)
* @param array $image_size (default: array( 32, 32 )
* @param bool plain text
* @return string
*/
public function email_order_items_table( $show_download_links = false, $show_sku = false, $show_purchase_note = false, $show_image = false, $image_size = array( 32, 32), $plain_text = false ) {
ob_start();
$template = $plain_text ? 'emails/plain/email-order-items.php' : 'emails/email-order-items.php';
woocommerce_get_template( $template, array(
'order' => $this,
'items' => $this->get_items(),
'show_download_links' => $show_download_links,
'show_sku' => $show_sku,
'show_purchase_note' => $show_purchase_note,
'show_image' => $show_image,
'image_size' => $image_size
) );
$return = apply_filters( 'woocommerce_email_order_items_table', ob_get_clean() );
return $return;
}
이 코드는 다음과(와)/plugins/woocommerce/templates/emails
<?php
/**
* Email Order Items
*
* @author WooThemes
* @package WooCommerce/Templates/Emails
* @version 2.0.3
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
global $woocommerce;
foreach ($items as $item) :
// Get/prep product data
$_product = $order->get_product_from_item( $item );
$item_meta = new WC_Order_Item_Meta( $item['item_meta'] );
$image = ($show_image) ? '<img src="/wp/'. current(wp_get_attachment_image_src( get_post_thumbnail_id( $_product->id ), 'thumbnail')) .'" alt="img" height="'.$image_size[1].'" width="'.$image_size[0].'" style="vertical-align:middle; margin-right: 10px;" />' : '';
?>
<tr>
<td style="text-align:left; vertical-align:middle; border: 1px solid #eee; word-wrap:break-word;"><?php
// Show title/image etc
echo apply_filters( 'woocommerce_order_product_image', $image, $_product, $show_image);
// Product name
echo apply_filters( 'woocommerce_order_product_title', $item['name'], $_product );
// SKU
echo ($show_sku && $_product->get_sku()) ? ' (#' . $_product->get_sku() . ')' : '';
// File URLs
if ( $show_download_links && $_product->exists() && $_product->is_downloadable() ) {
$download_file_urls = $order->get_downloadable_file_urls( $item['product_id'], $item['variation_id'], $item );
$i = 0;
foreach ( $download_file_urls as $file_url => $download_file_url ) {
echo '<br/><small>';
$filename = woocommerce_get_filename_from_url( $file_url );
if ( count( $download_file_urls ) > 1 ) {
echo sprintf( __('Download %d:', 'woocommerce' ), $i + 1 );
} elseif ( $i == 0 )
echo __( 'Download:', 'woocommerce' );
echo ' <a href="' . $download_file_url . '" target="_blank">' . $filename . '</a></small>';
$i++;
}
}
// Variation
echo ($item_meta->meta) ? '<br/><small>' . nl2br( $item_meta->display( true, true ) ) . '</small>' : '';
?></td>
<td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo $item['qty'] ;?></td>
<td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo $order->get_formatted_line_subtotal( $item ); ?></td>
</tr>
<?php if ($show_purchase_note && $purchase_note = get_post_meta( $_product->id, '_purchase_note', true)) : ?>
<tr>
<td colspan="3" style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo apply_filters('the_content', $purchase_note); ?></td>
</tr>
<?php endif; ?>
그리고 이것이 바로 썸네일 이미지가 없는 이메일의 결과입니다.변경했습니다.alt
속성과 이미지 크기는 여러 번 작동했고 정상적으로 작동했지만 img src는 여전히 누락되어 있습니다.
<td style="text-align:left;vertical-align:middle;border:1px solid #eee;word-wrap:break- word">
<img alt="img" height="150" width="150" style="vertical-align:middle;margin-right:10px">prueba test<br><small></small>
</td>
내가 뭘 잘못하고 있는 거지?도와주셔서 감사합니다!
WC는 이미 코드에 이 정보가 있으므로 템플릿 파일에서 활성화하기만 하면 됩니다.테마 내에 WooCommerce 디렉토리를 배치하고 다음으로 이동합니다.
/wp-content/themes/YOUR THEME NAME/woocommerce/emails
파일에서email-order-details.php
다음 코드 찾기:
<?php echo $order->email_order_items_table( array(
'show_sku' => $sent_to_admin,
'show_image' => false,
'image_size' => array( 50, 50 ),
'plain_text' => $plain_text,
'sent_to_admin' => $sent_to_admin
) ); ?>
다음으로 대체합니다.
<?php echo $order->email_order_items_table( array(
'show_sku' => $sent_to_admin,
'show_image' => true,
'image_size' => array( 50, 50 ),
'plain_text' => $plain_text,
'sent_to_admin' => $sent_to_admin
) ); ?>
다 됐습니다.
알아요, 오래된 질문이지만, 누군가가 이 문제가 잘못된 URL 형식으로 인해 발생했을 가능성이 매우 높다는 것을 지적하고 싶습니다.img
파일 내부의 태그woocommerce/templates/emails/email-order-items.php
:
$image = ($show_image) ? '<img src="/wp/'. current(wp_get_attachment_image_src( get_post_thumbnail_id( $_product->id ), 'thumbnail')) .'" alt="img" height="'.$image_size[1].'" width="'.$image_size[0].'" style="vertical-align:middle; margin-right: 10px;" />' : '';
내부src
특성이 잘못 추가되었습니다./wp/
처음에는 다음과 같은 URL이 생성되었습니다.
'/wp/http://www.website.com/path/to/the/image.jpg'
언급URL : https://stackoverflow.com/questions/18153692/show-product-thumbnail-on-woocommerce-new-order-email
'programing' 카테고리의 다른 글
Android에서 텍스트를 클립보드에 복사하는 방법? (0) | 2023.06.23 |
---|---|
사이드바에 페이지 추가 (0) | 2023.06.23 |
WKWebView에서 target="_blank" 링크를 열지 않는 이유는 무엇입니까? (0) | 2023.06.23 |
한 열에 특정 값을 가질 수 있도록 데이터베이스 테이블을 제한하는 방법은 무엇입니까? (0) | 2023.06.23 |
스프링 보안에 대한 요청 Matchers() 이해 (0) | 2023.06.23 |