我已经能够将名为银行名称的自定义字段添加到信用卡付款选项中,该选项会保存到数据库中,但我现在正尝试在后端显示此类信息客户>管理客户> (选择客户)>订单> (选择一个订单)并有一个名为付款信息的字段,显示信用卡付款信息,这就是我希望银行名称出现的位置。
我已经尝试编辑以下文件但没有成功。
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下编辑cc.phtml和ccsave.phtml文件,也在mage下编辑,但没有运气。
忘记提及我正在使用Magento 1.7
:::::::::::::::: EDIT ::::::::::::::::
通过付款文件进一步搜索后,我发现有两个文件需要编辑,但我仍需要一些帮助。
我通过在文件中添加两个函数来添加\ 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而不保存在另一方上。
答案 0 :(得分:1)
对于付款方式ccsave
,
Customer > Manage Customer > (Select customer) > Orders > (Select Order)
通常由模板
创建app/design/adminhtml/default/default/template/payment/info/default.phtml