我需要在Magento中保存的信用卡付款方式中添加一个名为“parcelas”的自定义字段,它将是一个选择1到x的选项。我一直在寻找如何做到这一点,但我真的没有找到一些方法从表单中获取数据,存储到数据库并在后端获取它。有谁知道怎么做?
答案 0 :(得分:0)
1 - 创建Ccsave模块的本地副本。
2 - 添加到app / code / local / Mage / Ccsave / etc / config.xml,* config - >之间全球 - > fieldsets - > sales_convert_quote_payment *
<cc_parcelas><to_order_payment>*</to_order_payment></cc_parcelas>
以及* config - &gt;全球 - &gt; fieldsets - &gt; sales_convert_order_payment *
<cc_parcelas><to_quote_payment>*</to_quote_payment></cc_parcelas>
3 - 在app / code / local / Mage / Ccsave / Block / Payment / Info / Ccsave.php中,将此代码添加到函数* _prepareSpecificInformation *
if ($info->getCcParcelas()) {
$transport->addData(array(
Mage::helper('payment')->__('Número de Parcelas') => $info->getCcParcelas(),
));
}
4 - 在app / code / local / Mage / Ccsave / Model / Payment / Info.php中,将此代码添加到函数 getData
$this->_data['cc_parcelas'] = $this->getCcParcelas();
5 - 在ul结束前的app / design / frontend / YOURTHEME / default / template / payment / form / ccsave.phtml中添加输入字段
<li>
<label for="<?php echo $_code ?>_cc_parcelas" class="required"><em>*</em>Número de Parcelas</label>
<div class="input-box">
<div class="v-fix">
<select title="Número de Parcelas" class="input-text cvv required-entry validate-cc-cvn" id="<?php echo $_code ?>_cc_parcelas" name="payment[cc_parcelas]">
<?php for($i=1; $i<=$this->getParcelas()->getParcelas(); $i++): ?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php endfor; ?>
</select>
</div>
</div>
</li>
在步骤 5 中,我从另一个模块调用了多少'parcelas'我想要的。您可以找到自己的方法,如果您有一个静态数量的'parcelas',只需将$this->getParcelas()->getParcelas()
更改为您想要的数字。
6 - 在表sales_flat_order_payment和sales_flat_quote_payment
上为数据库添加'cc_parcelas'列现在,您可以在Ccsave模块上获取'parcelas'的数量,或者只添加另一种自定义字段。如果在此过程中出现任何问题或工作不正常,请告诉我。
答案 1 :(得分:0)
使用安装脚本
$installer = new Mage_Sales_Model_Mysql4_Setup('core_setup');
$installer->startSetup();
$installer->addAttribute(
'order_payment',
'cc_parcelas',
array(
'type' => 'varchar',
'grid' => true
)
);
$installer->endSetup();