E commerce 货到付款仅激活管理员(未启用前端)-Magento?
我现在正在使用magento一段时间。我想知道是否可以启用货到付款选项,仅供管理员使用。我想用它当商店的皮卡 所以,这种方式只能在管理面板中为那些想要商店提货的人创建手动订单 我不想这是显示在Magento前端商店E commerce 货到付款仅激活管理员(未启用前端)-Magento?,e-commerce,magento-1.7,magento-1.6,magento,E Commerce,Magento 1.7,Magento 1.6,Magento,我现在正在使用magento一段时间。我想知道是否可以启用货到付款选项,仅供管理员使用。我想用它当商店的皮卡 所以,这种方式只能在管理面板中为那些想要商店提货的人创建手动订单 我不想这是显示在Magento前端商店 你们都能帮我吗?这是一个非常简单的方法,但可能不是最干净的方法: 为商店启用货到付款功能 使用CSS从前端隐藏它 使用CSS来实现这一点会对公众隐藏这个选项,但不会阻止熟悉CSS的web开发人员找到它并下一个货到付款订单——尽管我想不出任何理由有人会故意这样做,因为他们下订单不会取得
你们都能帮我吗?这是一个非常简单的方法,但可能不是最干净的方法:
input#p_method_cashondelivery { display: none; }
label[for=p_method_cashondelivery] { display: none; }
实现这一点的方法有很多,但需要熟悉Magento生态系统。我不鼓励使用CSS对最终用户隐藏它,因为对CSS稍有了解的人可以轻松地取消隐藏,并获得购买您产品的免费访问权 我还建议不要覆盖核心文件(即使您没有编辑它们),因为这将在将来导致升级问题 坚实的道路: 我最喜欢的方法是启用Check/moneyorder方法,并创建一个小模块,如下所示。以上两种考虑在这里都不起作用 /app/etc/modules/Company_Module.xml
真的
地方的
/app/code/local/Company/Module/etc/config.xml
0.0.1
公司模块模型
独生子女
公司模块/观察员
付款方式有效
/app/code/local/Company/Module/Model/Observer.php
若要隐藏在前端,必须将设置为false,以
受保护的$\u canUseCheckout=false;你的付款方式
若要在管理端显示,必须将
受保护的$\u canUseInternal=true;感谢@JMax,我也这么做了。但是我不太擅长编程部分。这个代码做什么?它检查请求是否来自管理区域,如果是,我们说付款方式是活动的,否则,我们说付款方式是非活动的。它是防弹的。嗨@JMax,我试过这个。我激活了这个方法,但问题是我不希望它显示在前端。。但它也可以在前端使用。我想把它藏起来??有什么建议吗?请使用$instance->getCode()而不是$instance->getName()。此外,您可以使用
而不是
事件命名空间,这样您就不必检查事件是在frontend还是adminhtml中触发的
<?xml version="1.0"?>
<config>
<modules>
<Company_Module>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Payment/>
</depends>
</Company_Module>
</modules>
</config>
<?xml version="1.0"?>
<config>
<modules>
<Company_Module>
<version>0.0.1</version>
</Company_Module>
</modules>
<global>
<models>
<Company_Module>
<class>Company_Module_Model</class>
</Company_Module>
</models>
<events>
<payment_method_is_active>
<observers>
<company_module>
<type>singleton</type>
<class>Company_Module/Observer</class>
<method>paymentMethodIsActive</method>
</company_module>
</observers>
</payment_method_is_active>
</events>
</global>
</config>
<?php
class Company_Module_Model_Observer
{
public function paymentMethodIsActive($observer)
{
$instance = $observer->getMethodInstance();
$result = $observer->getResult();
if ($instance->getCode() == "checkmo") {
if (Mage::app()->getStore()->isAdmin()) {
$result->isAvailable = true;
} else {
$result->isAvailable = false;
}
}
}
}