Конфликт php javascript в файле шаблона wordpress

Я создал контактную форму для своего сайта wordpress. Здесь четыре поля - имя, адрес электронной почты, тема, сообщение. Для пользователей, вошедших в систему, я хочу, чтобы их имя и адрес электронной почты автоматически заполнялись в соответствующих полях формы, и эти поля будут отключены для редактирования. А для не авторизованных пользователей они будут вводить поля имени, адреса электронной почты вручную. Я поместил этот код в файл шаблона страницы -

    <?php

    $current_user = wp_get_current_user();
    $user_email = $current_user->user_email;
    $user_name = $current_user->user_firstname.' '.$current_user>user_lastname;

    if ( 0 != $current_user->ID ) {

     echo '<script type = "text/javascript">
     document.getElementById("curUserName").value = "'.$user_name.'";
     document.getElementById("curUserName").disabled = "disabled";
     document.getElementById("curUserEmail").value = "'.$user_email.'";
     document.getElementById("curUserEmail").disabled = "disabled";
     </script>';
     }
     ?>

Но этот код отключает поля имени и электронной почты для обоих пользователей (вошедших в систему и не вошедших в систему). Я контролировал сценарий с помощью условия if. Тем не менее, javascript применяется для обоих пользователей. Посоветуйте, пожалуйста, где я ошибся.

Вот форма html -

    <form action = "/success.php" method = "post">
<label>Name :</label><br>
<input type = "text" id = "curUserName" name = "sender_name" required><br>
<label>Email :</label><br>
<input type = "text" id = "curUserEmail" name = "sender_email" required><br>
<label>Subject :</label><br>
<input type = "text" name = "sender_sub"><br>
<label>Message</label><br>
<textarea name = "sender_msg" rows = "4" cols = "60" required></textarea><br>
<input type = "submit" name = "submit" value = "Send">
</form>
document.getElementById("curUserName").disabled могут быть присвоены только значения, истинные или ложные. Назначая строку «disabled», вы присваиваете значение true, поэтому оно отключено. Вы упомянули условные предложения. Я не вижу операторов if в вашем js.
Jonathan M 22.03.2018 16:25

Я вкладываю javascript в условие php if.

Kiran 22.03.2018 16:32

Можете ли вы сделать var_dump ($ current_user); и дайте нам знать, что вы получите?

Cave Johnson 22.03.2018 16:40
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
66
2

Ответы 2

Не повторяйте javascript с помощью php. Это плохая практика.

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

<?php (is_user_logged_in()) ? $current_user = wp_get_current_user() : $current_user = false; ?>

<label>Name</label>
<input type = "text" id = "curUserName" name = "sender_name" value = "<?php ($current_user) ? echo $current_user->user_name : '' ?>" required>
<label>Email</label>
<input type = "text" id = "curUserEmail" name = "sender_email" value = "<?php ($current_user) ? echo $current_user->user_email : '' ?>" required>

У источника, который вы собираетесь изменить, уже отключена опция ... поэтому просто удалите ее, если пользователь не вошел в систему :)

<?php

    $current_user = wp_get_current_user();
    $user_email = $current_user->user_email;
    $user_name = $current_user->user_firstname.' '.$current_user>user_lastname;

    echo '<script type = "text/javascript">';
    if ( 0 != $current_user->ID )
    {

        echo 'document.getElementById("curUserName").value = "'.$user_name.'" 
        document.getElementById("curUserName").disabled = "disabled"
        document.getElementById("curUserEmail").value = "'.$user_email.'"
        document.getElementById("curUserEmail").disabled = "disabled"';
     }
     else
     {

        echo 'document.getElementById("curUserName").disabled = false;
        document.getElementById("curUserEmail").disabled = false;';         
     }
     echo '</script>';
 ?>

Другие вопросы по теме