diff --git a/admin/controller/extension/payment/razorpay.php b/admin/controller/extension/payment/razorpay.php index 2164f59..7bd07ff 100644 --- a/admin/controller/extension/payment/razorpay.php +++ b/admin/controller/extension/payment/razorpay.php @@ -34,6 +34,7 @@ public function index() $data['entry_order_status'] = $this->language->get('entry_order_status'); $data['entry_status'] = $this->language->get('entry_status'); $data['entry_sort_order'] = $this->language->get('entry_sort_order'); + $data['entry_geo_zone'] = $this->language->get('entry_geo_zone'); $data['button_save'] = $this->language->get('button_save'); $data['button_cancel'] = $this->language->get('button_cancel'); diff --git a/admin/controller/payment/razorpay.php b/admin/controller/payment/razorpay.php index 631843c..b5c2c24 100644 --- a/admin/controller/payment/razorpay.php +++ b/admin/controller/payment/razorpay.php @@ -34,6 +34,7 @@ public function index() $data['entry_order_status'] = $this->language->get('entry_order_status'); $data['entry_status'] = $this->language->get('entry_status'); $data['entry_sort_order'] = $this->language->get('entry_sort_order'); + $data['entry_geo_zone'] = $this->language->get('entry_geo_zone'); $data['button_save'] = $this->language->get('button_save'); $data['button_cancel'] = $this->language->get('button_cancel'); @@ -105,6 +106,16 @@ public function index() $data['order_statuses'] = $this->model_localisation_order_status->getOrderStatuses(); + if (isset($this->request->post['razorpay_geo_zone_id'])) { + $data['razorpay_geo_zone_id'] = $this->request->post['razorpay_geo_zone_id']; + } else { + $data['razorpay_geo_zone_id'] = $this->config->get('razorpay_geo_zone_id'); + } + + $this->load->model('localisation/geo_zone'); + + $data['geo_zones'] = $this->model_localisation_geo_zone->getGeoZones(); + if (isset($this->request->post['razorpay_status'])) { $data['razorpay_status'] = $this->request->post['razorpay_status']; } else { diff --git a/admin/language/english/payment/razorpay.php b/admin/language/english/payment/razorpay.php index cff4c12..1a79b50 100644 --- a/admin/language/english/payment/razorpay.php +++ b/admin/language/english/payment/razorpay.php @@ -13,6 +13,7 @@ $_['entry_key_id'] = 'Razorpay Key Id'; $_['entry_key_secret'] = 'Razorpay Key Secret'; $_['entry_order_status'] = 'Order Status'; +$_['entry_geo_zone'] = 'Geo Zone'; $_['entry_status'] = 'Status'; $_['entry_sort_order'] = 'Sort Order'; diff --git a/admin/view/template/payment/razorpay.tpl b/admin/view/template/payment/razorpay.tpl index 7a77d75..959c98c 100644 --- a/admin/view/template/payment/razorpay.tpl +++ b/admin/view/template/payment/razorpay.tpl @@ -57,6 +57,21 @@ +
+ +
+ +
+
diff --git a/catalog/model/payment/razorpay.php b/catalog/model/payment/razorpay.php index a33abb7..dd2519b 100644 --- a/catalog/model/payment/razorpay.php +++ b/catalog/model/payment/razorpay.php @@ -6,12 +6,26 @@ public function getMethod($address, $total) { $this->language->load('payment/razorpay'); - $method_data = array( - 'code' => 'razorpay', - 'title' => $this->language->get('text_title'), - 'terms' => '', - 'sort_order' => $this->config->get('razorpay_sort_order'), - ); + $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('razorpay_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('razorpay_geo_zone_id')) { + $status = true; + } elseif ($query->num_rows) { + $status = true; + } else { + $status = false; + } + + $method_data = array(); + + if ($status) { + $method_data = array( + 'code' => 'razorpay', + 'title' => $this->language->get('text_title'), + 'terms' => '', + 'sort_order' => $this->config->get('razorpay_sort_order'), + ); + } return $method_data; } diff --git a/catalog/view/theme/default/template/payment/razorpay.tpl b/catalog/view/theme/default/template/payment/razorpay.tpl index 0f4e395..fac1aa6 100644 --- a/catalog/view/theme/default/template/payment/razorpay.tpl +++ b/catalog/view/theme/default/template/payment/razorpay.tpl @@ -34,6 +34,11 @@ el.value = 'Please wait...'; } } else { + + razorpay_options.display_currency = ""; + razorpay_options.display_amount = ""; + if(!razorpay_instance){ razorpay_instance = new Razorpay(razorpay_options); if(razorpay_submit_btn){