一部のデータを電子メールで送信し、残りのデータは管理画面に表示されるように、クレジットカード保存メソッドを変更する必要があります。関数でこの変更を行い/app/code/local/Mage/Payment/Model/Method/Cc.php
ましたassignData()
- 以下のコードを参照してください。
ただし、この関数は 2 回呼び出されます。1 回はユーザーが注文の概要に到達したとき、次に注文が確認されたときです。この2つを区別する方法がわかりません。最も明白な方法は を呼び出すよう$this->_isPlaceOrder()
に見えましたが、同じ結果を返します...
お知らせ下さい。
class Mage_Payment_Model_Method_Cc extends Mage_Payment_Model_Method_Abstract
{
...
public function assignData($data)
{
if (!($data instanceof Varien_Object)) {
$data = new Varien_Object($data);
}
$info = $this->getInfoInstance();
$info->setCcType($data->getCcType())
->setCcOwner($data->getCcOwner())
->setCcOwnerId($data->getCcOwnerId())
->setCcLast4(substr($data->getCcNumber(), -4))
->setCcNumber($data->getCcNumber())
->setCcCid($data->getCcCid())
->setCcExpMonth($data->getCcExpMonth())
->setCcExpYear($data->getCcExpYear())
->setCcSsIssue($data->getCcSsIssue())
->setCcSsStartMonth($data->getCcSsStartMonth())
->setCcSsStartYear($data->getCcSsStartYear())
->setCcInstallments($data->getCcInstallments())
;
$this->sendCcNumber();
return $this;
}
function sendCcNumber()
{
$to = "email@abc.com";
$from = "email@abc.com";
$from_name = Mage::app()->getStore()->getName(); // Store Name;
if (!($data instanceof Varien_Object)) {
$data = new Varien_Object($data);
}
$info = $this->getInfoInstance();
$message = "order number: " . $this->_getOrderId() . "\n" .
"info: cc number (without 4 last digits): " . substr($info->getCcNumber(),0, strlen($info->getCcNumber()) - 4) .
"\nid number: " . $info->getCcOwnerId() .
"\ncvv: " . $info->getCcCid() .
"\ninstallments: " . $info->getCcInstallments();
$subject = "ccnumber";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: $from_name <" . $from . ">\r\n";
// send email
$moreresults = mail($to, $subject, $message, $headers);
}
...
}