質問
製品ビューページをカスタマイズしていますが、ユーザーの名前を表示する必要があります。 現在のユーザー(ログインしている場合)のアカウント情報にアクセスして名前などを取得するにはどうすればよいですか?
解決
<!> quot; app / code / core / Mage / Page / Block / Html / Header.php <!> quot;:
にありますpublic function getWelcome()
{
if (empty($this->_data['welcome'])) {
if (Mage::app()->isInstalled() && Mage::getSingleton('customer/session')->isLoggedIn()) {
$this->_data['welcome'] = $this->__('Welcome, %s!', Mage::getSingleton('customer/session')->getCustomer()->getName());
} else {
$this->_data['welcome'] = Mage::getStoreConfig('design/header/welcome');
}
}
return $this->_data['welcome'];
}
つまり、Mage::getSingleton('customer/session')->getCustomer()
は現在ログインしている顧客を取得するように見えます;)
現在ログインしている管理者を取得するには:
Mage::getSingleton('admin/session')->getUser();
他のヒント
ヘルパークラスをご覧ください: Mage_Customer_Helper_Data
単に顧客名を取得するには、次のコードを記述できます。-
$customerName = Mage::helper('customer')->getCustomerName();
顧客のエンティティID、ウェブサイトID、メールなどの詳細については、 getCustomer 関数を使用できます。次のコードは、そこから何を得ることができるかを示しています:-
echo "<pre>"; print_r(Mage::helper('customer')->getCustomer()->getData()); echo "</pre>";
ヘルパークラスから、顧客のログインURL、登録URL、ログアウトURLなどに関する情報を取得することもできます。
ヘルパークラスの isLoggedIn 関数から、顧客がログインしているかどうかを確認することもできます。
次の方法でセッションから現在のログイン顧客名を取得できます。
$customer = Mage::getSingleton('customer/session')->getCustomer();
これにより、現在のログイン顧客の顧客詳細が返されます。
getName()
echo $customer->getName();
メールの場合はこのコードを使用
$email=$this->__('Welcome, %s!', Mage::getSingleton('customer/session')->getCustomer()->getEmail());
echo $email;
$customer = Mage::getSingleton('customer/session')->getCustomer(); $customerAddressId = Mage::getSingleton('customer/session')->getCustomer()->getDefaultBilling(); $address = Mage::getModel('customer/address')->load($customerAddressId); $fullname = $customer->getName(); $firstname = $customer->getFirstname(); $lastname = $customer->getLastname(); $email = $customer->getEmail(); $taxvat = $customer->getTaxvat(); $tele = $customer->getTelephone(); $telephone = $address->getTelephone(); $street = $address->getStreet(); $City = $address->getCity(); $region = $address->getRegion(); $postcode = $address->getPostcode();
顧客のデフォルトの請求先住所を取得
ユーザー名は変更を加えても同じです:
$user=$this->__('Welcome, %s!', Mage::getSingleton('customer/session')->getCustomer()->getName());
echo $user;
次の方法で、ログインしたユーザーのすべての情報にアクセスできます。
$customer_data=Mage::getSingleton('customer/session')->getCustomer();
echo "<pre>" print_r($customer_data);
この方法:
$email = Mage::getSingleton('customer/session')->getCustomer()->getEmail();
echo $email;
単純に、
$current_customer = $this->_getSession()->getCustomer();
これは顧客オブジェクトを返し、この顧客オブジェクトからすべての詳細を取得できます。
これは頭の中でわかりませんが、ユーザーがログインした後、ページのヘッダーでユーザーの名前などを示すファイルを見てください。テンプレートのヒントを有効にすると役立つ場合があります(このチュートリアルを参照してください。
"Hello <? //code for showing username?>"
などの行が見つかったら、その行をコピーして必要な場所に表示するだけです