将产品数据添加到WooCommerce管理员订单预览

时间:2020-11-05 20:25:00

标签: php wordpress woocommerce backend orders

我使用此代码在订单明细/编辑器中显示产品属性

    add_action( 'woocommerce_admin_order_item_headers', 'custom_admin_order_items_headers', 20, 1 );
    function custom_admin_order_items_headers( $order ){
        echo '<th>';
        echo __('Location', 'woocommerce') . '</th>';
    }

    add_action('woocommerce_admin_order_item_values', 'my_woocommerce_admin_order_item_values', 10, 3);
    function my_woocommerce_admin_order_item_values($product, $item, $item_id = null) {
        echo '<td>' . get_the_term_list( $product->get_id(), 'pa_location', '', ',', '' ) . '</td>';
    }

这似乎可行,但是管理面板中有一个错误:

致命错误:未捕获错误:调用成员函数get_id()为空

帮我弄清楚,我不明白为什么会这样。

1 个答案:

答案 0 :(得分:2)

为避免出现此问题,您只需将第二个函数上的订单“行”项定位为目标,就这样:

add_action('woocommerce_admin_order_item_values', 'my_woocommerce_admin_order_item_values', 10, 3);
function my_woocommerce_admin_order_item_values($product, $item, $item_id = null) {
    // Only for "line_item" items type, to avoid errors
    if( ! $item->is_type('line_item') ) return;
    
    echo '<td>' . get_the_term_list( $product->get_id(), 'pa_location', '', ',', '' ) . '</td>';
}

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

相关:Add product short description to Woocommerce admin orders preview