web-dev-qa-db-fra.com

L'image n'est pas affichée dans l'email woocommerce surchargé

J'ai remplacé woocommerce customer-complete-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>

Comment ajouter une image à la fin de l'email?

J'ai essayé

<?php echo wp_get_attachment_image( 1096 ,add_image_size('logo-size', 219,98) );  ?>

mais seul l'espace blanc est affiché dans l'e-mail reçu.

<?php echo wp_get_attachment_image( 1096); ?>

l'affiche dans une taille recadrée.

EDITajouté complet customer-complete-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

Cette solution fonctionne.

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

Après avoir ajouté

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

Les images sont affichées dans un email.

0
user1264304

wp_get_attachement_image veut que le deuxième argument soit un tableau de largeur, hauteur

comme: array ('900', '1200').

Ainsi, dans votre exemple, si l'ID de pièce jointe est 1096, la largeur est 219 et la hauteur 98, ce serait:

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

Si vous recherchez l'image complète non recadrée: au lieu d'utiliser wp_get_attachment, essayez wp_get_attachment_image_src et transmettez un argument de taille de "complet".

Ceci retourne un tableau:

(false | array) Retourne un tableau (url, width, height, is_intermediate) ou false si aucune image n'est disponible.

Nous obtenons donc l'URL comme suit:

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