将跟踪按钮添加到WooCommerce订单页面

时间:2019-12-14 17:30:32

标签: php wordpress woocommerce

我正在尝试将跟踪订单按钮添加到“我的帐户”>“订单”页面,以使访问者可以从此处检查运输跟踪。该按钮具有指向跟踪服务的链接,该跟踪服务具有从公共秩序记录中收集的跟踪号(这是我的情况下存储跟踪号的方式)。我设法创建了“跟踪”按钮,但以下命令的“查看”按钮消失了。应用代码时,它看起来是这样的-https://gyazo.com/498975ca43b09bce231a527ee782729a,二阶和三阶应该具有“查看”按钮。
AFAIK这是因为这些订单缺少从中收集跟踪号的公共订单记录,但我不知道它如何影响“查看”按钮。

这是我的代码:

function my_code_add_myaccount_order_track_button( $actions, $order ) {
    $order_notes = $order->get_customer_order_notes();
    foreach ( $order_notes as $order_note ) {
    $actions['track'] = array(
        'url'  => 'https://t.17track.net/en#nums=' . substr($order_note->comment_content, strpos($order_note->comment_content, "number:") + 8, 13),
        'name' => __( 'Track', 'my-textdomain' ),
    );
    return $actions;
    }
}
add_filter( 'woocommerce_my_account_my_orders_actions', 'my_code_add_myaccount_order_track_button', 10, 2 );

1 个答案:

答案 0 :(得分:0)

我找到了解决此问题的方法,如果没有针对特定订单的公共订单注释,则可以添加保释功能。这是代码:

function my_code_add_myaccount_order_track_button( $actions, $order ) {
    $order_notes = $order->get_customer_order_notes();
        if ( empty ($order_notes) ) {
            return $actions;
        }
        else {
            foreach ( $order_notes as $order_note ) {
                $actions['track'] = array(
                    'url'  => 'https://t.17track.net/en#nums=' . substr($order_note->comment_content, strpos($order_note->comment_content, "number:") + 8, 13),
                    'name' => __( 'Track', 'my-textdomain' ),
                );
                return $actions;
            }
        }
    }
add_filter( 'woocommerce_my_account_my_orders_actions', 'my_code_add_myaccount_order_track_button', 10, 2 );