Ограничить код купона покупкой выбранной валюты в OpenCart
Можно ли ограничить код купона выбранной валютой в OpenCart?
Например, в магазине было две валюты XX и YY. Если покупатель выбирает валюту XX, поле "Код купона" отображается в корзине. В другом случае (валюта YY выбрана) нет.
OpenCart 2.0.3.1
1 ответ
Решение
Да, откройте этот файл:catalog/controller/checkout/coupon.php
в версии 2.0.3.1
находить:
if (empty($this->request->post['coupon'])) {
$json['error'] = $this->language->get('error_empty');
unset($this->session->data['coupon']);
} elseif ($coupon_info) {
$this->session->data['coupon'] = $this->request->post['coupon'];
$this->session->data['success'] = $this->language->get('text_success');
$json['redirect'] = $this->url->link('checkout/cart');
} else {
$json['error'] = $this->language->get('error_coupon');
}
измените это на:
if (empty($this->request->post['coupon'])) {
$json['error'] = $this->language->get('error_empty');
unset($this->session->data['coupon']);
} elseif ($coupon_info) {
// here I use USD for example
if($this->session->data['currency'] == 'USD'){
$this->session->data['coupon'] = $this->request->post['coupon'];
$this->session->data['success'] = $this->language->get('text_success');
$json['redirect'] = $this->url->link('checkout/cart');
} else {
// Write your custom error message here
$json['error'] = 'This coupon is only available in USD';
unset($this->session->data['coupon']);
}
} else {
$json['error'] = $this->language->get('error_coupon');
}