Wordpress 如何向现有输入框插入值?

Wordpress how to insert value to an existing input box?

我需要在现有输入中自动插入登录用户的 usernameemail

我尝试了以下代码,但它没有在输入中插入值。我测试了 echo $username 和 $user_email,它显示了正确的用户信息)。

你能告诉我如何解决这个问题吗?

已有输入码(YITH插件创建):

<from id="yith-ywraq-default-form">
     <input type="text" class="input-text " name="first_name" id="first_name" placeholder="" value="">
     <input type="email" class="input-text " name="email" id="email" placeholder="" value="">
</form>


我试过的代码:

$autofillNameEmail = <<<EOD
<script>
    (function thisFunction() { 
$("input[name=first_name]").val(Print($username););
$("input[name=email]").val(Print($user_email););
     })();
</script>
EOD;

$user = wp_get_current_user();
$username = $user->user_login;
$user_email = $user->user_email;

if( $user->ID ) {
echo $autofillNameEmail;
}

谢谢。

我最初的想法是您代码的 javascript 部分。虽然以您所做的方式将 php 变量传递给页面不是一个好的做法,但是代码中的要点是每当您想在 wordpress 中使用 jQuery 时,您需要明确告诉 wordpress 你需要 jQuery$。所以我会说,运行 以下片段代替。

This is NOT a good practice to pass php variables to a page nor the correct way to inject javascript to a page. It is NOT recommended to use this in production! Instead consider it as a learning opportunity and go learn about wp_localize_script and wp_enqueue_script.

global $current_user;

$user_name = $current_user->user_login;
$user_email = $current_user->user_email;

if ($current_user->ID) { ?>
  <script>
    jQuery(document).ready($ => {
      let userName = "<?php echo $user_name ?>";
      let userEmail = "<?php echo $user_email ?>";
      $("input[name=first_name]").val(userName);
      $("input[name=email]").val(userEmail);
    });
  </script>
<?php }

经过测试并且有效!