Php Wordpress-WooCommerce-Displaying;添加订单注释";桌面外窗体
我正在建立一个在线商店,我有一个私人页面,管理员可以在其中扫描二维码,并显示分配给该二维码的订单的详细信息。管理员还可以在该页面上设置订单的状态。我也设法在那个页面上显示了订单注释。我还想添加一个表单(textarea+submit按钮)来向订单添加订单注释,因为我们的在线商店是关于服务的,我希望能够在订单部分兑现时添加注释,因此我们不必转到桌面->订单->订单并添加注释。谁能帮帮我吗?我需要一个代码来直接添加到我想要的地方,我的意思是,不是在functions.php中,这是一个页面自定义模板(page scanqr.php)的代码。任何帮助都将不胜感激Php Wordpress-WooCommerce-Displaying;添加订单注释";桌面外窗体,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正在建立一个在线商店,我有一个私人页面,管理员可以在其中扫描二维码,并显示分配给该二维码的订单的详细信息。管理员还可以在该页面上设置订单的状态。我也设法在那个页面上显示了订单注释。我还想添加一个表单(textarea+submit按钮)来向订单添加订单注释,因为我们的在线商店是关于服务的,我希望能够在订单部分兑现时添加注释,因此我们不必转到桌面->订单->订单并添加注释。谁能帮帮我吗?我需要一个代码来直接添加到我想要的地方,我的意思是,不是在functions.php中,这是一个页面自定义模板
编辑:我看到了这个,我想它可能会对我有所帮助,但我不知道如何应用它,所以它在按下提交按钮后运行,并将textarea文本作为新订单通知发送: 正如我所说,我想以某种方式应用这个函数。但我想在按下“提交”按钮后运行它,我想让它从文本区域中选择文本,并将其作为新的订单通知发送给wordpress
function add_redeeming_notes( $order_id ) {
$order = new WC_Order( $order_id );
// The text for the note
$note = __("I WANT THIS TO PICK THE TEXT FROM THE TEXTAREA");
// Add the note
$order->add_order_note( $note );
编辑2:我还向您展示了允许我显示订单注释的代码,以防对您有所帮助
<?php
$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_date.' - '.$note_content.'</p>';
} ?>
以下是我上面评论中的一些psuedo代码:
if (isset($_POST['your_submit_action)) {
update_post_meta($id_of_product, 'your_text_key', $_POST['your_text_field'];
}
就在那里可以储存它。要获得它,请执行以下操作:
$text = get_post_meta($id_of_product, 'your_text_key', TRUE);
希望有帮助
编辑:
WC将订单注释存储在“注释”表中。订单本身就是“shop_order”的post类型。根据需要,只需使用“comments”表中“comment\u post\u ID”字段中设置的订单ID,将shop\u订单注释插入comments表即可。完成和完成。在自定义页面模板中添加以下代码片段。也可以替换模板表单结构中的以下代码-
<?php
if ( isset( $_POST['order_note_nonce_field'] ) && wp_verify_nonce( $_POST['order_note_nonce_field'], 'order_note_action' ) ) {
$order_id = ( isset( $_POST['order_id'] ) && $_POST['order_id'] ) ? absint( $_POST['order_id'] ) : '';
$order_note = ( isset( $_POST['order_note'] ) && $_POST['order_note'] ) ? sanitize_textarea_field( $_POST['order_note'] ) : '';
$order = wc_get_order( $order_id );
if( $order && $order_note ) {
// Add the note
$order->add_order_note( $order_note );
}
}
?>
<form action="" method="post">
<?php wp_nonce_field( 'order_note_action', 'order_note_nonce_field' ); ?>
<input type="hidden" name="order_id" value="21" /> <!-- dont forgot to replace the value with your current order id -->
<div class="form-field">
<textarea name="order_note"></textarea>
</div>
<div class="form-field">
<input type="submit" value="Add Note" />
</div>
</form>
我看到了这一点,我想它可能会对我有所帮助,但我不知道如何应用它,所以它会在按下提交按钮后运行,并将文本区域文本作为新的订单通知发送:在不知情的情况下,很难修补一个实时商店。尽管这个网站可以在很多方面提供帮助,但你的问题是离题的。请访问“你想在管理员中订购笔记吗?”@Reigel我不理解你的评论。我对我想要的东西非常明确。我有一个网上商店与WooCommerce,我想显示一个私人页面,只有管理员可以访问添加订单说明形式。我已经创建了该页面并放置了所有内容,唯一缺少的是添加订单注释表单。我甚至回复了一条代码注释,这可能会对我有所帮助,但我不知道如何使其适应我的情况。@Jinesh我想要一个“向订单添加注释”表单,在我的自定义页面中。该页面扫描二维码,并显示订单状态、数据和订单注释。我想要一张“向订单添加备注”表格,这样当他们将订单标记为部分兑换时,他们可以键入“重新兑换此服务,此其他服务仍可兑换”,以便下次扫描代码时,他们知道哪些服务可以重新兑换,哪些服务已经重新兑换。这是因为订单可以是多个服务。问题是我不知道这是否是我需要的。我希望能够在前端填写一份订单,并最终成为另一份订单,就像当您更改该订单的状态时,屏幕截图://也提前感谢您的帮助♥@EvaMarrez-看看这个页面:根据我上面的回答,“顺序”就是这里的帖子。“注释”是post_meta。我不知道WC是如何在post类型“shop_order”的“post_meta”中存储注释的,但我敢打赌它在该表中是一个JSON字符串。我知道这是post类型,因为如果你在admin中转到“Orders”页面,你可以在URL:/wp admin/edit.php?post_type=shop_order好的,我会尝试使用它,如果它有效,我会在这里发布代码,以便任何需要它的人都可以使用它。谢谢@埃瓦马雷斯:这肯定会奏效的。但是,您需要知道它存储在哪里;)。它不在“post_meta”中。WC将这些注释作为注释存储在“注释”表中: