在WooCommerce快速订单预览中显示自定义字段

时间:2019-09-08 23:41:07

标签: php wordpress woocommerce metadata orders

在WooCommerce管理员订单列表中,单击“眼睛图标”可快速预览订单信息。

我添加了自定义帐单结帐字段,但是这些字段未显示在此快速预览中,而是在帐单明细下显示为“ N / A”:

photo

但是,当选择编辑顺序页面时,我可以看到它们。

如何在快速预览中显示计费自定义字段?

1 个答案:

答案 0 :(得分:1)

在下面的代码中,您必须为每个结算自定义字段设置正确的元密钥。它将在“结算”部分下的快速订单预览中显示您的结算自定义字段:

add_filter( 'woocommerce_admin_order_preview_get_order_details', 'admin_order_preview_add_custom_billing_data', 10, 2 );
function admin_order_preview_add_custom_billing_data( $data, $order ) {
    $custom_billing_data = []; // initializing

    // Custom field 1: Replace '_custom_meta_key1' by the correct custom field metakey
    if( $custom_value1 = $order->get_meta('_custom_meta_key1') ) {
        $custom_billing_data[] = $custom_value1;
    }

    // Custom field 2: Replace '_custom_meta_key1' by the correct custom field metakey
    if( $custom_value2 = $order->get_meta('_custom_meta_key1') ) {
        $custom_billing_data[] = $custom_value2;
    }

    ## ……… And so on (for each additional custom field).

    // Check that our custom fields array is not empty
    if( count($custom_billing_data) > 0 ) {
        // Converting the array in a formatted string
        $formatted_custom_billing_data = implode( '<br>', $custom_billing_data );

        if( $data['formatted_billing_address'] === __( 'N/A', 'woocommerce' ) ) {
            $data['formatted_billing_address'] = $formatted_custom_billing_data;
        } else {
            $data['formatted_billing_address'] .= '<br>' . $formatted_custom_billing_data;
        }
    }

    return $data;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。

相关:Display custom data on Woocommerce admin order preview