Magento - 根据标准动态禁用付款方式

标签 magento module payment

我有一个非常简单的模块,允许客户“购买帐户”。该模块实际上并没有做任何特别的事情(它只是从货到付款模块修改而来。)

问题是我只想向登录的客户提供这种付款方式。

到目前为止,我的模块如下所示:

BuyOnAccount/
    etc/
        config.xml
        system.xml
    Model/
        PaymentMethod.php

PaymentMethod.php 的内容是:
class MyCompany_BuyOnAccount_Model_PaymentMethod extends Mage_Payment_Model_Method_Abstract
{
    protected $_code  = 'buyonaccount';
    protected $_isInitializeNeeded      = true;
    protected $_canUseInternal          = false;
    protected $_canUseForMultishipping  = false;
}

配置和系统 xml 文件包含通常的东西(如果您想查看代码,请告诉我,我会编辑)

所以基本上我需要在用户未登录时禁用该模块(但显然仅适用于当前的客户 session !)

有任何想法吗?

谢谢

最佳答案

您可以在付款模式中添加一个名为 isAvailable(Mage_Sales_Model_Quote $quote) 的方法。返回 bool .例如,在您的情况下,您可以添加如下内容:

public function isAvailable($quote = null) {
    $isLoggedIn = Mage::helper('customer')->isLoggedIn();
    return parent::isAvailable($quote) && $isLoggedIn;
}
Mage_Payment_Model_Method_Free Magento 附带的付款方式是使用此付款方式的一个示例——它只会显示篮子总数是否为零。

关于Magento - 根据标准动态禁用付款方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8744127/

相关文章:

mysql - 从不同的数据库导入 Magento 中的产品

python - 从与 __init__ 导入同名的 python 模块导入对象

magento - 更改 Magento 中产品选项的布局

mysql - Magento 企业许可证 - 它是否包括 SQL 集群?

magento - Magento 中 Javascript 的区域设置语言

javascript - 在客户端导入 JavaScript 模块 : . js 或 mjs

python - 克隆模块并对副本进行更改

ruby-on-rails - 如何解决因不正确的Iban或Bic导致的Mangopay错误

javascript - react native : How to make format card expiration with/using <TextInput/>?

paypal - 我应该如何处理 2 个用户之间的 paypal 交易并仍然获得回发信息