gpt4 book ai didi

magento - Magento 中 getPaymentHtml() 的输出

转载 作者:行者123 更新时间:2023-12-04 18:12:19 26 4
gpt4 key购买 nike

我一直无法找到 getPaymentHtml() 的输出在哪里来自。

其定义为:
public function getPaymentHtml() {
return $this->getChildHtml('payment_info');
}

我找不到 payment_info 的模板堵塞。

基本上我希望能够在结帐的进度 block 中检索信用卡类型和信用卡号。

如何找出方法名称?像 $this->getCreditCardType()
编辑:好的!我了解 Magento 会首先确定付款方式,该方式具有用于呈现输出的相应模板。但是在 progress.phtml结帐,var_dump( $this instanceof Mage_Payment_Block_Info_Cc );返回 false,那么如何在当前上下文中访问它?

最佳答案

进度 block 没有自己的付款信息模板。 Mage_Checkout_Block_Onepage_Payment_Info block 使用选定的付款方式 block 来输出 html。看Mage_Checkout_Block_Onepage_Payment_Info::_toHtml()方法:

protected function _toHtml()
{
$html = '';
if ($block = $this->getChild($this->_getInfoBlockName())) {
$html = $block->toHtml();
}
return $html;
}

要查找您使用的特定付款方式的实际模板和 block ,您需要执行以下步骤:
  • 首先 - 获取当前付款方式的模型别名 Mage::getStoreConfig('payment/'.$yourMethod.'/model')并使用 Mage::getModel(alias) 实例化它
  • 然后使用 $model->getInfoBlockType() 获取 block 类型 - 这样你就可以通过它的类型找到实际的 block

  • 例如 cc保存 支付方式信息 block 为 Mage_Payment_Block_Info_Ccsave,模板为 app\design\frontend\base\default\template\payment\info\default.phtml。您将能够找到其中的所有数据。
    祝你好运 ;)

    为了完整起见,获取 CC 类型和 CC 号码最后 4 位的确切函数是:
    echo Mage::getSingleton('checkout/session')->getQuote()->getPayment()->getCcType();
    echo Mage::getSingleton('checkout/session')->getQuote()->getPayment()->getCcLast4();

    关于magento - Magento 中 getPaymentHtml() 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12373093/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com