2017-08-28 1 views
0

Ich habe eine benutzerdefinierte Zahlungsmethode in meinem opencart erstellt, und ich bearbeitet die .tpl Datei mit einer Tabelle mit Radio-Schaltflächen hinzufügen.Einfügen von Daten in OpenCart 2.1.0.1 Bestellung mit Javascript

Dies ist ein Beispiel:

<tr> 
       <td><div class="radio"> 
        <label><input type="radio" name="months" value="tbi6" />6 месеца x <?php echo round($order_info['total']/5.50, 2).'лв.';?></label> 
       </div></td> 
       <td><div class="radio"> 
        <label><input type="radio" name="months" value="uni6" />6 месеца x <?php echo round($order_info['total']*(18.57/100), 2).'лв.';?></label> 
       </div></td> 
      </tr> 
      <tr> 
       <td><div class="radio"> 
        <label><input type="radio" name="months" value="tbi9" />9 месеца x <?php echo round($order_info['total']/7.92, 2).'лв.';?></label> 
       </div></td> 
       <td><div class="radio"> 
        <label><input type="radio" name="months" value="uni9" />9 месеца x <?php echo round($order_info['total']*(12.97/100), 2).'лв.';?></label> 
       </div></td> 
      </tr> 

Ich mag die Daten aus dem Optionsfeld des Kunden in seiner Bestellung zum Hinzufügen ausgewählt, so wird der Administrator der Lage sein, es nach dem Checkout-Prozess zu sehen. Es funktioniert für mich, wenn ich einfach diese Informationen in den Kommentarbereich hinzufügen kann. Wie kann ich es erreichen? Das ist mein payment_method.php Datei:

class ControllerCheckoutPaymentMethod extends Controller { 
public function index() { 
    $this->load->language('checkout/checkout'); 
    if (isset($this->session->data['payment_address'])) { 
     // Totals 
     $total_data = array(); 
     $total = 0; 
     $taxes = $this->cart->getTaxes(); 

     $this->load->model('extension/extension'); 

     $sort_order = array(); 

     $results = $this->model_extension_extension->getExtensions('total'); 

     foreach ($results as $key => $value) { 
      $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); 
     } 

     array_multisort($sort_order, SORT_ASC, $results); 

     foreach ($results as $result) { 
      if ($this->config->get($result['code'] . '_status')) { 
       $this->load->model('total/' . $result['code']); 

       $this->{'model_total_' . $result['code']}->getTotal($total_data, $total, $taxes); 
      } 
     } 

     // Payment Methods 
     $method_data = array(); 

     $this->load->model('extension/extension'); 

     $results = $this->model_extension_extension->getExtensions('payment'); 

     $recurring = $this->cart->hasRecurringProducts(); 

     foreach ($results as $result) { 
      if ($this->config->get($result['code'] . '_status')) { 
       $this->load->model('payment/' . $result['code']); 

       $method = $this->{'model_payment_' . $result['code']}->getMethod($this->session->data['payment_address'], $total); 

       if ($method) { 
        if ($recurring) { 
         if (method_exists($this->{'model_payment_' . $result['code']}, 'recurringPayments') && $this->{'model_payment_' . $result['code']}->recurringPayments()) { 
          $method_data[$result['code']] = $method; 
         } 
        } else { 
         $method_data[$result['code']] = $method; 
        } 
       } 
      } 
     } 

     $sort_order = array(); 

     foreach ($method_data as $key => $value) { 
      $sort_order[$key] = $value['sort_order']; 
     } 

     array_multisort($sort_order, SORT_ASC, $method_data); 

     $this->session->data['payment_methods'] = $method_data; 
    } 

    $data['text_payment_method'] = $this->language->get('text_payment_method'); 
    $data['text_comments'] = $this->language->get('text_comments'); 
    $data['text_loading'] = $this->language->get('text_loading'); 

    $data['button_continue'] = $this->language->get('button_continue'); 

    if (empty($this->session->data['payment_methods'])) { 
     $data['error_warning'] = sprintf($this->language->get('error_no_payment'), $this->url->link('information/contact')); 
    } else { 
     $data['error_warning'] = ''; 
    } 

    if (isset($this->session->data['payment_methods'])) { 
     $data['payment_methods'] = $this->session->data['payment_methods']; 
    } else { 
     $data['payment_methods'] = array(); 
    } 

    if (isset($this->session->data['payment_method']['code'])) { 
     $data['code'] = $this->session->data['payment_method']['code']; 
    } else { 
     $data['code'] = ''; 
    } 

    if (isset($this->session->data['comment'])) { 
     $data['comment'] = $this->session->data['comment']; 
    } else { 
     $data['comment'] = ''; 
    } 

    $data['scripts'] = $this->document->getScripts(); 

    if ($this->config->get('config_checkout_id')) { 
     $this->load->model('catalog/information'); 

     $information_info = $this->model_catalog_information->getInformation($this->config->get('config_checkout_id')); 

     if ($information_info) { 
      $data['text_agree'] = sprintf($this->language->get('text_agree'), $this->url->link('information/information/agree', 'information_id=' . $this->config->get('config_checkout_id'), 'SSL'), $information_info['title'], $information_info['title']); 
     } else { 
      $data['text_agree'] = ''; 
     } 
    } else { 
     $data['text_agree'] = ''; 
    } 

    if (isset($this->session->data['agree'])) { 
     $data['agree'] = $this->session->data['agree']; 
    } else { 
     $data['agree'] = ''; 
    } 

    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/checkout/payment_method.tpl')) { 
     $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/checkout/payment_method.tpl', $data)); 
    } else { 
     $this->response->setOutput($this->load->view('default/template/checkout/payment_method.tpl', $data)); 
    } 
} 

public function save() { 
    $this->load->language('checkout/checkout'); 



    $json = array(); 

    if(isset($this->request->post['months'])){ 
    $this->session->data['months'] = $this->request->post['months']; 
    } 

    // Validate if payment address has been set. 
    if (!isset($this->session->data['payment_address'])) { 
     $json['redirect'] = $this->url->link('checkout/checkout', '', 'SSL'); 
    } 

    // Validate cart has products and has stock. 
    if ((!$this->cart->hasProducts() && empty($this->session->data['vouchers'])) || (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout'))) { 
     $json['redirect'] = $this->url->link('checkout/cart'); 
    } 

    // Validate minimum quantity requirements. 
    $products = $this->cart->getProducts(); 

    foreach ($products as $product) { 
     $product_total = 0; 

     foreach ($products as $product_2) { 
      if ($product_2['product_id'] == $product['product_id']) { 
       $product_total += $product_2['quantity']; 
      } 
     } 

     if ($product['minimum'] > $product_total) { 
      $json['redirect'] = $this->url->link('checkout/cart'); 

      break; 
     } 
    } 

    if (!isset($this->request->post['payment_method'])) { 
     $json['error']['warning'] = $this->language->get('error_payment'); 
    } elseif (!isset($this->session->data['payment_methods'][$this->request->post['payment_method']])) { 
     $json['error']['warning'] = $this->language->get('error_payment'); 
    } 

    if ($this->config->get('config_checkout_id')) { 
     $this->load->model('catalog/information'); 

     $information_info = $this->model_catalog_information->getInformation($this->config->get('config_checkout_id')); 

     if ($information_info && !isset($this->request->post['agree'])) { 
      $json['error']['warning'] = sprintf($this->language->get('error_agree'), $information_info['title']); 
     } 
    } 

    $extra = ''; 

    if(isset($this->session->data['months'])){ 
     $extra = $this->session->data['months']; 
    } 

    if (!$json) { 
     $this->session->data['payment_method'] = $this->session->data['payment_methods'][$this->request->post['payment_method']]; 

     $this->session->data['comment'] = $extra . " " .strip_tags($this->request->post['comment']); 
    } 

    $this->response->addHeader('Content-Type: application/json'); 
    $this->response->setOutput(json_encode($json)); 
} 

Und das ist die tpl-Datei von meiner benutzerdefinierten Zahlungsmethode (Leasingpläne), wo ive die Radio-Buttons mit den benötigten Daten eingefügt:

$('#button-confirm').on('click', function() { 
 
\t $.ajax({ 
 
\t \t type: 'get', 
 
\t \t url: 'index.php?route=payment/leasing_plans/confirm', 
 
\t \t cache: false, 
 
\t \t beforeSend: function() { 
 
\t \t \t $('#button-confirm').button('loading'); 
 
\t \t }, 
 
\t \t complete: function() { 
 
\t \t \t $('#button-confirm').button('reset'); 
 
\t \t }, 
 
\t \t success: function() { 
 
\t \t \t location = '<?php echo $continue; ?>'; 
 
\t \t } 
 
\t }); 
 
}); 
 

 

 
$(document).ready(function() { 
 
    $("div.leasecond").hide(); 
 
    $("input[name$='months']").click(function() { 
 
     var test = $(this).val(); 
 
     $("div.leasecond").hide(); 
 
     $("#" + test).show(); 
 
\t // Place the text from the div in the textarea element. Постави ID на textarea !!! 
 
    // $("#text_leasing").text($("#" + test).text()); 
 
    }); 
 
}); 
 

 
$('#input-payment-egn').keyup(function(e){ 
 
    if($(this).val().length === 10) 
 
    e.preventDefault(); 
 
}).focusout(function(){ 
 
    if($(this).val().length === 10){ 
 
    $('#wrong-egn').slideUp(); 
 
    } else { 
 
    $('#wrong-egn').slideDown(); 
 
    } 
 
});
td{ 
 
     text-align: center; 
 
     padding: 10px 10px 10px 10px; 
 
     \t } 
 
    /*tr:nth-child(even){background-color: #f2f2f2}*/ 
 
    tr:hover {background-color: #f5f5f5} 
 
\t 
 
\t .leasecond{ 
 
\t display: none; 
 
\t }
<h2><?php echo $text_instruction; ?></h2> 
 
<p><b><?php echo $text_description; ?></b></p> 
 
<div class="well well-sm"> 
 

 
    <div class="well" style="display: table; cursor: pointer;"> 
 
      <table align="left" cellspacing="1" style="table-layout:fixed;width:100%;"> 
 
       <caption style="text-align: left;" id="tablica"> 
 
       <i aria-hidden="true" class="fa fa-calendar fa-3x"></i>&nbsp;Избери схема на изплащане: 
 
       </caption> 
 
       <thead id="tablica1"> 
 
       <tr> 
 
        <td ><img alt="" height="40" src="http://dev.mupcku.com/image/TBI-logo-b.png" /></td> 
 
        <td><img alt="" height="40" src="http://dev.mupcku.com/image/unicredit-logo-b.png" /></td> 
 
       </tr> 
 
       </thead> 
 
       <tbody id="tablica2"> 
 
       <tr> 
 
        <td><div class="radio"> 
 
\t \t \t \t \t \t <label><input type="radio" name="months" value="tbi3" />3 месеца x <?php echo round($order_info['total']/2.87, 2).'лв.';?></label> 
 
\t \t \t \t \t </div></td> 
 
        <td><div class="radio"> 
 
\t \t \t \t \t \t <label><input type="radio" name="months" value="uni3" />3 месеца x <?php echo round($order_info['total']*(35.02/100), 2).'лв.';?></label> 
 
\t \t \t \t \t </div></td> 
 
       </tr> 
 
       <tr> 
 
        <td><div class="radio"> 
 
\t \t \t \t \t \t <label><input type="radio" name="months" value="tbi6" />6 месеца x <?php echo round($order_info['total']/5.50, 2).'лв.';?></label> 
 
\t \t \t \t \t </div></td> 
 
        <td><div class="radio"> 
 
\t \t \t \t \t \t <label><input type="radio" name="months" value="uni6" />6 месеца x <?php echo round($order_info['total']*(18.16/100), 2).'лв.';?></label> 
 
\t \t \t \t \t </div></td> 
 
       </tr> 
 
       <tr> 
 
        <td><div class="radio"> 
 
\t \t \t \t \t \t <label><input type="radio" name="months" value="tbi9" />9 месеца x <?php echo round($order_info['total']/7.92, 2).'лв.';?></label> 
 
\t \t \t \t \t </div></td> 
 
        <td><div class="radio"> 
 
\t \t \t \t \t \t <label><input type="radio" name="months" value="uni9" />9 месеца x <?php echo round($order_info['total']*(12.55/100), 2).'лв.';?></label> 
 
\t \t \t \t \t </div></td> 
 
       </tr> 
 
       <tr> 
 
        <td><div class="radio"> 
 
\t \t \t \t \t \t <label><input type="radio" name="months" value="tbi12" />12 месеца x <?php echo round($order_info['total']/10.16, 2).'лв.';?></label> 
 
\t \t \t \t \t </div></td> 
 
        <td><div class="radio"> 
 
\t \t \t \t \t \t <label><input type="radio" name="months" value="uni12" />12 месеца x <?php echo round($order_info['total']*(9.75/100), 2).'лв.';?></label> 
 
\t \t \t \t \t </div></td> 
 
       </tr> 
 
       <tr> 
 
        <td><div class="radio"> 
 
\t \t \t \t \t \t <label><input type="radio" name="months" value="tbi15" />15 месеца x <?php echo round($order_info['total']/12.24, 2).'лв.';?></label> 
 
\t \t \t \t \t </div></td> 
 
        <td><div class="radio"> 
 
\t \t \t \t \t \t <label><input type="radio" name="months" value="uni15" />15 месеца x <?php echo round($order_info['total']*(8.08/100), 2).'лв.';?></label> 
 
\t \t \t \t \t </div></td> 
 
       </tr> 
 
       <tr> 
 
        <td><div class="radio"> 
 
\t \t \t \t \t \t <label><input type="radio" name="months" value="tbi18" />18 месеца x <?php echo round($order_info['total']/14.17, 2).'лв.';?></label> 
 
\t \t \t \t \t </div></td> 
 
        <td><div class="radio"> 
 
\t \t \t \t \t \t <label><input type="radio" name="months" value="uni18" />18 месеца x <?php echo round($order_info['total']*(6.97/100), 2).'лв.';?></label> 
 
\t \t \t \t \t </div></td> 
 
       </tr> 
 
       </tbody> 
 
      </table> 
 
    </div> 
 

 
<div id="tbi3" class="leasecond"> 
 
    <input type="text" style="border: none;" readonly />Разсрочено плащане с TBI, вноски 3 х <?php echo $tbi3=round($order_info['total']/2.87, 2).'лв.';?> обща дължима сума: <?php echo ($tbi3*3).'лв.';?> ГПР: 30.36% <br> 
 
\t <p>Прочетох и разбрах записаното в документа на Ти Би Ай Кредит EАД - <a href="http://dev.mupcku.com/leasing/tbi.pdf" target="_blank">Съгласие за обработка на личните данни</a>. Потвърждавам, че съм съгласен личните ми данни да бъдат обработвани от Ти Би Ай Кредит EАД, по описания в документа начин и за целите посочени в него.</p> 
 
</div> 
 
<div id="uni3" class="leasecond"> 
 
    <input type="text" style="border: none;" readonly />Разсрочено плащане с UNI Credit, вноски 3 x <?php echo $uni3=round($order_info['total']*(35.41/100), 2).'лв.';?> обща дължима сума: <?php echo ($uni3*3).'лв.';?> ГПР: 30.36% <br> 
 
\t <p>Правилата за ползване на Уникредит Кънсюмър Файненсинг ЕАД са - <a href="http://dev.mupcku.com/leasing/unicredit.pdf" target="_blank">Съгласие за обработка на личните данни</a>. Потвърждавам, че съм съгласен личните ми данни да бъдат обработвани от Уникредит Кънсюмър Файненсинг ЕАД, по описания в документа начин и за целите посочени в него.</p> 
 
</div> 
 

 
<div id="tbi6" class="leasecond"> 
 
    <input type="text" style="border: none;" readonly />Разсрочено плащане с TBI, вноски 6 х <?php echo $tbi6=round($order_info['total']/5.50, 2).'лв.';?> обща дължима сума: <?php echo ($tbi6*6).'лв.';?> ГПР: 34.49% <br> 
 
\t <p>Прочетох и разбрах записаното в документа на Ти Би Ай Кредит EАД - <a href="http://dev.mupcku.com/leasing/tbi.pdf" target="_blank">Съгласие за обработка на личните данни</a>. Потвърждавам, че съм съгласен личните ми данни да бъдат обработвани от Ти Би Ай Кредит EАД, по описания в документа начин и за целите посочени в него.</p> 
 
</div> 
 
<div id="uni6" class="leasecond"> 
 
    <input type="text" style="border: none;" readonly />Разсрочено плащане с UNI Credit, вноски 6 x <?php echo $uni6=round($order_info['total']*(18.57/100), 2).'лв.';?> обща дължима сума: <?php echo ($uni6*6).'лв.';?> ГПР: 34.49% <br> 
 
\t <p>Правилата за ползване на Уникредит Кънсюмър Файненсинг ЕАД са - <a href="http://dev.mupcku.com/leasing/unicredit.pdf" target="_blank">Съгласие за обработка на личните данни</a>. Потвърждавам, че съм съгласен личните ми данни да бъдат обработвани от Уникредит Кънсюмър Файненсинг ЕАД, по описания в документа начин и за целите посочени в него.</p> 
 
</div> 
 

 

 
<div id="tbi9" class="leasecond"> 
 
    <input type="text" style="border: none;" readonly />Разсрочено плащане с TBI, вноски 9 х <?php echo $tbi9=round($order_info['total']/7.92, 2).'лв.';?> обща дължима сума: <?php echo ($tbi9*9).'лв.';?> ГПР: 36.23% <br> 
 
\t <p>Прочетох и разбрах записаното в документа на Ти Би Ай Кредит EАД - <a href="http://dev.mupcku.com/leasing/tbi.pdf" target="_blank">Съгласие за обработка на личните данни</a>. Потвърждавам, че съм съгласен личните ми данни да бъдат обработвани от Ти Би Ай Кредит EАД, по описания в документа начин и за целите посочени в него.</p> 
 
</div> 
 
<div id="uni9" class="leasecond"> 
 
    <input type="text" style="border: none;" readonly />Разсрочено плащане с UNI Credit, вноски 9 x <?php echo $uni9=round($order_info['total']*(12.97/100), 2).'лв.';?> обща дължима сума: <?php echo ($uni9*9).'лв.';?> ГПР: 36.23% <br> 
 
\t <p>Правилата за ползване на Уникредит Кънсюмър Файненсинг ЕАД са - <a href="http://dev.mupcku.com/leasing/unicredit.pdf" target="_blank">Съгласие за обработка на личните данни</a>. Потвърждавам, че съм съгласен личните ми данни да бъдат обработвани от Уникредит Кънсюмър Файненсинг ЕАД, по описания в документа начин и за целите посочени в него.</p> 
 
</div> 
 

 

 
<div id="tbi12" class="leasecond"> 
 
    <input type="text" style="border: none;" readonly />Разсрочено плащане с TBI, вноски 12 х <?php echo $tbi12=round($order_info['total']/10.16, 2).'лв.';?> обща дължима сума: <?php echo ($tbi12*12).'лв.';?> ГПР: 23.69% <br> 
 
\t <p>Прочетох и разбрах записаното в документа на Ти Би Ай Кредит EАД - <a href="http://dev.mupcku.com/leasing/tbi.pdf" target="_blank">Съгласие за обработка на личните данни</a>. Потвърждавам, че съм съгласен личните ми данни да бъдат обработвани от Ти Би Ай Кредит EАД, по описания в документа начин и за целите посочени в него.</p> 
 
</div> 
 
<div id="uni12" class="leasecond"> 
 
    <input type="text" style="border: none;" readonly />Разсрочено плащане с UNI Credit, вноски 12 x <?php echo $uni12=round($order_info['total']*(10.19/100), 2).'лв.';?> обща дължима сума: <?php echo ($uni12*12).'лв.';?> ГПР: 23.69% <br> 
 
\t <p>Правилата за ползване на Уникредит Кънсюмър Файненсинг ЕАД са - <a href="http://dev.mupcku.com/leasing/unicredit.pdf" target="_blank">Съгласие за обработка на личните данни</a>. Потвърждавам, че съм съгласен личните ми данни да бъдат обработвани от Уникредит Кънсюмър Файненсинг ЕАД, по описания в документа начин и за целите посочени в него.</p> 
 
</div> 
 

 

 
<div id="tbi15" class="leasecond"> 
 
    <input type="text" style="border: none;" readonly />Разсрочено плащане с TBI, вноски 15 х <?php echo $tbi15=round($order_info['total']/12.24, 2).'лв.';?> обща дължима сума: <?php echo ($tbi15*15).'лв.';?> ГПР: 23.89% <br> 
 
\t <p>Прочетох и разбрах записаното в документа на Ти Би Ай Кредит EАД - <a href="http://dev.mupcku.com/leasing/tbi.pdf" target="_blank">Съгласие за обработка на личните данни</a>. Потвърждавам, че съм съгласен личните ми данни да бъдат обработвани от Ти Би Ай Кредит EАД, по описания в документа начин и за целите посочени в него.</p> 
 
</div> 
 
<div id="uni15" class="leasecond"> 
 
    <input type="text" style="border: none;" readonly />Разсрочено плащане с UNI Credit, вноски 15 x <?php echo $uni15=round($order_info['total']*(8.53/100), 2).'лв.';?> обща дължима сума: <?php echo ($uni15*15).'лв.';?> ГПР: 23.89% <br> 
 
\t <p>Правилата за ползване на Уникредит Кънсюмър Файненсинг ЕАД са - <a href="http://dev.mupcku.com/leasing/unicredit.pdf" target="_blank">Съгласие за обработка на личните данни</a>. Потвърждавам, че съм съгласен личните ми данни да бъдат обработвани от Уникредит Кънсюмър Файненсинг ЕАД, по описания в документа начин и за целите посочени в него.</p> 
 
</div> 
 

 

 
<div id="tbi18" class="leasecond"> 
 
    <input type="text" style="border: none;" readonly />Разсрочено плащане с TBI, вноски 18 х <?php echo $tbi18=round($order_info['total']/14.17, 2).'лв.';?> обща дължима сума: <?php echo ($tbi18*18).'лв.';?> ГПР: 23.93% <br> 
 
\t <p>Прочетох и разбрах записаното в документа на Ти Би Ай Кредит EАД - <a href="http://dev.mupcku.com/leasing/tbi.pdf" target="_blank">Съгласие за обработка на личните данни</a>. Потвърждавам, че съм съгласен личните ми данни да бъдат обработвани от Ти Би Ай Кредит EАД, по описания в документа начин и за целите посочени в него.</p> 
 
</div> 
 
<div id="uni18" class="leasecond"> 
 
    <input type="text" style="border: none;" readonly />Разсрочено плащане с UNI Credit, вноски 18 x <?php echo $uni18=round($order_info['total']*(7.44/100), 2).'лв.';?> обща дължима сума: <?php echo ($uni18*18).'лв.';?> ГПР: 23.93% <br> 
 
\t <p>Правилата за ползване на Уникредит Кънсюмър Файненсинг ЕАД са - <a href="http://dev.mupcku.com/leasing/unicredit.pdf" target="_blank">Съгласие за обработка на личните данни</a>. Потвърждавам, че съм съгласен личните ми данни да бъдат обработвани от Уникредит Кънсюмър Файненсинг ЕАД, по описания в документа начин и за целите посочени в него.</p> 
 
</div> 
 

 

 
<form id="leasingform"> 
 
<div class="form-group required" style="padding-top: 15px;"> 
 
    <label class="control-label" for="input-payment-egn"><?php echo $text_egn; ?></label> 
 
     <input type="text" maxlength="10" name="egn" value="" placeholder="Въведете вашето ЕГН" id="input-payment-egn" 
 
        class="form-control"/> 
 
</div> 
 
<div class="text-danger" id="wrong-egn" style="display: none;">Въведете валидно ЕГН !</div> 
 
</form> 
 

 
</div> 
 
<div class="buttons"> 
 
    <div class="pull-right"> 
 
    <input type="button" value="<?php echo $button_confirm; ?>" id="button-confirm" class="btn btn-primary" data-loading-text="<?php echo $text_loading; ?>" /> 
 
    </div> 
 
</div>

+0

Hallo, wo werden diese Optionen auf der Checkout-Seite sein? – Daniel

+0

Dies ist eine Zahlungsmethode. Wenn der Benutzer es auswählt, tha Tabelle zeigt (auf Zahlung Beschreibung) gibt es meine Radio-Buttons :) –

+0

Ich hatte eine Aufgabe, die eine ähnliche Änderung der Versand-Modul, mein erster Schritt war, eine vorhandene Option zu wählen und zu sehen, wie bearbeite das. Bist du ein Entwickler? Verstehst du PHP & MVC? – Daniel

Antwort

0

Werfen Sie einen Blick auf das Skript auf der Checkout-Seite, die click Ereignis für die Zahlungsmethode Uhren:

$(document).delegate('#button-payment-method', 'click', function() { 
    $.ajax({ 
     url: 'index.php?route=checkout/payment_method/save', 
     type: 'post', 
     data: $('#collapse-payment-method input[type=\'radio\']:checked, #collapse-payment-method input[type=\'checkbox\']:checked, #collapse-payment-method textarea'), 
     dataType: 'json', 
     beforeSend: function() { 
      $('#button-payment-method').button('loading'); 
     }, 

Sie können sehen, dass es den "checked" -Eingang in diesem div an die Route im Ajax-Aufruf sendet (siehe die URL). Wenn Sie OpenCarts MVC-Implementierung verwenden, können Sie hier nach der Controller-Datei suchen: catalog\controller\checkout\payment_method.php Dann suchen Sie in dieser Datei nach der öffentlichen Funktion save. Dort erhalten Sie die ausgewählten Daten.

Um den zweiten Teil Ihrer Abfrage zu behandeln, wie man dies im Backend zeigt, wenn ich ein ähnliches Problem hatte, fügte ich meinen Eingabewert zu den Kommentaren des Benutzers hinzu. Um dies zu tun, fügte ich die Eingabedaten zur Session-Variable in der Controller-Datei hinzu (oben erwähnt) und dann auf den Wert NACH dem letzten "Bestätigen" -Klick des Benutzers, so dass der Kommentar für den Benutzer nicht sofort sichtbar war.

den Wert auf die Sitzung Hinzufügen:

if(isset($this->request->post['months'])){ 
    $this->session->data['months'] = $this->request->post['months']; 
} 

Nun kann dieser Wert mit diesem $this->session->data['months'] zugegriffen werden, und Sie können es auf die Kommentare hinzufügen, indem Sie die Bearbeitung save Funktion:

$extra = ''; 

if(isset($this->session->data['months'])){ 
    $extra = $this->session->data['months']; 
} 

if (!$json) { 
    $this->session->data['payment_method'] = $this->session->data['payment_methods'][$this->request->post['payment_method']]; 

    $this->session->data['comment'] = $extra . " " .strip_tags($this->request->post['comment']); 
} 

I verwendet $extra als Platzhalter für die neuen Daten und fügte sie dann nur dann dem Kommentar des Benutzers hinzu, wenn ein Wert in der session

gespeichert war
+0

Hallo! Danke für die perfekte Antwort! Ich verstehe die Idee, und es entspricht genau meinen Bedürfnissen! Ich habe gerade nicht bekommen, wo ich den Wert der Sitzung hinzufügen muss, wenn (isset ($ this-> Anfrage-> Post ['Monate])) { $ this-> Sitzung-> Daten [' Monate '] = $ this -> Anfrage-> Post ['Monate']; }? –

+0

Gern geschehen, Sie können das erste Bit Code hinzufügen ('if (isset ($ this-> request-> post ['Monate'])) {') zum oberen Rand des 'catalog \ controller \ checkout \ payment_method.php '' save' Funktion (Zeile 132 auf meiner Seite), sollte es unter 'public function save() {' das zweite Stück Code kann direkt vor dieser Zeile gesetzt werden: $ this-> response-> addHeader ('Content-Type: application/json'); ' – Daniel

+0

Ja, ich habe es verstanden. Leider habe ich alles versucht, aber es stellt immer noch nicht die Daten von Radio-Buttons in den Kommentar der Bestellung .... –

Verwandte Themen