在WooCommerce中编辑我的帐户订单视图页面

时间:2019-04-04 09:17:15

标签: php wordpress woocommerce hook-woocommerce orders

在WooCommerce我的帐户“订单视图”页面中,我应该添加一个视觉跟踪,如下所示:
enter image description here

在实际页面上,可跟踪订单详细信息上方的每个订单:

enter image description here

  1. 第一个问题是我不知道如何在视图顺序页面中添加html和php代码,我尝试在functions.php上添加钩子,但没有成功

  2. 第二个问题是我想在查看订单页面中获取每个订单的状态 (例如:正在处理或已交付等)

这是我的functions.php代码尝试实现的目标:

    // **
//  * Add custom tracking code to the view order page
//  */
add_action( 'woocommerce_view_order', 'my_custom_tracking' );
function my_custom_tracking(){
    $order = wc_get_order( $order_id );

    $order_id  = $order->get_id(); // Get the order ID
    $parent_id = $order->get_parent_id(); // Get the parent order ID (for subscriptions…)

    $user_id   = $order->get_user_id(); // Get the costumer ID
    $user      = $order->get_user(); // Get the WP_User object

    echo $order_status  = $order->get_status(); // Get the order status 
}

1 个答案:

答案 0 :(得分:1)

您的代码中有一些错误:

  1. $ order_id 变量已作为此挂钩的函数参数包含在内,但在代码中缺失
  2. 不能与answer = QIPA.OnEnter.answer一起使用 def OnEnter(self): input = self.ids.question.text input = input.lower() try: # wolframalpha app_id = "G6YEVU-LJTJ5ETLHV" client = wolframalpha.Client(app_id) res = client.query(input) self.manager.ids.output.answer = (next(res.results).text) print(f'answer={self.manager.ids.output.answer}') except: # wikipedia wikipedia.set_lang("en") self.manager.ids.output.answer = wikipedia.summary(input, sentences=3) self.manager.current = "answer_screen" class QIPA_output(Screen): answer = StringProperty('') def BacktoMainProgramme(self): self.manager.current = "mainprogramme"

所以请尝试:

echo

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。


如果要在第二个屏幕截图中更改黄色下划线文本,则必须在$order_status = $order->get_status();模板文件中进行更改:

  1. 首先阅读official documentation以了解"how to Override templates via a theme"
  2. 完成后,按照文档中的说明将WooCommerce模板复制到活动主题后,打开编辑add_action( 'woocommerce_view_order', 'my_custom_tracking' ); function my_custom_tracking( $order_id ){ // Get an instance of the `WC_Order` Object $order = wc_get_order( $order_id ); // Get the order number $order_id = $order->get_order_number(); // Get the formatted order date created $order_id = wc_format_datetime( $order->get_date_created() ); // Get the order status name $order_id = wc_get_order_status_name( $order->get_status() ); // Display the order status echo '<p>' . __("Order Status:") . ' ' . $order_status . '</p>'; } 模板文件。
  3. 要进行的更改位于从26到34的行中:

    myaccount/view-order.php