2013-06-10 4 views
2

Я пытаюсь добавить автоматический инкассо в интернет-магазин. Все сделано, но сейчас, я хочу настроить его.Opencart дополнительное поле по оплате выберите

Онлайн сайт тест: g7.rjbtest.nl

Я хочу, что если вы выбираете автоматический инкассо на шаге 5, в нижней части до кнопки Продолжим поле добавляется, где вы должны положить ваш номер банковского счета в. Теперь это на шаге 6, но это не удобно.

enter image description here

Вопрос прост. Возможно ли, и как это сделать, чтобы получить дополнительное поле, где пользователь должен поставить там номер банковского счета, на том же шаге, где они выбирают автоматический incasso.

Даже если вы можете указать мне только в правильном направлении, я был бы доволен.

EDIT

Вот код, я получил в /catelog/controller/paymemt/incasso.php

<?php 
class ControllerPaymentIncasso extends Controller { 
    protected function index() { 
     $this -> language -> load('payment/incasso'); 

     $this -> data['text_instruction'] = $this -> language -> get('text_instruction'); 
     $this -> data['text_description'] = $this -> language -> get('text_description'); 
     $this -> data['text_payment'] = $this -> language -> get('text_payment'); 
     $this -> data['text_number_insert'] = $this -> language -> get('text_number_insert'); 
     $this -> data['bankNumberError'] = $this -> language -> get('bankNumberError'); 

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

     $this -> data['bank'] = nl2br($this -> config -> get('incasso_bank_' . $this -> config -> get('config_language_id'))); 

     $this -> data['continue'] = $this -> url -> link('checkout/success'); 

     if (file_exists(DIR_TEMPLATE . $this -> config -> get('config_template') . '/template/payment/incasso.tpl')) { 
      $this -> template = $this -> config -> get('config_template') . '/template/payment/incasso.tpl'; 
     } else { 
      $this -> template = 'default/template/payment/incasso.tpl'; 
     } 

     $this -> render(); 
    } 

    public function confirm() { 
     $this -> language -> load('payment/incasso'); 

     $this -> load -> model('checkout/order'); 
     $this -> load -> model('payment/incasso'); 

     $comment = $this -> language -> get('text_instruction') . "\n\n"; 
     $comment .= $this -> config -> get('incasso_bank_' . $this -> config -> get('config_language_id')) . "\n\n"; 
     $comment .= $this -> language -> get('text_payment'); 

     $this -> model_checkout_order -> confirm($this -> session -> data['order_id'], $this -> config -> get('incasso_order_status_id'), $comment, true); 

     $rekNum = $_GET['rn']; 
     $this -> model_payment_incasso -> insertRekNum($this -> session -> data['order_id'], $rekNum); 
    } 

} 
?> 

И catelog/model/payment/incasso.php

<?php 
class ModelPaymentIncasso extends Model { 
    public function getMethod($address, $total) { 
     $this -> language -> load('payment/incasso'); 

     $query = $this -> db -> query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this -> config -> get('incasso_geo_zone_id') . "' AND country_id = '" . (int)$address['country_id'] . "' AND (zone_id = '" . (int)$address['zone_id'] . "' OR zone_id = '0')"); 

     if ($this -> config -> get('incasso_total') > 0 && $this -> config -> get('incasso_total') > $total) { 
      $status = false; 
     } elseif (!$this -> config -> get('incasso_geo_zone_id')) { 
      $status = true; 
     } elseif ($query -> num_rows) { 
      $status = true; 
     } else { 
      $status = false; 
     } 

     $method_data = array(); 

     if ($status) { 
      $method_data = array('code' => 'incasso', 'title' => $this -> language -> get('text_title'), 'sort_order' => $this -> config -> get('incasso_sort_order')); 
     } 

     return $method_data; 
    } 

    public function insertRekNum($orderNum, $rekNum) { 
     $sql = "INSERT INTO `" . DB_PREFIX . "order_incasso` (
        `order_id` , 
        `iban` 
        ) 
        VALUES (
        '$orderNum', '$rekNum' 
        );"; 
     $this -> db -> query($sql); 
    } 

} 
?> 

И catelog/view/theme/default/template/payment/incasso.tpl

<h2><?php echo $text_instruction; ?></h2> 
<div class="content"> 
    <p><?php echo $text_description; ?></p> 
    <p><?php echo $bank; ?></p> 
    <p><?php echo $text_payment; ?></p> 
</div> 
<div class="buttons"> 
    <div class="left" > 
     <?php echo $text_number_insert; ?> <input type="text" value="" id="bankAccountNumber" /> 
    </div> 
    <div class="right"> 
     <input type="button" value="<?php echo $button_confirm; ?>" id="button-confirm" class="button" /> 
    </div> 
</div> 
<script type="text/javascript"> 
$('#button-confirm').bind('click', function() { 
    var bankNumber = $("#bankAccountNumber").val(); 
    if(bankNumber.trim() == ""){ 
     alert("<?php echo $bankNumberError; ?>"); 
     return false; 
    } 
    $.ajax({ 
     type: 'get', 
     url: 'index.php?route=payment/incasso/confirm&rn=' + bankNumber, 
     success: function() { 
      location = '<?php echo $continue; ?>'; 
     }  
    }); 
}); 
</script> 
+0

Ну, хороший. И в чем именно вопрос? – shadyyx

+0

@shadyyx, извините за непонятный вопрос. Надеюсь, что обновленная версия лучше понять ... – Mathlight

+0

И вы могли бы опубликовать какой-то код на * как это уже сделано * или мы должны догадываться со звезд? :-) – shadyyx

ответ

1

Единственное, что приходит на ум:

  1. обновить payment.tpl шаблон и добавить вход банковского счета здесь после того, как варианты оплаты предоставляются
  2. добавить код JS, который будет немедленно скрыть вход или сделать его не отображаться инлайн CSS (Я предпочитаю JS до инлайн CSS)
  3. добавить JS код, который будет обрабатывать платежные радиоприемники change событий и когда опция оплаты Инкассо проверяется, показывает вход банковского счета или скрыть его иначе
  4. добавить код JS от вашего incasso.tpl, который будет хранить банковский счет к БД ...

Это должно быть самым простым решением ...

+0

Что я об этом не думал ... Я буду работать над ним завтра, но я буду держать вас в курсе. Спасибо anywhay: D – Mathlight

+0

Это получилось отлично. Спасибо: P – Mathlight

+0

Добро пожаловать! – shadyyx

Смежные вопросы