web-dev-qa-db-ja.com

上書きされたウーコマースEメールに画像が表示されない

私はwoocommerceを上書きしましたcustomer-completed-order.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); ?>

切り取ったサイズで表示します。

_編集_ 完全追加customer-completed-order.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>
1
user1264304

この解決策はうまくいきます。

<?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>

画像は電子メールで表示されます。

0
user1264304

wp_get_attachement_imageは2番目の引数がwidth、heightの配列であることを望んでいます

like:array( '900'、 '1200')のようになります。

あなたの例では、添付ファイルのIDが1096、幅が219、高さが98の場合、次のようになります。

<?php echo wp_get_attachment_image( 1096, array( 219, 98) );  ?>

切り取られていないフルイメージを探している場合:wp_get_attachmentを使用する代わりに、wp_get_attachment_image_srcを試して、「full」のサイズ引数を渡します。

これは配列を返します:

(false | array)配列(url、width、height、is_intermediate)を返します。使用可能なイメージがない場合はfalseを返します。

だから我々はそのようなURLを取得します:

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