Na formularzu zamówienia w sekcji wyboru metody dostawy mam dodane ekstra pole input typu hidden, którego wartość jest generowana dynamicznie przez JavaScript. Jak mogę dodać tę wartość do kosztu całkowitego?
Standardowo Opencart sprawdza która metoda dostawy została wybrana i na tej podstawie pobiera koszt dostawy taki jaki został podany w kokpicie w opcjach danej metody a następnie dodaje go do kosztu całkowitego. Ze względu na to, że moja opłata jest generowana dynamicznie, nie mogę jej ustawić "na sztywno" w kokpicie. Jak zatem można dodać taką wartość to kosztu zamówienia?
Wygląda na to, że najpierw w pliku catalog/view/theme/default/checkout/checkout.tpl OC sprawdza, która metoda dostawy została wybrana:
Code: Select all
$.ajax({
url: 'index.php?route=checkout/shipping',
type: 'post',
data: $('#shipping-method input[type=\'radio\']:checked, #shipping-method textarea'),
dataType: 'json',
Code: Select all
data: $('#shipping-method input[type=\'hidden\']:value, #shipping-method input[type=\'radio\']:checked, #shipping-method textarea'),
Code: Select all
class ModelTotalShipping extends Model {
public function getTotal(&$total_data, &$total, &$taxes) {
if ($this->cart->hasShipping() && isset($this->session->data['shipping_method'])) {
$total_data[] = array(
'code' => 'shipping',
'title' => $this->session->data['shipping_method']['title'],
'text' => $this->currency->format($this->session->data['shipping_method']['cost']),
'value' => $this->session->data['shipping_method']['cost'],
'sort_order' => $this->config->get('shipping_sort_order')
);
Code: Select all
data['shipping_method']['cost']