javascript - Wordpress如何向现有输入框插入值?
问题描述
我需要自动插入登录用户username
和email
现有输入。
我尝试了以下代码,但它没有在输入中插入值。我测试了 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
您所做的方式将变量传递给页面并不是一个好习惯,但您代码中的要点是,无论何时您想使用jQuery
in wordpress
,都需要明确告诉wordpress
您需要$
from jQuery
。所以我会说,改为运行以下代码段。
这不是将
php
变量传递给页面的好习惯,也不是注入页面的正确方法javascript
。不建议在生产中使用它!而是将其视为一个学习机会,然后去了解wp_localize_script
和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 }
测试和工作!
推荐阅读
- c# - AngleSharp“iconfiguration 不包含 WithRequesters 的定义”
- spring - Spring @Secured 和 @PreAuthorize 不能正常工作(总是状态 403)
- python-3.x - Bool 值可以是元组的倍数吗
- visual-studio-code - VS Code IDE 英文版,带中文注释
- css - 向右移动单选按钮
- php - 使用 simple.html.dom 抓取并将结果放入数组中
- php - SQL查询与或之间
- git - Windows 批处理文件 - 启动 git bash 并运行 git 命令
- python - 用于在hadoop中转换表的Python代码
- perf - 在 perf sched 延迟中,Task 到底是什么?