在后台添加额外详细信息 Woocommerce订单编辑页面



嗨,我正在使用Woocommerce版本3.2.6。我们有一些订单。

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

我想补充一点:

<a href="http://example.com/new-view/?id=<?php echo $order_id?;>">Click here to view this</a>

即:我们有订单[订单 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>"

我们该怎么做呢?

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

我找到了WC_Meta_Box_Order_Items班.但我不知道如何使用它。

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>';
}

经过测试和工作

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

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

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

4(您需要在if语句中添加is_admin()以限制后端的显示。

订单项元框使用html-order-items.php循环遍历订单项,而订单项又使用html-order-item.php来显示每个项目。

出于您的目的,您应该在html-order-item.php内部查看要插入代码片段的确切位置。

我认为woocommerce_after_order_itemmeta动作钩子是理想的,因为它会在项目的元信息下方显示链接。(如果您想在项目元之前显示链接,请使用woocommerce_before_order_itemmeta

add_action( 'woocommerce_after_order_itemmeta', 'wp177780_order_item_view_link', 10, 3 );
function wp177780_order_item_view_link( $item_id, $item, $_product  ){
    if( 123 == $_product->id ) {
        echo "<a href='http://example.com/new-view/?id=" . $order->id . "'>Click here to view this</a>";
    }
}

相关内容

  • 没有找到相关文章

最新更新