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 に答える