[Magento] Metodo di pagamento personalizzato

  • Creatore Discussione Creatore Discussione Benix89
  • Data di inizio Data di inizio

Benix89

Nuovo Utente
26 Gen 2016
28
0
1
35
Salve,
sto creando un metodo di pagamento basato su domande/risposte in cui la risposta corretta ad una domanda random fra un pool di domande predefinite vale come pagamento.

Tramite una guida trovata in rete, sto cercando di implementare il mio codice.

Questo è il mio file app/design/frontend/base/default/template/custompaymentmethod/form/custompaymentmethod.phtml: Si tratta di un file di modello utilizzato per visualizzare un modulo di pagamento su misura per il nostro metodo di pagamento personalizzato.

Codice:
<?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>

E quest'altro app/code/local/Envato/Custompaymentmethod/Model/Paymentmethod.php: Si tratta di un file di modello utilizzato per convalidare e salvare le informazioni campi di pagamento personalizzate.

Codice:
// 1) qui prendo la domanda con ID=1 e ciclo le possibili risposte
foreach (Mage::getModel('emme_question/question')->load(1)->getSelectedAnswersCollection() as $answer) {
// 2) per ogni risposta controllo se è quella corretta e se ha lo stesso ID di quella scelta dall’utente
   if ($answer->getIsCorrect() && ($answer->getId() == $_POST[‘my_custom_answer’])) {
// 3) in caso positivo mostro un messaggio di successo all’utente 
       Mage::getSingleton(core/session')->addSuccess('Risposta esatta');
       // devo permettergli di andare avanti
    } else {
// 4) in caso negativo scateno un’eccezione per interrompere il checkout (e riportare l'utente alla homepage)
        Mage::throwException('Risposta sbagliata!');
    }
}

Mi date un consiglio?
 

Discussioni simili