被覆盖的WooCommerce电子邮件中未显示图像

时间:2017-05-13 作者:rok

我已覆盖woocommerce客户完成的订单。php

<?php

if ( ! defined( \'ABSPATH\' ) ) {
    exit;
}

do_action( \'woocommerce_email_header\', $email_heading, $email ); 
?>

<p><?php printf( __( "Your recent order has been completed.<br> ,\'woocommerce\' ) ); ?></p>
如何在电子邮件末尾添加图像?

我试过了

<?php echo wp_get_attachment_image( 1096 ,add_image_size(\'logo-size\', 219,98) );  ?>
但收到的电子邮件中只显示空白。

<?php echo wp_get_attachment_image( 1096); ?>
以裁剪大小显示。

EDIT 添加了客户完成的完整订单。php

<?php


if ( ! defined( \'ABSPATH\' ) ) {
    exit;
}

foreach ($order->get_items() as $item_id => $item) {
    $product_name = $item[\'name\']; // product name
}
/**
 * @hooked WC_Emails::email_header() Output the email header
 * 
 */
do_action( \'woocommerce_email_header\', $email_heading, $email ); 
?>

<p><?php printf( __( "Your recent order has been completed, \'woocommerce\' ), $product_name ); ?></p>

2 个回复
最合适的回答,由SO网友:rok 整理而成

此解决方案有效。

<?php


if ( ! defined( \'ABSPATH\' ) ) {
    exit;
}

foreach ($order->get_items() as $item_id => $item) {
    $product_name = $item[\'name\']; // product name
}
/**
 * @hooked WC_Emails::email_header() Output the email header
 * 
 */
do_action( \'woocommerce_email_header\', $email_heading, $email ); 
?>

<p><?php printf( __( "Your recent order has been completed, \'woocommerce\' ), $product_name ); ?></p>

<p>
  <?php echo wp_get_attachment_image( 1096, array(\'219\', \'98\'), "", array( 
    \'name\' => \'logo\',
    \'align\' => \'left\', // Not supported in HTML5
    \'border\' => \'0\', // Not supported in HTML5
    \'width\' => \'219\',
    \'height\' => \'98\'
  ) ); ?> 
</p>
添加后

<p>
  <?php echo wp_get_attachment_image( 1096, array(\'219\', \'98\'), "", array( 
    \'name\' => \'logo\',
    \'align\' => \'left\', // Not supported in HTML5
    \'border\' => \'0\', // Not supported in HTML5
    \'width\' => \'219\',
    \'height\' => \'98\'
  ) ); ?> 
</p>
图像显示在电子邮件中。

SO网友:hwl

wp_get_attachement_image 希望第二个参数是宽度和高度的数组

例如:数组(\'900\',\'1200\')。

因此,在您的示例中,如果附件id为1096,宽度为219,高度为98,则为:

<?php echo wp_get_attachment_image( 1096, array( 219, 98) );  ?>
如果您正在寻找未裁剪的完整图像:而不是使用wp_get_attachment, 尝试wp_get_attachment_image_src 并传递一个size参数“full”

这将返回一个数组:

(false | array)返回数组(url、宽度、高度、is\\u中间值),如果没有可用图像,则返回false。

我们得到的url是这样的:

$attachment_id = \'1906\';
$image_array = wp_get_attachment_image_src( $attachment_id, \'full\' );
echo \'<img src="\'. $image_array[0] .\'" >\';

结束