Перестало сохраняться поле фамилия
add_action( 'user_register', 'user_registration_save', 10, 1 );
function user_registration_save( $user_id ) {
//if ( isset( $_POST['last_name'] ) ) { // фамилия
update_user_meta($user_id, 'billing_last_name', $_POST['last_name']);
update_user_meta($user_id, 'last_name', $_POST['last_name']);
//}
if ( isset( $_POST['first_name'] ) ) { // имя
update_user_meta($user_id, 'billing_first_name', $_POST['first_name']);
update_user_meta($user_id, 'first_name', $_POST['first_name']);
}
if ( isset( $_POST['billing_phone'] ) ) { // телефон
update_user_meta($user_id, 'billing_phone', $_POST['billing_phone']);
}
if ( isset( $_POST['email'] ) ) { // мейл
update_user_meta($user_id, 'user_email', $_POST['email']);
update_user_meta($user_id, 'billing_email', $_POST['email']);
}
wp_update_user( array( 'ID' => $user_id, 'role' => 'Клиент' ) );
}
сама форма
<form method="post" action="<?php bloginfo('url'); ?>/my-account/" class="register">
<input type="text" name="username" id="username" placeholder="Логин" value="" size="40" required>
<?php if ( 'no' === get_option( 'woocommerce_registration_generate_password' ) ) : ?>
<input type="password" name="password" id="reg_password" size="40" placeholder="Пароль" required>
<?php endif; ?>
<input type="email" name="email" id="email" value="" placeholder="eMail" size="40" required>
<input type="text" name="last_name" id="last_name" value="" placeholder="Фамилия" size="40">
<input type="text" name="first_name" id="first_name" value="" placeholder="Имя" size="40" required>
<input type="text" name="billing_phone" id="billing_phone" value="" placeholder="Телефон" size="40" required>
<?php wp_nonce_field( 'woocommerce-register' ); ?>
<input value="Зарегистрироваться" name="register" class="login-submit" type="submit">
</form>
Все поля кроме фамилии записываются нормально
Похожим кодом изменяю поля при редактировании профиля и там всё работает а тут внезапно не хочет.
Если сделать так
add_action( 'user_register', 'user_registration_save', 10, 1 );
function user_registration_save( $user_id ) {
if ( isset( $_POST['first_name'] ) ) { // имя
update_user_meta($user_id, 'billing_first_name', $_POST['first_name']);
update_user_meta($user_id, 'first_name', $_POST['first_name']);
}
if ( isset( $_POST['billing_phone'] ) ) { // телефон
update_user_meta($user_id, 'billing_phone', $_POST['billing_phone']);
}
if ( isset( $_POST['email'] ) ) { // мейл
update_user_meta($user_id, 'user_email', $_POST['email']);
update_user_meta($user_id, 'billing_email', $_POST['email']);
}
wp_update_user( array( 'ID' => $user_id, 'role' => 'Клиент' ) );
if ( isset( $_POST['first_name'] ) ) { // фамилия
update_user_meta($user_id, 'billing_last_name', $_POST['last_name']);
return update_user_meta($user_id, 'last_name', $_POST['last_name']);
}
}
то есть при добавление в последнюю строку return то вроде как сохраняет но я не знаю что дальше делает вордпресс и по поэтому возможно какие-то данные не записываются?