Ответы пользователя по тегу MySQL
  • Почему не обновляет метаданные пользователя через форму на сайте?

    V_A_B
    @V_A_B
    ¯\_(ツ)_/¯
    1. не работает update_user_meta т.к. в строке выше ошибка - нету символа конца строки (точка с запятой)
    2. обновление по Вашей логике происходит после вывода на экран формы. (update_user_meta после тага form). а это значит, что если изначально мета пустое, то и поле будет пустое. что бы данные появились надо после внесения изменений обновить страницу, но у Вас проблема из первого пункта. Если мета изначально не пустое, то после отправки новых данных будет отображаться старое значение пока не обновите страницу.... лучше обрабатывать данные перед тегом form

    что-то по типу


    проверил - работает

    function update_basic_user_meta(){
    		global $current_user;
    		$communication_meta=!empty($_POST['communication_email'])?$_POST['communication_email']:'';
    		if(!empty($communication_meta)){update_user_meta($current_user->ID,'communication_email',sanitize_text_field($communication_meta));}
    		$communication_email=get_user_meta($current_user->ID,'communication_email',true);?>
    <form action="" method="POST" class="">
        <input type="text" id="communicationEmail" name="communication_email" class="" value="<?php echo !empty($communication_email)?$communication_email:''; ?>">
        <button class="" type="submit">Сохранять</button>
    </form><?php }
    update_basic_user_meta();

    Ответ написан