将 ACF 用户数据作为元数据添加到 Woocommerce 订单

问题描述 投票:0回答:1

对于本地交付,我们已向用户添加了路线编号和位置,因此我们可以计算本地交付的最佳路线。在 Woocommerce 中,我们使用 Advanced Order Export Pro 根据运输方式创建订单导出。

默认情况下,自定义字段不会返回到订单详细信息中,因此我们正在寻找一种解决方案,根据电子邮件地址(或其他内容)将路线编号和位置添加到订单详细信息中。

应将用户级别的自定义字段添加到订单详细信息中

有人知道我们该如何解决这个问题吗?

我们在互联网上进行了搜索,认为我们可以通过像 Checkout 字段编辑器这样的插件来解决这个问题,添加这些字段并使它们在前端不可见。但我正在寻找一些代码放入functions.php中。

php woocommerce advanced-custom-fields orders usermetadata
1个回答
0
投票

使用以下命令将 ACF 用户自定义数据作为自定义订单元数据添加到订单中:

// When order is placed in checkout, add ACF user fields as custom order meta data
add_action( 'woocommerce_checkout_create_order', 'add_order_total_weight_metadata' );
function add_order_total_weight_metadata( $order ) {
    if ( $user_id = get_current_user_id() ) {
        if( $route_number = get_field("routenumber", "user_{$user_id}" ) ) {
            $order->add_meta_data('route_number', $route_number);
        }

        if( $route_location = get_field("routelocatie", "user_{$user_id}" ) ) {
            $order->add_meta_data('route_location', $route_location);
        }
    }
}

代码位于子主题的functions.php 文件中(或插件中)。应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.