2012-10-30 62 views
2

我需要将当前登录的WordPress 3.2.4用户的显示名称传递给PhpFreeChat 2.0.4。实现这一目标的途径似乎是通过使用PhpFreeChat钩子功能为WordPress用户提供当前用户名。将登录WordPress用户传递给phpfreechat

在我PhpFreeChat config.local.php我:

<?php 
    $GLOBALS['pfc_hooks']['pfc.before.auth'][5] = function ($app, $req, $res) { 
    return function ($hr) use ($app, $req, $res) { 
     $username = ""; 
     foreach($_COOKIE as $key => $value) { 
      if(preg_match('@^[email protected]', $key)) { 
       $cookie = explode('|', $_COOKIE[$key]); 
       $username = $cookie[0]; 
      } 
     } 
     $hr->login = $username; 
     }; 
}; 

从我已阅读,这应该传递的用户名当前登录的WordPress用户当它推出PhpFreeChat。

这似乎不工作,因为没有用户名显示在聊天中。

如果我用cookie解析代码创建一个.php页面,它确实给我一个值。

任何人都可以提出任何其他方法?有没有办法从WordPress模板中将用户名传递给PhpFreeChat?

回答

1

该代码实际上只是缺少一个右括号)。

代码本身工作正常。我会在这里留下问题,因为它可能对其他人有用。

2

由于phpfreechat-2.0.5,该pfc.before.auth钩被重构,所以你必须去适应你的代码一样,(注意return $username末):

<?php 
    $GLOBALS['pfc_hooks']['pfc.before.auth'][5] = function ($app, $req, $res) { 
    return function() use ($app, $req, $res) { 
     $username = ''; 
     foreach ($_COOKIE as $key => $value) { 
     if (preg_match('@^[email protected]', $key)) { 
      $cookie = explode('|', $_COOKIE[$key]); 
      $username = $cookie[0]; 
     } 
     } 
     return $username; 
    }; 
    }; 
相关问题