Я знаю, что есть и другие похожие вопросы, но ошибка вызвана разными причинами с другим решением.
У меня есть файл шаблона формы регистрации Wordpress, который отлично работает с этой строкой, номер телефона фиксируется и отправляется в профиль клиента / БД:
<input type = "text" name = "user_phone" id = "user_phone" class = "input" placeholder = "<?php _e('Telefon', ET_DOMAIN);?>" value = "<?php echo esc_attr( stripslashes( $user_phone ) ); ?>" tabindex = "25"></div>
Я попытался использовать ту же строку в форме социальной регистрации, чтобы клиент мог поделиться номером телефона, но номер телефона сохранен в профиле БД / клиента. Это ошибка файла отладки:
Undefined index: user_phone in /home/admin/public_html/mysite.net/wp-content/plugins/sms-verification/sms-verification.php on line 333
sms-verify.php - это файл плагина,
Это строка 333 из ошибки отладки:
$phone = $_POST['user_phone'];
Контекст функции в строке выше:
function user_register( $user_id ) {
$enabled = wedevs_sms_get_option( 'register_form' );
$phone = $_POST['user_phone'];
if ( $enabled == 'on' ) {
$gateway_obj = WeDevs_SMS_Gateways::instance();
$status = $gateway_obj->send( $phone );
update_user_meta( $user_id, 'sms_registered', 'yes' );
update_user_meta( $user_id, 'wedevssms_mobile', $phone );
update_user_meta( $user_id, 'sms_verified', 0 );
//if sms sent successfully, update the code
//else, insert a random code to the profile
if ( $status['success'] == true ) {
update_user_meta( $user_id, 'wedevssms_referenceno', $status['code'] );
} else {
update_user_meta( $user_id, 'wedevssms_referenceno', rand( 1000, 9999 ) );
}
}
}
форма социальной регистрации:
<form id = "form_username" method = "post" action = "">
<div class = "fre-input-field">
<input type = "hidden" name = "et_nonce" value = "<?php echo wp_create_nonce( 'authentication' ) ?>">
<input type = "text" name = "user_phone" id = "user_phone" class = "input" placeholder = "<?php _e('Telefon', ET_DOMAIN);?>" value = "<?php echo esc_attr( stripslashes( $user_phone ) ); ?>" tabindex = "25">
<input type = "hidden" name = "user_email" value = "<?php if ( isset( $auth['user_email'] ) ) {
echo $auth['user_email'];
} ?>">
<input type = "text" name = "user_login"
value = "<?php echo isset( $auth['user_login'] ) ? $auth['user_login'] : "" ?>"
placeholder = "<?php _e( 'Username', ET_DOMAIN ) ?>">
</div>
<?php
$role_default = ae_get_social_login_user_roles_default();
$social_user_roles = ae_get_option( 'social_user_role', false );
if ( ! $social_user_roles ) {
$social_user_roles = ae_get_social_login_user_roles_default();
}
if ( $social_user_roles && count( $social_user_roles ) >= 1 ) { ?>
<div class = "fre-input-field">
<select name = "user_role" id = "user_role" class = "fre-chosen-single">
<option selected disabled value = ""><?php _e('Choose your role',ET_DOMAIN);?></option>
<?php foreach ( $social_user_roles as $key => $value ) { ?>
<option value = "<?php echo $key ?>"><?php echo $role_default[ $value ]; ?></option>
<?php } ?>
</select>
</div>
<?php } ?>
<div class = "fre-input-field">
<input type = "submit" class = "fre-submit-btn btn-submit" value = "<?php _e( 'Sign Up', ET_DOMAIN ); ?>">
</div>
</form>
Как исправить мой код, чтобы заработало?
Используя method = "POST", я обновил вопрос с полной формой социальной регистрации.
Я проверил форму веб-сайта, и в ней отображается правильный ввод с правильным именем и идентификатором user_phone. Я добавил строку, которую вы сказали о функции user_register (), при отправке формы я получаю сообщение об ошибке на странице «Не определено», но отправка идет и сохраняет данные в БД без номера телефона, конечно ..






user_phoneне существует в вашем$_POST. Это может быть вызвано отсутствием элемента формы сname = "user_phone", если он назначен, то он мог быть отключен перед отправкой, если он не отключен, убедитесь, что ваша форма используетmethod = "POST", если вы используетеmethod = "POST", убедитесь, что элемент формы фактически находится внутри тега<form>, или вы совершенно не понимаете, какой файл создает HTML-форму, а какой файл ее обрабатывает.