DBに保存する銀行名というカスタムフィールドをクレジットカード支払いオプションに追加できましたが、現在、バックエンドの顧客>顧客の管理>(顧客を選択)の下にそのような情報を表示しようとしています。 > 注文 > (注文を選択) クレジット カードの支払い情報を表示する支払い情報というフィールドがあり、ここに銀行名を表示します。
次のファイルを編集しようとしましたが、成功しませんでした。
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で作業していることを忘れていました
::::::::::::::::編集::::::::::::::::
支払いファイルをさらに検索したところ、編集が必要なファイルが 2 つあることがわかりましたが、まだ助けが必要です。
ファイルに 2 つの関数を追加して、\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(),));
この変更により、銀行名がバックエンドの必要な場所に正確に表示されるようになりましたが、問題は、DB に保存されているデータが入力されていないことです。
DBからデータを取得しない理由を知っている人はいますか?
:::::::::::::::: 編集 #2 ::::::::::::::::
私がやったことはすべてうまくいったようですが、1つだけ小さな問題がありました。銀行名データは、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 に保存されているのに、他のデータには保存されていない理由を理解する必要があります。