2013-10-31 74 views
2

我有一個WP網站,其中我向客戶發送一封電子郵件,鏈接到/我的引號/本的話,具有下面的代碼:預填充WP-login.php中的用戶名

<? 
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填充登錄字段的位置,任何人都可以提供解決方案建議?

在此先感謝。

回答

3

您應該通過掛接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> 
+0

非常感謝!我必須編輯URL並將代碼更改爲&myusername =,因爲它還包含URl字符串中的redirecturl。 –

+0

另一個問題我已經是: 'code' <?PHP /* 模板名稱:我的報價清單 */ ?> <? 如果(is_user_logged_in()!):> &名爲myUsername =用戶名」> <? php get_header(); ?> '代碼' 頁面似乎加載然後這個重新指揮執行,有沒有辦法重定向之前,頁面呈現給用戶? –

+0

我的另一個問題是:code <?php/* Template Name:My Quotes List * /?><? if(!is_user_logged_in()):?>&myusername = username」><?php get_header ; ?>代碼頁面似乎加載然後重新執行直接執行,有沒有辦法在頁面呈現給用戶之前重定向? –