私はMagentoサイトhttp://mydolcessa.comに取り組んでいます
チェックアウト ページにチェックボックスを追加しました。これは、会社がクレジット カードに請求することを承認していることを確認し、返品および返金ポリシーに同意することです。(下図参照)
注文が表示される管理エリアで、「Authorized to Charge:」という行を追加しました。現在、設定済みの列のデータベースに値を手動で入力すると、そこに正しく読み取られて表示されます。
私が助けを必要としているのは、チェックボックスがデータベースの列に「はい」または「いいえ」を挿入することです。
app/design/frontend/base/default/template/payment/form/Ccsave.phtml のチェックボックス コード
<li>
<div class="input-box">
<input type="checkbox" id="<?php echo $_code ?>_cc_checkbox"" name="payment[cc_checkbox]" title="<?php echo $this->__('By checking this box, I authorize this transaction and acknowledge the refund/exchange policy discussed in the "customer care" section of the website.') ?>" class="input-text validate-cc-checkbox validate-cc-type" value="Yes" />
<label for="<?php echo $_code ?>_cc_checkbox" class="required"><em>*</em><?php echo $this->__('By checking this box, I authorize this transaction and acknowledge the refund/exchange policy discussed in the "customer care" section of the website.') ?></label>
</div>
</li>
app/code/core/Mage/Payment/Block/Info/Cc.php のチェックボックス コード
/**
* Retrieve Checkbox Status
*
* @return string
*/
public function getCcCheckbox()
{
$checkbox = Mage::getSingleton('payment/config')->getCcCheckbox();
$ccCheckbox = $this->getInfo()->getCcCheckbox();
if (isset($checkbox[$ccCheckbox])) {
return $checkbox[$ccCheckbox];
}
return (empty($ccCheckbox)) ? Mage::helper('payment')->__('No') : $ccCheckbox;
}
app/code/core/Mage/Payment/Block/Info/Ccsave.php のチェックボックス コード (バックエンドに表示)
class Mage_Payment_Block_Info_Ccsave extends Mage_Payment_Block_Info_Cc
{
/**
* Show name on card, expiration date and full cc number
*
* Expiration date and full number will show up only in secure mode (only for admin, not in emails or pdfs)
*
* @param Varien_Object|array $transport
*/
protected function _prepareSpecificInformation($transport = null)
{
if (null !== $this->_paymentSpecificInformation) {
return $this->_paymentSpecificInformation;
}
$info = $this->getInfo();
$transport = new Varien_Object(array(Mage::helper('payment')->__('Name on the Card') => $info->getCcOwner(),));
$transport = parent::_prepareSpecificInformation($transport);
if (!$this->getIsSecureMode()) {
$transport->addData(array(
Mage::helper('payment')->__('Expiration Date') => $this->_formatCardDate(
$info->getCcExpYear(), $this->getCcExpMonth()
),
Mage::helper('payment')->__('Credit Card Number') => $info->getCcNumber(),
Mage::helper('payment')->__('Authorized to Charge') => $info->getCcCheckbox(),
));
}
return $transport;
}
}
このようなコードはどこに配置すればよいですか?
<?php $cc_checkbox = $_GET["cc_checkbox"];
require_once 'app/Mage.php';
$resource = Mage::getSingleton('core/resource');
$readConnection = $resource->getConnection('core_read');
$writeConnection = $resource->getConnection('core_write');
$tableName = $resource->getTableName('sales_flat_order_payment');
if ($cc_checkbox == true) {
$checked="Yes";
$query = "UPDATE INTO {$tableName} (cc_checkbox)
VALUES ('Yes')";
}
else {
$checked="No";
$query = "INSERT INTO {$tableName} (cc_checkbox)
VALUES ('No')";
}
$writeConnection->query($query);
?>
PS: 基本ファイルの編集については知っています。これを行ってから、自分のフォルダーにコピーします。