如何在WooCommerce后台订单编辑页面显示产品自定义字段值?
在WooCommerce后台订单页面显示自定义产品备注字段
要实现后台订单页面显示你添加的产品备注,需要两步:先把用户输入的备注保存到订单项元数据中,再在后台订单的订单项区域展示该数据。
1. 保存自定义备注到订单项
添加以下代码到你的主题functions.php文件或自定义插件中,它会处理购物车数据的保存,并最终写入订单的订单项:
// 保存产品备注到购物车项数据 add_filter('woocommerce_add_cart_item_data', 'save_product_note_cart_item_data', 10, 3); function save_product_note_cart_item_data($cart_item_data, $product_id, $variation_id) { if (!empty($_POST['product_note'])) { $cart_item_data['product_note'] = sanitize_text_field($_POST['product_note']); // 添加唯一键确保每个购物车项独立保存数据 $cart_item_data['unique_key'] = md5(microtime().rand()); } return $cart_item_data; } // 确保会话中保留产品备注数据 add_filter('woocommerce_get_cart_item_from_session', 'keep_product_note_in_session', 10, 2); function keep_product_note_in_session($cart_item, $values) { if (isset($values['product_note'])) { $cart_item['product_note'] = $values['product_note']; } return $cart_item; } // 将产品备注保存到订单项元数据 add_action('woocommerce_checkout_create_order_line_item', 'save_product_note_to_order_item', 10, 4); function save_product_note_to_order_item($item, $cart_item_key, $values, $order) { if (isset($values['product_note'])) { $item->add_meta_data(__('Product Note', 'woocommerce'), $values['product_note'], true); } }
2. 在后台订单页面显示产品备注
添加以下代码,它会在后台订单的订单项详情区域展示保存的产品备注:
// 在后台订单订单项中显示产品备注 add_action('woocommerce_admin_order_item_values', 'display_product_note_in_admin_order', 10, 3); function display_product_note_in_admin_order($product, $item, $item_id) { // 检查当前订单项是否有产品备注元数据 $product_note = $item->get_meta('Product Note'); if (!empty($product_note)) { ?> <tr> <td class="label"><?php _e('Product Note', 'woocommerce'); ?>:</td> <td><?php echo esc_html($product_note); ?></td> </tr> <?php } }
说明
- 第一部分代码负责将用户在前端输入的
product_note字段值,从购物车阶段一直保存到最终的订单项元数据中。 - 第二部分代码会读取订单项中的元数据,并在后台订单页面的每个订单项下方,以表格行的形式展示备注内容。
- 所有代码都兼容你原有的可变产品判断逻辑,只有可变产品的备注会被保存和展示。
内容的提问来源于stack exchange,提问作者KREABAZ
相关产品推荐
相关产品推荐

