我的WooCommerce商店中的产品具有通过“高级自定义字段”插件store_email_logo
添加的自定义字段。该字段是图像字段,我不知道如何在WooCommerce电子邮件中输出图像。
我尝试了下面的代码,但是它不起作用,它输出一些数字而不是图像。
// Tested on WooCommerce version 2.6.x and 3+ — For simple products only.
add_action('woocommerce_email_after_order_table', 'wcv_ingredients_email_logo', 10, 4);
function wcv_ingredients_email_logo( $order, $sent_to_admin, $plain_text, $email ){
foreach($order->get_items() as $item_values){
// Get the product ID for simple products (not variable ones)
$product_id = $item_values['product_id'];
$output = get_post_meta( $product_id, 'store_email_logo', true );
echo ' ' . $output . '<br>';
}
}
答案 0 :(得分:1)
显示的“数字”是与您的产品关联的图像的ID。有几个功能可以为您输出实际图像。我相当偏爱wp_get_attachment_image_src($image_id, $size)
功能。
add_action('woocommerce_email_after_order_table', 'wcv_ingredients_email_logo', 10, 4);
function wcv_ingredients_email_logo( $order, $sent_to_admin, $plain_text, $email ){
foreach($order->get_items() as $item_values){
// Get the product ID for simple products (not variable ones)
$product_id = $item_values['product_id']; //get the product ID
$image_id = get_post_meta( $product_id, 'store_email_logo', true ); //get the image ID associated to the product
$image_src = wp_get_attachment_image_src( $image_id, 'full' )[0]; //get the src of the image - you can use 'full', 'large', 'medium', or 'thumbnail' here,
$image = '<img src="'.$image_src.'">'; //create the img element
echo $image . '<br>'; //echo the image
}
}
答案 1 :(得分:0)
尝试以下代码。可能会对您有帮助。
add_action( 'woocommerce_email_order_details', 'action_wc_email_order_details' 50, 4 );
function action_wc_email_order_details( $order, $sent_to_admin, $plain_text, $email ){
// Get the Order ID (WooCommerce retro-compatibility)
$order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
// Get "store_email_logo" custom field value
$store_email_logo= get_post_meta($order_id, "store_email_logo", true );
// Display "serial" custom field value
echo '<img src="'.__('store_email_logo', 'woocommerce') . $store_email_logo. '" alt="image">';
}