В WooCommerce при оформлении заказа я могу создавать или обновлять всю пользовательскую и платежную информацию при оформлении заказа.Однако я хочу установить / обновить пользовательское «отображаемое имя» (псевдоним) .
Таким образом, основываясь на " Захватить значение поля пользовательского извлечения в Woocommerce " код ответа, я добавил следующий код в файл functions.php моей активной темы:
// Display a custom checkout field
add_action( 'woocommerce_before_checkout_billing_form', 'my_custom_checkout_field' );
function my_custom_checkout_field( $checkout ) {
echo '<div id="my_custom_checkout_field">';
woocommerce_form_field( 'display_name', array(
'type' => 'text',
'class' => array('my-custom-field form-row-wide'),
'label' => __('Alias'),
'placeholder' => __('Nickname to show in my account and comments'),
'required' => true,
), $checkout->get_value( 'display_name' ));
echo '</div>';
}
// Save the custom checkout field in the order meta
add_action( 'woocommerce_checkout_update_user_meta', 'save_order_custom_meta_data', 10, 2 );
function save_order_custom_meta_data( ) {
if ( isset($_POST['display_name']) )
$user->update_meta_data('display_name', sanitize_text_field( $_POST['display_name'] ) );
}
Но это не работает, так как я получаю сообщение «Внутренняя ошибка сервера».
Любая помощь, чтобы решить эту проблему будет оценена.