Magento创建新的客户页面



好吧,我一点也不明白。我也找过了,什么也没找到。在帐户部分添加新页面的最好方法是什么?我正试图整合一个支持票系统到magento帐户页面,即,所以用户必须登录并注册使用此功能。我可以使用CMS页面和自定义页面布局来实现这一点。但是,如何将这个自定义CMS页面设置为仅适用于登录用户呢?

同样这样做,这是显示类别菜单,而不是帐户菜单。我怎样才能让我的帐户菜单显示?还是有更好的方法?我是magento的新手,我真的卡住了,不能弄清楚这个问题,所以任何帮助都会很感激。

我正在运行magento 1.7.0.2社区版

如果我理解正确的话,只是检查一下客户是否登录了,但是为了使用PHP,你将不得不使用模板系统并创建一个模块,或者生成你自己的"独立页面"。

if ($this->helper('customer')->isLoggedIn()){
   //show page contents or do whatever  .. 
}
else{
header( 'Location: http://www.yoursite.com/customer/account/login/' ) ;
}

是你所需要的。如果你走独立路线:

//LOAD MAGENTO
require_once 'YOUR_PATH_TO_MAGENTO/app/Mage.php';
umask(0);
Mage::app('YOUR_WEBSITE_CODE', 'website');
//GET SESSION DATA
Mage::getSingleton('core/session', array('name'=>'frontend'));
$session = Mage::getSingleton('customer/session', array('name'=>'frontend'));
$customer_data = Mage::getModel('customer/customer')->$session->id);
//CHECK IF LOGGED IN
if($session->isLoggedIn()){
echo 'Welcome ' . $customer_data->firstname . " " . $customer_data->lastname;
} else {
echo "Access Denied: Sorry, but this page is for registered members only.";
exit;
}

希望有帮助

对于任何动作都有一个控制器和动作函数。

为你的新特性定义一个动作。确保这个动作值在URL中。

现在在你的控制器中添加这个动作函数

myAction()
{
    if ($this->helper('customer')->isLoggedIn()){
   //show page contents or do whatever  .. 
    }
    else{
    header( 'Location: http://www.yoursite.com/customer/account/login/' ) ;
    }
}  

虽然上面的两个答案可能已经足够的问题张贴,只是一个注意事项,这肯定不是正确的方式与Magento工作,更好地理解如何这可以实现的方式根据Magento的做法,我认为这个教程从Alan Stormis一个伟大的地方,然而有一些问题与preDispatch方法在博客中,我认为它可能是更好的选择:

public function preDispatch() {
        parent::preDispatch();
        if (!Mage::getSingleton('customer/session')->authenticate($this)) {
                $this->setFlag('', 'no-dispatch', true);
        }
    }

我从这里得到的。在Alan的博客中,如果客户已经登录并试图进入自定义帐户页面,他将被重定向到主页(在我的情况下就是这样)

最新更新