duanfu5239 2017-04-18 03:44
浏览 388
已采纳

从Woocommerce订单/ WC_Order对象获取订单备注?

I can add an order note (private note) with:

$order->add_order_note($info_for_order);

But when I tried to get the values in some page with:

get_comments(['post_id' => $order_id])
// or
$order_object->get_customer_order_notes()

It simply returns an empty array. I googled this and i can't find the method to do it.

  • 写回答

2条回答 默认 最新

  • douchu4048 2017-04-18 05:15
    关注

    Order notes (private note) are only available for backend when using get_comments() function.
    If you look at WC_Comments exclude_order_comments() method you will see that front end queries are filtered regarding private order notes…

    So the turn around is to build a custom function to get the private Order notes:

    function get_private_order_notes( $order_id){
        global $wpdb;
    
        $table_perfixed = $wpdb->prefix . 'comments';
        $results = $wpdb->get_results("
            SELECT *
            FROM $table_perfixed
            WHERE  `comment_post_ID` = $order_id
            AND  `comment_type` LIKE  'order_note'
        ");
    
        foreach($results as $note){
            $order_note[]  = array(
                'note_id'      => $note->comment_ID,
                'note_date'    => $note->comment_date,
                'note_author'  => $note->comment_author,
                'note_content' => $note->comment_content,
            );
        }
        return $order_note;
    }
    

    Code goes in function.php file of your active child theme (or theme) or also in any plugin file.

    This code is tested and works.


    Usage (for example the $order_id = 6238 ):

    $order_id = 6238;
    $order_notes = get_private_order_notes( $order_id );
    foreach($order_notes as $note){
        $note_id = $note['note_id'];
        $note_date = $note['note_date'];
        $note_author = $note['note_author'];
        $note_content = $note['note_content'];
    
        // Outputting each note content for the order
        echo '<p>'.$note_content.'</p>';
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站