2

最初に私の質問が少しずれているように思われる場合はご容赦ください。しかし、誰かが私を正しい方向に向けてくれるか、現在ログインしているすべての顧客をプログラムでオンラインにすることができるサンプルまたはコードを教えていただければ幸いです。

私はあなたが使うことができることをすでに知っています

Mage::getSingleton( 'customer/session' )->isLoggedIn()

現在のユーザーがログインしているかどうかを確認しますが、私が求めているのは、特定のユーザーをIDからチェックして、ログインしているかどうかを確認することです。

そして、あなたが見つけた場合に備えて、私はすでに同様の質問をmagentoフォーラムに投稿しましたが、少なくともこの投稿の時点まではまだ回答がありません。このリンク経由http://www.magentocommerce.com/boards/viewthread/300354/

どんな助けでも大歓迎です。前もって感謝します。

4

3 に答える 3

3

私があなたを正しく理解しているなら、あなたは現在ログインしているすべての顧客を知りたいです、このコード(からMage_Adminhtml_Block_Customer_Online_Grid)はそれをするべきです:

    $collection = Mage::getModel('log/visitor_online')
        ->prepare()
        ->getCollection();
    /* @var $collection Mage_Log_Model_Mysql4_Visitor_Online_Collection */
    $collection->addFieldToFilter('customer_id', array('notnull' => true))->addCustomerData();

特定のユーザーについてarray('notnull' => true)確認する場合は、この顧客のIDに置き換えてcount()、コレクションのが1であるかどうかを確認します。

于 2012-12-14T15:13:09.430 に答える
0

参照https://github.com/benmarks/magento-mirror/blob/1.7.0.2/app/code/core/Mage/Customer/Model/Session.php#L140

Mage::getSingleton( 'customer/session' )->getCustomerId();
于 2012-12-14T14:45:47.690 に答える
0

古い質問...とにかく、1人のユーザーがオンラインであるかどうかを確認する最良の方法は、のコードからインスピレーションを得ることだと思いますapp/core/Mage/Adminhtml/Block/Customer/Edit/Tab/View.php。次の行は、このファイルのさまざまな部分から抜粋したものです。Mage_Log_Model_Customer基本的に、とMage_Log_Model_Visitorモデルを利用して、ログアウトと最終訪問時間をチェックします。

$id = "<CUSTOMER_ID>";
// Here make your tests about the ID, if the user exists, etc...
$customerLog = Mage::getModel('log/customer')->loadByCustomer($id);
return !($customerLog->getLogoutAt() ||
    strtotime(now())-strtotime($customerLog->getLastVisitAt())>Mage_Log_Model_Visitor::getOnlineMinutesInterval()*60);
于 2016-12-01T18:49:05.210 に答える