Я использую Magento, и у меня есть form.html, который запрашивает данные клиента. Когда клиент входит в систему, я хочу предварительно заполнить соответствующие поля известными данными. Я использовал следующие конструкции, но никто не работает. Список начинается с строки (прокомментированной), которая просто запрашивает заполнение, а затем мои две модификации, первый из которых прокомментирован. Оба не работают. Что не так?
<!--<td valign="top"><input maxlength="30" name="name" size="20" type="text"></td>-->
<!--<td valign="top"><echo Mage::getSingleton('customer/session')->getCustomer()->getName();></td>-->
<td valign="top">
<input type="text" name="name" value="<?php echo Mage::app()->getRequest()->getPost("name");?>" />
</td>
<?php
$customer = new Varien_Object();
if (Mage::getSingleton('customer/session')->isLoggedIn()){
$customer = Mage::getSingleton('customer/session')->getCustomer();
}
?>
<td valign="top">
<input type="text" name="name" value="<?php echo $customer->getData('name') ?>" />
</td>
Ваша первая модификация (вторая строка прокомментирована) не будет работать, потому что вы не завернули PHP в свои теги.
Попробуйте написать выражение, чтобы проверить, зарегистрирован ли клиент.
<?php
if (Mage::getSingleton('customer/session')->isLoggedIn()) :
//Write out the customer full name
echo Mage::getSingleton('customer/session')->getCustomer()->getName();
else :
echo 'Customer not logged in';
endif;
?>
Если по-прежнему нет возвращаемого значения, это может быть связано с тем, что у вас нет идентификатора сеанса клиента.