我需要在信用卡付款模块中添加一个包裹。根据我的理解,将信息发送到信用卡公司的文件也会获取卡号:
$payment_cc_number = $payment->getCcNumber();
在同一个文件中,有一行可以获取宗地数......
$payment_parcels = $this->getConfigData('parcel_number');
......但他们没有被捕获。在模块中,我使用一个简单的标记:
<select id="" name="parcels" class="required-entry">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
如何发送客户选择的值?
答案 0 :(得分:0)
您应该在cc_parcels
和sales_flat_order_payment
表格中创建sales_flat_quote_payment
字段,并将以下代码添加到模块的适当位置。
阻止信息类:
<?php
class Company_Module_Block_Info extends Mage_Payment_Block_Info_Cc {
protected function _prepareSpecificInformation($transport = null) {
$transport = parent::_prepareSpecificInformation($transport);
if ($this->getInfo()->getCcParcels()) {
$transport[$this->__('Parcels')] = $this->getInfo()->getCcParcels();
}
return $transport;
}
}
方法类:
<?php
class Company_Module_Model_Method extends Mage_Payment_Model_Method_Cc {
public function assignData($data) {
$this->getInfoInstance()->setCcParcels($data['cc_parcels']);
}
}
config.xml中:
<?xml version="1.0"?>
<config>
<global>
<fieldsets>
<sales_convert_quote_payment>
<cc_parcels><to_order_payment>*</to_order_payment></cc_parcels>
</sales_convert_quote_payment>
<sales_convert_order_payment>
<cc_parcels><to_quote_payment>*</to_quote_payment></cc_parcels>
</sales_convert_order_payment>
</fieldsets>
</global>
</config>
form.phtml:
<label for="<?php echo $_code ?>_cc_parcels"><?php echo $this->__('Parcels') ?></label>
<div class="input-box">
<select id="<?php echo $_code ?>_cc_parcels" name="payment[cc_parcels]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
要获取地块编号,您必须得到$order->getPayment()->getCcParcels()
(也来自$quote
)。