当前位置: 首页 > 知识库问答 >
问题:

将订单元数据添加到WooCommerce管理订单概述

樊宏义
2023-03-14

我正在为WooCommerce开发一个插件。我想覆盖admin的订单详细信息模板。我已经阅读了关于https://www.skyverge.com/blog/override-woocommerce-template-file-within-a-plugin/,但我仍然不明白如何覆盖admin的订单详细信息模板。以下是我的代码:

 if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
 if ( ! class_exists( 'Test' ) ) {
   load_plugin_textdomain( 'test', false, dirname( plugin_basename( __FILE__ ) ) . '/' );
}
}
class Test {
public function __construct() {
add_action( 'init', array( $this, 'include_template_functions' ), 20 );
add_action( 'woocommerce_init', array( $this, 'woocommerce_loaded' ) );
add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
do_action( 'woocommerce_admin_order_data_after_order_details', 'hello' );
}

public function hello() {
echo "order detail template has loaded";
}

public function include_template_functions() {
include( 'woocommerce-template.php' );
echo "template has loaded";
 }

  public function woocommerce_loaded() {
  }

public function plugins_loaded() {
 }
 }

$GLOBALS['wc_acme'] = new Test();

它不会在订单详细信息之后调用与woocmerce\u admin\u order\u data\u关联的钩子。

任何人都可以建议或分享一些通过插件编辑订单详细信息模板的例子。请注意,我指的是管理员内部的订单详细信息模板,管理员可以在其中查看列表中任何订单的详细信息。


共有2个答案

邢勇
2023-03-14

您可以使用woocommerce_admin_order_data_after_billing_address操作:

function order_phone_backend($order){
    echo "<p><strong>Billing phone 2:</strong> " . get_post_meta( $order->id, '_billing_phone_new', true ) . "</p><br>";
} 
add_action( 'woocommerce_admin_order_data_after_billing_address','order_phone_backend', 10, 1 );
李辉
2023-03-14

在我的自定义WooCommerce签出字段教程中,以下是如何在订单详细信息元框中显示一些额外订单元数据:

// display the extra data in the order admin panel
function kia_display_order_data_in_admin( $order ){  ?>
    <div class="order_data_column">
        <h4><?php _e( 'Extra Details' ); ?></h4>
        <?php 
            echo '<p><strong>' . __( 'Some field' ) . ':</strong>' . get_post_meta( $order->id, '_some_field', true ) . '</p>';
            echo '<p><strong>' . __( 'Another field' ) . ':</strong>' . get_post_meta( $order->id, '_another_field', true ) . '</p>'; ?>
    </div>
<?php }
add_action( 'woocommerce_admin_order_data_after_order_details', 'kia_display_order_data_in_admin' );

这假设您在签出时收集了数据,并将数据保存为所讨论的$order的post meta。

 类似资料:
  • 我目前正在成功地向我的WooCommerce产品页面添加一个字段,该字段显示以下值: 在推车(前端), 在结账页面(前端), 在订单页(前端), 并在管理个人订单页面(后端)。 问题是:它在管理订单的“自定义字段”元框中没有显示为自定义字段,其值在其中,而只是在订单页面中显示为文本。 这是我的工作代码: 我认为这是代码的最后一点需要更改。它当前显示订单项下的文本,因此我可能需要调整? 我什么都试过

  • 使用以下代码,我可以在WooCommerce产品上获得一个自定义字段,但是如何在订单、结帐和管理订单(后端)上显示它呢? 这是我在每个产品上的自定义字段 这是我的管理订单(后端)详细信息。我尝试显示我在每个产品帖子中输入的正确元数据。 如何在管理订单中显示我在自定义字段中输入的值?我也希望有人能帮助我显示在订单和结帐页面的元。。。或者引导我走向正确的方向。我意识到,为了在管理订单中显示它,我必须确

  • 订单管理位于WooCommerce - 订单下,当你的站点开始收到订单后,就能看到这个菜单。订单仅对管理员和商店经理/Shop Manager可见,每个订单有一个唯一的ID,这个ID就是WordPress post_id,是不连续的。本文简单介绍一下WooCommerce订单管理的方法。 订单状态的含义 待付款 / Pending Payment 成功下单但未支付订单,等待付款。如果支付网关的no

  • 我正在为我的WooCommerce商店出售的产品使用一些自定义项目元。我正在寻找一种方法来隐藏项目元显示在管理订单页面上的订单项目部分下。 我使用下划线的元名称,但元仍然显示。 你可以在附件中看到我的意思。。。 想法?

  • 基于将产品自定义字段保存为自定义订单项元数据的WooCommerce管理手动订单 我有这些代码来显示从前端下的订单的产品重量和尺寸,但我无法让它们用于从后端手动下的订单。当我添加产品时,我看不到重量和尺寸,它们也不会显示在页面上以支付订单、收到订单和发送电子邮件。 这是我的代码: 在任何地方展示并保存产品的重量。 到处显示和保存产品尺寸。

  • 当从管理员向订单添加产品时,我尝试将自定义产品元添加到订单项元。这是我的代码,它在后端什么都不做。。。