3

我想我在这里遗漏了一些明显的东西:我试图在其中包含购买说明,customer-completed-order.php以便客户收到购买确认的说明,但我失败了。

这是我尝试过的:

<?php echo '<div class=\"product-purchase-note\">'.  $purchase_note .  'PURCHASE NOTE</div>'; ?>

和这个

<?php       
   $purchase_note = get_post_meta( $_product->id, '_purchase_note');
  echo '<div class="product-purchase-note">' .  $purchase_note . '</div>';
?>

和这个:

<?php       
   $purchase_note = get_post_meta( $_product->id, '_purchase_note', true)) :
    echo '<td class="product-purchase-note">' . apply_filters('the_content', $purchase_note) . '</td>';
?>

和这个:

<?php 

  if ($order->status=='completed' || $order->status=='processing') {
    if ($purchase_note = get_post_meta( $_product->id, '_purchase_note', true))
     echo '<div class="product-purchase-note"><div>' . apply_filters('the_content', $purchase_note) . '</div></div>';
} ?>

似乎没有任何效果。

它显示在已收到订单的页面上,但不会显示在订单确认电子邮件中。非常感谢任何帮助

4

2 回答 2

1

我怀疑这是因为$_product尚未在completed-customer-order.php模板中设置。

在这种情况下,您需要自己从订单中提取产品:

<?php
    $items = $order -> get_items();
    foreach ( $items as $item ) {
        $product = $order -> get_product_from_item( $item );
        // copied from woocommerce/templates/emails/email-order-items.php
        $purchase_note = get_post_meta( $product -> id, '_purchase_note', true );
        echo wpautop( do_shortcode( wp_kses_post( $purchase_note ) ) );
    }
于 2015-02-25T18:39:16.940 回答
1

有点晚了,但是,使用$order->customer_note而不是$purchase_note = get_post_meta( $_product->id, '_purchase_note');

于 2014-05-07T10:59:35.723 回答