如何识别 WooCommerce 挂钩“woocommerce_view_order”使用的代码

Joh*_*nny 1 php wordpress templates woocommerce hook-woocommerce

在 WooCommerce 中,我一直在对模板进行一些编辑。到目前为止,这一切都是直截了当的。

现在,我尝试将一些列添加到“我的帐户 > 查看订单”下的“订单详细信息”表中。

我位于模板 view-order.php 中,它是 WooCommerce 中“myaccount”下的模板。

我没有看到模板中需要编辑的某些代码,而是看到以下代码:

<?php do_action( 'woocommerce_view_order', $order_id ); ?>
Run Code Online (Sandbox Code Playgroud)

此操作的代码在哪里调用?我可以编辑它吗?

感谢您的所有时间和帮助。

Loi*_*tec 5

您需要查看 WooCommerce 插件includes/wc-template-hooks.php核心文件(第 259 行)

add_action( 'woocommerce_view_order', 'woocommerce_order_details_table', 10 );
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,该函数woocommerce_order_details_table()已被挂钩。现在让我们找到位于includes/wc-template-functions.phpcore 文件中的该函数(从第 2584 行开始)

正如您将看到的这个挂钩函数调用模板文件order/order-details.php

所以现在你可以做一些改变:

1)。通过您的活动子主题或主题覆盖模板文件,如order/order-details.php本文档中所述。

注意:模板文件order/order-details.php也用于收到的订单(谢谢),因此请注意使用以下条件来定位您的更改:

add_action( 'woocommerce_view_order', 'woocommerce_order_details_table', 10 );
Run Code Online (Sandbox Code Playgroud)

2)。或者/并且您也可以删除此挂钩函数以将其替换为您自己的自定义函数,例如:

remove_action( 'woocommerce_view_order', 'woocommerce_order_details_table', 10 );
add_action( 'woocommerce_view_order', 'custom_order_details_table', 10 );
function custom_order_details_table( $order_id ) {
    if ( ! $order_id ) {
        return;
    }

    // Here below add your own custom code
}
Run Code Online (Sandbox Code Playgroud)

您还可以在该自定义函数中调用您自己的自定义模板,该模板将专门用于订单视图端点...

相关: WooCommerce 操作挂钩和覆盖模板

WooCommerce 文档: