当前位置: 首页 > 知识库问答 >
问题:

Woocommerce管理订单详细信息-在订单详细信息页面上显示自定义数据

钱弘壮
2023-03-14

我正在搜索和尝试它2天没有成功,请帮助。

我想筛选woocommerce订单,以便根据产品属性将其他详细信息从db添加到订单详细信息页面,但我找不到适合此任务的woocommerce操作/筛选器挂钩。这里假设变量$is_customized=false

如果$is_customized==true,那么我需要将自定义数据从数据库添加到订单详细信息页面。

注意:我不想添加额外的元框,而是想更改订单明细表:

  • 将默认产品映像替换为存储在数据库和中的映像,
  • 在产品名称下面添加包含自定义属性的div

我的变量中有所有这些值,但我不知道应该使用哪个操作钩子。

我附上了一张图片以供澄清。

只需要知道我是否可以更改/过滤这些订单结果,以及如何更改/过滤?

我感谢你的时间和帮助。谢啦

共有1个答案

刘棋
2023-03-14

下面开始介绍如何在下单前在woocommerce\u itemmetahook上显示一些额外数据:

add_action( 'woocommerce_before_order_itemmeta', 'so_32457241_before_order_itemmeta', 10, 3 );
function so_32457241_before_order_itemmeta( $item_id, $item, $_product ){
    echo '<p>bacon</p>';
}

我不知道您是如何保存数据的,因此我无法给出更精确的建议。请记住,在挂接之后,任何保存为订单项元的内容都将自动显示。

过滤图像比较困难。我已经找到了这个要点作为开始,但是它需要一些自定义条件逻辑,因为您不想在任何地方过滤缩略图,而只是在订单中。

编辑:目前我能做的最好的过滤项目缩略图:

add_filter( 'get_post_metadata', 'so_32457241_order_thumbnail', 10, 4 );
function so_32457241_order_thumbnail( $value, $post_id, $meta_key, $single ) {
    // We want to pass the actual _thumbnail_id into the filter, so requires recursion
    static $is_recursing = false;
    // Only filter if we're not recursing and if it is a post thumbnail ID
    if ( ! $is_recursing && $meta_key === '_thumbnail_id' ) {
        $is_recursing = true; // prevent this conditional when get_post_thumbnail_id() is called
        $value = get_post_thumbnail_id( $post_id );
        $is_recursing = false;
        $value = apply_filters( 'post_thumbnail_id', $value, $post_id ); // yay!
        if ( ! $single ) {
            $value = array( $value );
        }
    }
    return $value;
}


add_filter( 'post_thumbnail_id', 'so_custom_order_item_thumbnail', 10, 2 );
function so_custom_order_item_thumbnail( $id, $post_id ){
    if( is_admin() ){
        $screen = get_current_screen();
        if( $screen->base == 'post' && $screen->post_type == 'shop_order' ){
            // this gets you the shop_order $post object
            global $post; 

            // no really *good* way to check post item, but could possibly save 
            // some kind of array in the order meta
            $id = 68;
        } 
    }
    return $id;
}
 类似资料:
  • 我正在使用一个自定义的结帐字段,在我的woocommerce商店的结帐页面上为我的客户提供一个“发送到业务地址”选项。大部分代码工作正常,但我无法显示他们是否选中了后端管理订单详细信息中的复选框。 我已经添加了一个自定义结账字段到我的WooCommerce商店,并将数据保存到订单元: 这里是我试图在管理命令部分显示这些数据的地方。我已经尽可能地关注了前面关于这方面的话题,但没有任何效果。 这个问题

  • 我使用以下代码在WooCommerce管理订单详细信息页面的订单项表中显示自定义产品元: 它显示“前缀tempiconsegna”,这是自定义图元,如: 可在3天内提供 我的问题是,如果我改变了产品的可用性,它也改变了以前的订单。 当我更新产品的可用性时,如何在不改变的情况下显示订单时的值?

  • 问题内容: 在WooCommerce中,从以下代码行: 如何从订单ID获取WooCommerce订单详细信息? 问题答案: 3.0版以上的WOOCOMMERCE订单 自Woocommerce大型主要更新3.0+以来,事情已经发生了很多变化: 对于 对象,无法像以前一样直接访问属性,并且会引发一些错误。 现在,对象实例需要使用new 以及 getter和setter方法。 此外,还有一些用于订购商品

  • 上次WooCommerce更新后,订单详细信息不再显示在感谢页面上。从那时起,我使用WooCommerce Storefront主题开发了一个儿童主题。不管我做了什么,我看到的只是感谢页面上的“谢谢”信息。 到目前为止我所尝试的: > 对整个进程进行故障排除,以查找任何可能出错的问题。这包括以下内容: 检查了调用order-details模板和it相关操作挂钩的wc模板函数(均存在) 确保我的Ch

  • 我正在Laravel4上使用lib PayPal PHP SDK 我对显示订单细节有意见。我按照贝宝网络结账的步骤操作,它没有向我显示订单细节。 这是当我得到支付链接的方法:

  • 对于Woocommerce分组产品,我使用以下代码在购物车和结帐页面中显示父产品名称: 代码来源于此:将父产品名称添加到WooCommerce中的每个购物车项目名称中 现在,我想在订单详细信息和后端也显示此父产品名称。 我将感谢任何对此的帮助。