我的WooCommerce设置中有一些自定义字段,但我想让它们显示在订单视图中。
这是我的代码(为了它而一个自定义字段):
add_action('woocommerce_after_order_notes', 'my_custom_checkout_field');
function my_custom_checkout_field( $checkout ) {
echo '<div id="my_custom_checkout_field"><h3>'.__('Extra Information').'</h3>';
woocommerce_form_field( 'date_of_birth', array(
'type' => 'select',
'class' => array('my-field-class form-row-wide'),
'label' => __('Date of Birth'),
'placeholder' => __('Enter something'),
'required' => true,
'options' => array(
'1995' => __('1995', 'woocommerce' ),
'1994' => __('1994', 'woocommerce' )
)
),
$checkout->get_value( 'date_of_birth' ));
我认为下面的内容可以将它添加到订单视图中,但它没有...或者我完全错了,自定义字段没有保存?
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta');
function my_custom_checkout_field_update_order_meta( $order_id ) {
if ($_POST['date_of_birth']) update_post_meta( $order_id, 'Extra Information', esc_attr($_POST['date_of_birth']));
然后我查看了stackoverflow并找到了更多信息并试了一下:
function my_custom_checkout_field1($order){
echo "<p><strong>Date of Birth:</strong> " . $order->order_custom_fields['_date_of_birth'][0] . "</p>";
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field1', 10, 1 );
这确实在订单视图中添加了“出生日期:”,但不幸的是之后它是空的。我尝试了_date_of_birth和date_of_birth,显然它需要额外的_ infront,我从这里得到了答案:Show custom field on order in woocommerce
我试图查看数据库内部,但找不到任何地方显示的订单的额外详细信息(除了订单ID之外没有常规详细信息)。
任何人都可以告诉我我做错了什么以及如何让该字段显示在订单视图中?
由于
答案 0 :(得分:0)
我不知道,但是这个:
'Extra Information'
这里:
update_post_meta($post_id, $meta_key, $meta_value, $prev_value);
你确定'额外信息'是$ meta_key吗?不是“date_of_birth”吗?