首页 > 解决方案 > 如何在 Woocommerce 中添加多个用户元数据作为订单元数据

问题描述

我创建了两个自定义用户配置文件字段,我也将它们用作用户元数据。创建订单后,我需要将此信息保存为 Woocommerce 中的订单元数据。

我为每个实例创建了一个函数。

对于增值税号:

add_action( 'woocommerce_checkout_create_order', 'wwp_customer_meta_data', 10, 2 );
function wwp_customer_meta_data( $order, $data ) {
    $user_id  = $order->get_user_id(); // Get the user id
    $wwp_vat = get_user_meta( $user_id, 'wwp_wholesaler_tax_id', true );
    $order->update_meta_data( 'VAT Number', $wwp_vat );
}

对于我的会计软件中的公司编号:

add_action( 'woocommerce_checkout_create_order', 'visma_customer_meta_data', 10, 2 );
function visma_customer_meta_data( $order, $data ) {
    $user_id  = $order->get_user_id(); // Get the user id
    $billing_visma = get_user_meta( $user_id, 'billing_visma', true );
    $order->update_meta_data( 'Billing Visma', $billing_visma );
}

如何将这两个功能组合成一个功能?

我想学习如何更有效地创建代码。

标签: phpwordpresswoocommercemetadataorders

解决方案


你应该做这个:

add_action( 'woocommerce_checkout_create_order', 'add_customer_meta_data_to_order', 10, 2 );

function visma_customer_meta_data( $order, $data ) {

    $user_id  = $order->get_user_id(); // Get the user id

    $billing_visma = get_user_meta( $user_id, 'billing_visma', true );
    $order->update_meta_data( 'Billing Visma', $billing_visma );

    $wwp_vat = get_user_meta( $user_id, 'wwp_wholesaler_tax_id', true );
    $order->update_meta_data( 'VAT Number', $wwp_vat );

}

推荐阅读