I am creating a new payment method. With this new payment method, the customer will buy the product only if it responds correctly to a question that is asked. How do I verify that the customer selects an answer? In addition, except as the customer response to check later if one is correct?
app / design / frontend / base / default / template / custompaymentmethod / form / custompaymentmethod.phtml: It's a template file used to display a custom payment form for our custom payment method.
<?php $question = Mage::getModel('emme_question/question')->getCollection()->getLastItem(); $answers = $question->getSelectedAnswersCollection(); ?> <div id="custompaymentmethod-question"> <h4><?php echo $this->escapeHtml($question->getValue()); ?></h4> <ul> <?php foreach ($answers as $answer): ?> <li> <label><?php echo $this->escapeHtml($answer->getValue()) ?></label> <input type="radio" name="my_custom_answer" value="<?php echo $answer->getId() ?>" required> </li> <?php endforeach ?> </div> <script> jQuery(function ($) { $('#co-payment-form').on('change.mm', function () { var is_question_active = ! $('#p_method_custompaymentmethod').is(':checked'); $('#custompaymentmethod-question input').attr('disabled', is_question_active); }) }) </script>
app/code/local/Envato/Custompaymentmethod/Model/Paymentmethod.php: It's a model file used to validate and save the custom payment fields information.
<?php // app/code/local/Envato/Custompaymentmethod/Model/Paymentmethod.php class Envato_Custompaymentmethod_Model_Paymentmethod extends Mage_Payment_Model_Method_Abstract { protected $_code = 'custompaymentmethod'; protected $_formBlockType = 'custompaymentmethod/form_custompaymentmethod'; protected $_infoBlockType = 'custompaymentmethod/info_custompaymentmethod'; public function getOrderPlaceRedirectUrl() { return Mage::getUrl('custompaymentmethod/payment/redirect', array('_secure' => false)); } }
Sorry for my poor English
Solved! Go to Solution.
I solved
public function validate() { foreach (Mage::getModel('emme_question/question')->load(1)->getSelectedAnswersCollection() as $answer) { if ($answer->getIsCorrect()) { if ($answer->getId() == $_POST['my_custom_answer']) { Mage::getSingleton('core/session')->addSuccess('Risposta esatta'); } else { Mage::throwException('Risposta sbagliata!'); } } } }
I solved
public function validate() { foreach (Mage::getModel('emme_question/question')->load(1)->getSelectedAnswersCollection() as $answer) { if ($answer->getIsCorrect()) { if ($answer->getId() == $_POST['my_custom_answer']) { Mage::getSingleton('core/session')->addSuccess('Risposta esatta'); } else { Mage::throwException('Risposta sbagliata!'); } } } }