我已经能够将一个名为银行名称的自定义字段添加到保存到数据库中的信用卡支付选项中,但是我现在正试图在客户>管理客户>(选择一个客户)下的后端显示此类信息>订单>(选择一个订单),有一个名为支付信息的字段,它显示信用卡支付信息,这是我希望银行名称出现的地方。
我已经尝试编辑以下文件但没有成功。
app\design\adminhtml\default\default\template\payment\form\cc.phtml 和 ccsave.phtml 通过添加以下内容。
<div class="input-box">
<label for="<?php echo $_code ?>_cc_bankname><?php echo Mage::helper('payment')->__('Bank Name') ?> <span class="required">*</span></label><br/>
<input type="text" id="<?php echo $_code ?>_cc_bankname" name="payment[cc_bankname]" title="<?php echo Mage::helper('payment')->__('Bank Name') ?>" class="input-text validate-cc-number" value="<?php echo $this->getInfoData('cc_bankname')?>"/>
</div>
但这只会在为客户手动创建新订单时启用编辑属性的选项。
有谁知道应该编辑哪个文件以及如何编辑?我尝试在 add/design/adminhtml 和 mage 下编辑 cc.phtml 和 ccsave.phtml 文件,但没有运气。
忘了提我正在使用 Magento 1.7
::::::::::::::::编辑::::::::::::::::
在通过付款文件进一步搜索后,我发现有两个文件需要编辑,但我仍然需要一些帮助。
我通过向文件添加两个函数来编辑 \app\code\local\Mage\Payment\Block\Info\cc.phtml。
首先是公共功能
public function getCcBankname()
{
return $this->getInfo()->getCcBankname();
}
然后是受保护的功能
if ($this->getInfo()->getCcBankname()) {
$data[Mage::helper('payment')->__('Bank Name')] = $this->getInfo()->getCcBankname();
}
然后我通过添加此文件编辑了以下文件 \app\code\local\Mage\Payment\Block\Info\ccsave.phtml。
$transport = new Varien_Object(array(Mage::helper('payment')->__('Bank Name') => $info->getCcBankname(),));
现在,这种修改允许银行名称准确地出现在后端我想要的位置,但问题是它没有填充存储在数据库中的数据。
任何人都知道为什么它不从数据库中提取数据?
:::::::::::::::: 编辑#2 :::::::::::::::::
好吧,我所做的一切似乎都奏效了,但只有一个小问题。银行名称数据应设置在两个不同的表上。sales_flat_order_payment 和 sales_flat_quote_payment 但由于某种原因,数据仅保存在 sales_flat_quote_payment 上。我在 sales_flat_order_payment 上手动输入了数据,它起作用了,我能够在后端可视化银行名称。
现在我必须弄清楚如何在处理付款时将数据保存在 sales_flat_order_payment 上,以及为什么将其保存在 sales_flat_quote_payment 上而不是另一个上。