2016-10-12 1 views
0

まずは、これがStackOverflowに関する私の最初の質問だと言いたかったので、私はおそらく書いて間違いをするでしょうこの。

私はユーザーのログイン機能を備えたWordPressのWebサイトを手に入れました。私は基本的にサポート連絡フォームであるZendesk Web Widgetを通じてサポートを提供しています。 サポートフォームの[表示名&電子メール]フィールドに、現在ログインしているユーザー情報をあらかじめ入力しようとしています。

Throught私の研究、私はWordpressのは、すでにこのための機能を有することを見出した:get_currentuserinfo()、と私は私のfunctions.phpの子のテーマに本を追加することによって、JavaScriptにデータを渡すことができること:

function get_user($type = 'ID') 
{ 
    global $current_user; 
    get_currentuserinfo(); 

    switch ($type) 
    { 
      case 'ID': 
       return $current_user->ID; 
       break; 
      case 'displayname': 
       return $current_user->display_name; 
       break; 
      case 'username': 
       return $current_user->user_login; 
       break; 
      case 'firstname': 
       return $current_user->user_firstname; 
       break; 
      case 'lastname': 
       return $current_user->user_lastname; 
       break; 
      case 'level': 
       return $current_user->user_level; 
       break; 
      case 'email': 
       return $current_user->user_email; 
       break; 
      default: 
       return; 
    } 
} 

そして、echo get_user('displayname');を使用して、javascriptで表示名を使用します。

出典:http://www.devdevote.com/cms/wordpress-hacks/get_user

だから私はそれにいくつかの試みをしたが、どれも働いていません。

試み1:私は、これらの試した

<script> 
    var $wpName = <?php echo get_user('displayname') ?>; 
    var $wpEmail = <?php echo get_user('email') ?>; 

    zE(function() { 
     zE.identify({ 
      name: $wpName, 
      email: $wpEmail 
     }); 

    }); 
</script> 

試み2:

<script> 
    zE(function() { 
     zE.identify({ 
      name: <?php echo get_user('displayname') ?>, 
      email: <?php echo get_user('email') ?> 
     }); 
    }); 
</script> 

試み3:

<script> 
    var $wpName = $current_user->user_firstname; 
    var $wpEmail = $current_user->user_email; 

    zE(function() { 
     zE.identify({ 
      name: <?php echo get_user('displayname') ?>, 
      email: <?php echo get_user('email') ?> 
     }); 
    }); 
</script> 

は誰もここを出ていアイデアや上だけの手掛かりを持っていますこれを行う方法? 私はこの仕事をしようと一日中苦労していましたが、その件に関して20〜30本のスレッドを読んでいましたが、誰も私のための実用的な解決策はありませんでした..

P.S.もう一度私はここに投稿して間違いをした場合、または私はよく私の質問を書いていない場合は、これは私の初めてです申し訳ありません!

答えて

0

PHPが私のjavascriptのコード内で処理されなかったので、どんなエコー文が障害となるため、エリックWestlundのおかげhere on StackOverflow

それは働いていなかった、私はこれを行うには良い方法を考え出し判明。 だから私は別のソリューションに自分自身をオンにする必要がありました:json_encode()

コードのちょうどこれらのいくつかの行が新しいページのテンプレートファイルに追加さそうで、私はそれを動作させることができました:

<?php global $current_user; 
get_currentuserinfo(); 
$user_name = $current_user->display_name; 
$user_email = $current_user->user_email; 
?> 

<script type="text/javascript"> 
var username = <?php echo json_encode($user_name) ?> ; 
var useremail = <?php echo json_encode($user_email) ?> ; 
</script> 

その後、私はちょうど私のjavascriptでこのように使用しなければならなかった:

これは将来的に誰かのために役立つことを望みます。

関連する問題