通过 "woocommerce_order_get_formatted_billing_address" 过滤器挂钩获取元数据

Get meta data via "woocommerce_order_get_formatted_billing_address" filter hook

我正在尝试将自定义 post 元字段 billing_company_id 应用到 订单格式化账单地址 ,并将其放在账单公司下方。

通过以下代码我可以应用一个字符串,但是如何从订单中获取自定义 post 元数据?

add_action( 'woocommerce_order_get_formatted_billing_address', 'company_billing_id', 20, 1 );
function company_billing_id($address){
    $address .= 'Custom field string'; 
    return $address;
}

woocommerce_order_get_formatted_billing_address 过滤器挂钩包含的参数不是 1 个,而是 3 个。

通过 3rd 你可以访问 $order 对象,所以你可以使用类似的东西:

/**
 * Filter orders formatterd billing address.
 *
 * @since 3.8.0
 * @param string   $address     Formatted billing address string.
 * @param array    $raw_address Raw billing address.
 * @param WC_Order $order       Order data. @since 3.9.0
 */
function filter_woocommerce_order_get_formatted_billing_address( $address, $raw_address, $order ) {
    // Get meta
    $value = $order->get_meta( 'billing_company_id' );

    // NOT empty
    if ( ! empty ( $value ) ) {
        // Append
        $address .= $value;
    }

    return $address;
}
add_filter( 'woocommerce_order_get_formatted_billing_address', 'filter_woocommerce_order_get_formatted_billing_address', 10, 3 );