php - 在 Woocommerce 管理订单预览中显示自定义数据

标签 php wordpress woocommerce metadata orders

我想在 Woocommerce 订单列表页面的预览订单末尾添加一些自定义数据。

为此,我尝试了 Hook “woocommerce_admin_order_preview_end”。但无法将任何参数传递给该操作。

add_action( 'woocommerce_admin_order_preview_end', 'custom_display_order_data_in_admin' );
function custom_display_order_data_in_admin( $order ){
    //$order is empty here
}

有人对此有什么想法吗?我被困在这个问题上了。

最佳答案

您无法获取订单对象,因为它是通过 Ajax 加载特定数据的模板,并且 woocommerce_admin_order_preview_end 操作 Hook 没有参数。

相反,过滤器 Hook woocommerce_admin_order_preview_get_order_details 将允许您首先添加一些自定义数据,您可以在 woocommerce_admin_order_preview_end 操作 Hook 中调用并显示这些数据。

代码:

// Add custom order meta data to make it accessible in Order preview template
add_filter( 'woocommerce_admin_order_preview_get_order_details', 'admin_order_preview_add_custom_meta_data', 10, 2 );
function admin_order_preview_add_custom_meta_data( $data, $order ) {
    // Replace '_custom_meta_key' by the correct postmeta key
    if( $custom_value = $order->get_meta('_custom_meta_key') )
        $data['custom_key'] = $custom_value; // <= Store the value in the data array.

    return $data;
}

// Display custom values in Order preview
add_action( 'woocommerce_admin_order_preview_end', 'custom_display_order_data_in_admin' );
function custom_display_order_data_in_admin(){
    // Call the stored value and display it
    echo '<div>Value: {{data.custom_key}}</div><br>';
}

代码位于事件子主题(或事件主题)的 function.php 文件中。经过测试并有效。

Note: You can also use woocommerce_admin_order_preview_start hook if needed…

关于php - 在 Woocommerce 管理订单预览中显示自定义数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53845664/

相关文章:

php - 逆向工程 eclipse-PDT-php->UML

php - 为什么我需要一个电子邮件帐户才能在 ruby​​ 上发送邮件而在 php 上不需要这样的帐户?

php - Atom XML 解析错误 : prefix not bound to a namespace

css - 如何在两列 div 中水平排序 block ?

javascript - 通过javascript填充html表格

WordPress - 如何通过 slug 获取自定义帖子类型?

javascript - Cookiebot 横幅覆盖带有印记的页 footer 分

php - 在 Woocommerce 中添加到购物车之前用于更改产品价格的附加自定义按钮

php - 根据购物车中的产品 ID 在 WooCommerce 结账时显示/隐藏复选框

mysql - Wordpress:获取具有选定 term_id 的产品的所有条款