Woocommerce - Добавьте настраиваемое поле оформления заказа в адрес электронной почты нового аккаунта клиента

Я пытаюсь отобразить настраиваемое поле «billing_gender», которое я добавил в свою форму оформления заказа, в электронном письме с уведомлением о новой учетной записи клиента.

Поле правильно сохранено в базе данных, но отображается пустым в электронном письме новой учетной записи.

Другие мета-поля пользователя (телефон, ...) работают, но не мое настраиваемое поле проверки.

Я предполагаю, что он сохраняется до конца метаинформации пользователя, но я действительно не могу понять это:

Вот мой код:

functions.php

add_filter( 'woocommerce_checkout_fields' , 'divi_override_checkout_fields' );

function divi_override_checkout_fields( $fields ) {

unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_country']);

// Custom gender field
$fields['billing']['billing_gender'] = array(
    'type'     => 'select',
    'class'    => array( 'form-row-wide' ),
    'label'    => __( 'Title', 'divi-ultimate'),
    'required' => true,
    'priority' => 3,
    'options'  => array(
        ''           => __( 'Select title', 'divi-ultimate' ),
        'male'       => __( 'Mr', 'divi-ultimate' ),
        'female'     => __( 'Mrs', 'divi-ultimate' )
    ),
);

return $fields;
}

// Gender select default value

add_filter( 'default_checkout_billing_gender', 'checkout_billing_gender',10,2 );

 function checkout_billing_gender($value) {
if ( is_user_logged_in()){
    $current_user = wp_get_current_user();
    $value = get_user_meta( $current_user->ID, 'billing_gender', true );
}
return $value;
}


//* Update the order meta with fields values

 add_action('woocommerce_checkout_update_order_meta', 'divi_select_checkout_field_update_order_meta', 10, 2);

 function divi_select_checkout_field_update_order_meta( $order_id ) {

if ($_POST['delivery-shop']) update_post_meta( $order_id, 'delivery-shop', esc_attr($_POST['delivery-shop']));
if ($_POST['billing_gender']) update_post_meta( $order_id, 'billing_gender', esc_attr($_POST['billing_gender']));

 }

 //* Update the user meta with gender value

add_action( 'woocommerce_checkout_update_user_meta', 'divi_save_extra_user_fields', 10, 2 );

 function divi_save_extra_user_fields($customer_id) {
 if (isset($_POST['billing_gender'])) {
     update_user_meta( $customer_id, 'billing_gender',  esc_attr($_POST['billing_gender']) );
 }
 }

Что я делаю неправильно ?

Ваше здоровье.


person Mister PO    schedule 10.12.2018    source источник