Php 如何从订单中获取自定义字段值

Php 如何从订单中获取自定义字段值,php,wordpress,woocommerce,metadata,orders,Php,Wordpress,Woocommerce,Metadata,Orders,我检查了类似的问题,但无法解决问题 这是我目前的代码: // Add VAT and SSN fields in billing address display add_filter( 'woocommerce_order_formatted_billing_address', 'custom_add_vergi_dairesi_vergi_no_formatted_billing_address', 10, 2 ); function custom_add_vergi_dairesi_verg

我检查了类似的问题,但无法解决问题

这是我目前的代码:

// Add VAT and SSN fields in billing address display
add_filter( 'woocommerce_order_formatted_billing_address', 'custom_add_vergi_dairesi_vergi_no_formatted_billing_address', 10, 2 );
function custom_add_vergi_dairesi_vergi_no_formatted_billing_address( $fields, $order ) {
    $fields['vergi_dairesi'] = $order->billing_vergi_dairesi;
    $fields['vergi_no'] = $order->billing_vergi_no;

    return $fields;
}
它给了我这个错误:“billing_vergi_dairesi被错误地调用。订单属性不应该被直接访问”

所以我更换了
$order->billing\u vergi\u dairesi
$order->账单号使用
$order->get_billing_vergi_dairesi()
$order->get_billing_vergi_no()然后我得到:“未捕获错误:调用未定义的方法”


我做错了什么?

自从WooCommerce 3以来,您需要使用
WC\u Data
方法
get\u meta()
和正确的元键从WC\u Order对象获取自定义字段值,如:

//在账单地址显示中添加VAT和SSN字段
添加过滤器(“woocommerce\u order\u formatted\u billing\u address”、“custom\u add\u vergi\u dairesi\u vergi\u no\u formatted\u billing\u address”,10,2);
函数自定义\添加\发送\发送\发送\无格式\计费\地址($fields,$order){
$fields['vergi_dairesi']=$order->get_meta('billing_vergi_dairesi');
$fields['vergi_no']=$order->get_meta('billing_vergi_no');
返回$fields;
}
或者可能以下划线开头,例如:

//在账单地址显示中添加VAT和SSN字段
添加过滤器(“woocommerce\u order\u formatted\u billing\u address”、“custom\u add\u vergi\u dairesi\u vergi\u no\u formatted\u billing\u address”,10,2);
函数自定义\添加\发送\发送\发送\无格式\计费\地址($fields,$order){
$fields['vergi_dairesi']=$order->get_meta(“'u billing_vergi_dairesi');
$fields['vergi_no']=$order->get_meta(“'u billing_vergi_no');
返回$fields;
}
它应该有效

wp\u postmeta
表中签入
billing\u vergi\u dairesi
billing\u vergi\u no
是正确的元键

见: