首页 > 解决方案 > Wordpress如何向现有输入框插入值?

问题描述

我需要自动插入登录用户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;
}

谢谢你。

标签: javascriptphpwordpresswordpress-themingcustom-wordpress-pages

解决方案


我最初的想法是javascript您的代码的一部分。尽管以php您所做的方式将变量传递给页面并不是一个好习惯,但您代码中的要点是,无论何时您想使用jQueryin wordpress,都需要明确告诉wordpress您需要$from jQuery。所以我会说,改为运行以下代码段。

这不是将php变量传递给页面的好​​习惯,也不是注入页面的正确方法javascript。不建议在生产中使用它!而是将其视为一个学习机会,然后去了解wp_localize_scriptwp_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 }

测试和工作!


推荐阅读