【问题标题】:Woocommerce - Print Product's Custom Field In EmailWoocommerce - 在电子邮件中打印产品的自定义字段
【发布时间】:2016-07-24 14:37:35
【问题描述】:

在 Woocommerce 中,我需要在已完成订单电子邮件上打印一个自定义字段。

该模板在我的主题 woocommerce/emails 文件夹中是完全独一无二的,因为默认模板不能满足我的需要。

因此,我试图显示以下内容: 标题、数量和两个自定义字段

这需要包含在 customer-completed-order.php 电子邮件模板中,但我不确定打印它需要什么语法。

我通过谷歌搜索找到了一些东西,但它不起作用:

<?php foreach ( $items as $item_id => $item ) :
$_product     = apply_filters( 'woocommerce_order_item_product', $order->get_product_from_item( $item ), $item );
?>

<p>Class: <?php echo get_post_meta($_product->id,'name',true); ?></p>

<p>Date: <?php echo get_post_meta($_product->id,'date_text_field',true); ?></p>

<p>Time: <?php echo get_post_meta($_product->id,'time_text_field',true); ?></p>

<p>Number of Spaces: <?php echo get_post_meta($_product->id,'qty',true); ?></p>


<?php endforeach; ?>

【问题讨论】:

  • 每个订单的班级/日期/时间是否相同?还是它们特定于特定订单?

标签: wordpress woocommerce


【解决方案1】:

尝试添加到动作挂钩,
do_action( 'woocommerce_order_item_meta_start', $item_id, $item, $order );

do_action( 'woocommerce_order_item_meta_end', $item_id, $item, $order );

这可以通过以下方式使用:

add_action( 'woocommerce_order_item_name', 'action_custom_order_meta', 10, 3 );

add_action( 'woocommerce_order_item_name', 'action_custon_order_meta', 10, 3 );

以下是回调处理函数。

function action_custom_order_meta($item_name, $item, $false){
    $product_id = $item['product_id'];
    $product_custom_date = get_post_meta($product_id, 'product_custom_date', true);
    $product_custom_time = get_post_meta($product_id, 'product_custom_time', true);
    $product_custom_meta = 'Date: ' . $product_custom_date . ' <br> Time: ' . $product_custom_time;
    echo $product_custom_meta;
}

将自定义字段名称更改为适当的。您可能还需要根据自定义电子邮件所需的标记来包装输出。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    相关资源
    最近更新 更多