如何从 WooCommerce 订单中获取自定义字段值
How to get custom fields values from WooCommerce 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_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->get_billing_vergi_dairesi();
和 $order->get_billing_vergi_no();
替换了 $order->billing_vergi_dairesi;
和 $order->billing_vergi_no;
然后我得到: “未捕获的错误:调用未定义的方法”。 =27=].
我做错了什么?
从 WooCommerce 3 开始,您需要使用 WC_Data
方法 get_meta()
和正确的元键从 WC_Order 对象中获取自定义字段值,例如:
// 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->get_meta('billing_vergi_dairesi');
$fields['vergi_no'] = $order->get_meta('billing_vergi_no');
return $fields;
}
或者可以以下划线开头,例如:
// 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->get_meta('_billing_vergi_dairesi');
$fields['vergi_no'] = $order->get_meta('_billing_vergi_no');
return $fields;
}
应该可以。
Check in wp_postmeta
table that billing_vergi_dairesi
and billing_vergi_no
are the correct meta keys.
参见:
我已经检查过类似的问题,但无法解决问题。
到目前为止,这是我的代码:
// 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->get_billing_vergi_dairesi();
和 $order->get_billing_vergi_no();
替换了 $order->billing_vergi_dairesi;
和 $order->billing_vergi_no;
然后我得到: “未捕获的错误:调用未定义的方法”。 =27=].
我做错了什么?
从 WooCommerce 3 开始,您需要使用 WC_Data
方法 get_meta()
和正确的元键从 WC_Order 对象中获取自定义字段值,例如:
// 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->get_meta('billing_vergi_dairesi');
$fields['vergi_no'] = $order->get_meta('billing_vergi_no');
return $fields;
}
或者可以以下划线开头,例如:
// 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->get_meta('_billing_vergi_dairesi');
$fields['vergi_no'] = $order->get_meta('_billing_vergi_no');
return $fields;
}
应该可以。
Check in
wp_postmeta
table thatbilling_vergi_dairesi
andbilling_vergi_no
are the correct meta keys.
参见: