>我有一个WP网站,我向客户发送一封电子邮件,其中包含指向/my-quotes/的链接,然后具有以下代码:
<?
if (!is_user_logged_in()): ?>
<meta http-equiv="refresh" content="0;URL=<? echo wp_login_url(get_permalink()); ?>">
<? endif; ?>
我想做的是,在电子邮件中提供链接,例如:/my-quotes/?login=myusername
并且"myusername"是登录字段值,用于保存用户重新键入它。
我已经在 wp-login 中看了一下.php但无法确定使用 $_GET 填充登录字段的位置,任何人都可以就解决方案提供建议吗?
提前谢谢。
您应该
通过挂钩到login_form
操作来完成此操作,而不是修改wp-login.php,这将在下次更新时被覆盖。
您可以将此代码添加到主题的functions.php
文件中:
// As part of WP login form construction, call our function
add_filter ( 'login_form', 'login_form_prepop' );
function login_form_prepop(){
// Output jQuery to pre-fill the box
if ( isset( $_REQUEST['myusername'] ) ) { // Make sure a username was passed
?>
<!-- Small jQuery script to set the value of the input field to your variable -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready( function(){
$("#user_login").val( '<?php echo( $_REQUEST['myusername'] ); ?>' );
});
</script>
<?php
}
}
然后更新代码以包含变量:
<?
if (!is_user_logged_in()): ?>
<meta http-equiv="refresh" content="0;URL=<? echo wp_login_url(get_permalink()); ?>?myusername=username">
<? endif; ?>
如果 jQuery 占用空间太多,你可以用 JavaScript 实现相同的目标:
<script type="text/javascript">
var el = document.getElementById("user_login");
el.value = "<?php echo( $_REQUEST['myusername'] ); ?>";
</script>