WooCommerce セットアップ内にいくつかのカスタム フィールドがありますが、それらを注文ビューに表示しようとしています。
これは私のコードです(それのための1つのカスタムフィールド):
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 の両方を試しましたが、どうやら余分な _ が必要だったようです。ここから答えを得ました:
データベース内を調べようとしましたが、どこにも表示されている注文に関する追加の詳細を見つけることができません (注文 ID 以外の通常の詳細もありません)。
私が間違っていることと、注文ビューにフィールドを表示させるために何ができるか教えてもらえますか?
ありがとう