在管理中添加额外的详细信息 Woocommerce 订单编辑页面

abi*_* er 1 php wordpress orders woocommerce hook-woocommerce

您好,我使用的是 Woocommerce 版本 3.2.6。我们有一些订单。

我想在 wordpress 后端的订单编辑页面中product id为订单添加一项额外的详细信息。123

我想添加这个:

<a href="http://example.com/new-view/?id=<?php echo $order_id?;>">Click here to view this</a>
Run Code Online (Sandbox Code Playgroud)

即:我们有order[order id =3723],订购的商品 id 是123

然后在 中http://example.com/wp-admin/post.php?post=3723&action=edit,我想在相应的项目详细信息下方添加以下链接:

"<a href="http://example.com/new-view/?id=<?php echo $order_id?;>">Click here to view this</a>"
Run Code Online (Sandbox Code Playgroud)

我们怎样才能做到这一点?

哪个钩子适合这个。实际上我正在搜索https://docs.woocommerce.com/wc-apidocs/hook-docs.html

我找到了 Class WC_Meta_Box_Order_Items。但我不知道如何使用这个。

Loi*_*tec 5

WooCommerce 版本 3+在订单项之后且仅在后端添加自定义链接的正确代码是:

add_action( 'woocommerce_after_order_itemmeta', 'custom_link_after_order_itemmeta', 20, 3 );
function custom_link_after_order_itemmeta( $item_id, $item, $product ) {
    // Only for "line item" order items
    if( ! $item->is_type('line_item') ) return;

    // Only for backend and  for product ID 123
    if( $product->get_id() == 123 && is_admin() )
        echo '<a href="http://example.com/new-view/?id='.$item->get_order_id().'">'.__("Click here to view this").'</a>';
}
Run Code Online (Sandbox Code Playgroud)

经过测试并有效

1)重要提示:将代码限制为仅限订单项目“订单项目”类型,以避免其他订单项目(如“运费”、“费用”、“折扣”等)出现错误...

2)从WC_Product对象中获取产品ID ,您将使用WC_Data get_id()方法。

3)要从对象获取订单 ID,WC_Order_Item_Product您将使用WC_Order_Item方法get_order_id()

4)需要添加限制后台显示的语句is_admin()if