Skip to content

Commit

Permalink
Improved checkout issue when logged as guest.
Browse files Browse the repository at this point in the history
  • Loading branch information
gregorkosmina committed Mar 6, 2018
1 parent b2b401a commit 1722576
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 36 deletions.
42 changes: 24 additions & 18 deletions catalog/model/extension/payment/wirecard_installment.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,17 @@ class ModelExtensionPaymentWirecardInstallment extends ModelExtensionPaymentWire
*/
public function getMethod($address, $total)
{

if ($this->cart->hasShipping()) {
$this->load->model('account/address');

$payment_address = $this->model_account_address->getAddress($this->session->data['payment_address']['address_id']);
$shipping_address = $this->model_account_address->getAddress($this->session->data['shipping_address']['address_id']);
if (isset($this->session->data['guest'])) {
$payment_address = $this->model_account_address->getAddress($this->session->data['guest']['shipping_address']);
$shipping_address = $this->model_account_address->getAddress($this->session->data['guest']['shipping_address']);
} else {
$payment_address = $this->model_account_address->getAddress($this->session->data['payment_address']['address_id']);
$shipping_address = $this->model_account_address->getAddress($this->session->data['shipping_address']['address_id']);
}

$fields = array(
'firstname',
Expand All @@ -75,24 +81,24 @@ public function getMethod($address, $total)
}
}

$min_amount = $this->config->get('payment_'.$this->prefix.$this->payment_type.'_minAmount');
if ( ! empty($min_amount) && $total < $min_amount) {
return FALSE;
}
$min_amount = $this->config->get('payment_'.$this->prefix.$this->payment_type.'_minAmount');
if ( ! empty($min_amount) && $total < $min_amount) {
return FALSE;
}

$max_amount = $this->config->get('payment_'.$this->prefix.$this->payment_type.'_maxAmount');
if ( ! empty($max_amount) && $total > $max_amount) {
return FALSE;
}
$max_amount = $this->config->get('payment_'.$this->prefix.$this->payment_type.'_maxAmount');
if ( ! empty($max_amount) && $total > $max_amount) {
return FALSE;
}

$currencies = $this->config->get('payment_'.$this->prefix.$this->payment_type.'_currency');
if ( ! empty($currencies) && ! in_array($this->session->data['currency'], $currencies)) {
return FALSE;
}
$country_ids = $this->config->get('payment_'.$this->prefix.$this->payment_type.'_country');
if ( ! empty($country_ids) && ! in_array($this->session->data['payment_address']['country_id'], $country_ids)) {
return FALSE;
}
$currencies = $this->config->get('payment_'.$this->prefix.$this->payment_type.'_currency');
if ( ! empty($currencies) && ! in_array($this->session->data['currency'], $currencies)) {
return FALSE;
}
$country_ids = $this->config->get('payment_'.$this->prefix.$this->payment_type.'_country');
if ( ! empty($country_ids) && ! in_array($this->session->data['payment_address']['country_id'], $country_ids)) {
return FALSE;
}

return parent::getMethod($address, $total);
}
Expand Down
42 changes: 24 additions & 18 deletions catalog/model/extension/payment/wirecard_invoice.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,14 @@ public function getMethod($address, $total)
if ($this->cart->hasShipping()) {
$this->load->model('account/address');

$payment_address = $this->model_account_address->getAddress($this->session->data['payment_address']['address_id']);
$shipping_address = $this->model_account_address->getAddress($this->session->data['shipping_address']['address_id']);
if (isset($this->session->data['guest'])) {
$payment_address = $this->model_account_address->getAddress($this->session->data['guest']['shipping_address']);
$shipping_address = $this->model_account_address->getAddress($this->session->data['guest']['shipping_address']);
} else {
$payment_address = $this->model_account_address->getAddress($this->session->data['payment_address']['address_id']);
$shipping_address = $this->model_account_address->getAddress($this->session->data['shipping_address']['address_id']);
}

$fields = array(
'firstname',
'lastname',
Expand All @@ -74,24 +80,24 @@ public function getMethod($address, $total)
}
}

$min_amount = $this->config->get($this->prefix.$this->payment_type.'_minAmount');
if ( ! empty($min_amount) && $total < $min_amount) {
return FALSE;
}
$min_amount = $this->config->get($this->prefix.$this->payment_type.'_minAmount');
if ( ! empty($min_amount) && $total < $min_amount) {
return FALSE;
}

$max_amount = $this->config->get($this->prefix.$this->payment_type.'_maxAmount');
if ( ! empty($max_amount) && $total > $max_amount) {
return FALSE;
}
$max_amount = $this->config->get($this->prefix.$this->payment_type.'_maxAmount');
if ( ! empty($max_amount) && $total > $max_amount) {
return FALSE;
}

$currencies = $this->config->get($this->prefix.$this->payment_type.'_currency');
if ( ! empty($currencies) && ! in_array($this->session->data['currency'], $currencies)) {
return FALSE;
}
$country_ids = $this->config->get($this->prefix.$this->payment_type.'_country');
if ( ! empty($country_ids) && ! in_array($this->session->data['payment_address']['country_id'], $country_ids)) {
return FALSE;
}
$currencies = $this->config->get($this->prefix.$this->payment_type.'_currency');
if ( ! empty($currencies) && ! in_array($this->session->data['currency'], $currencies)) {
return FALSE;
}
$country_ids = $this->config->get($this->prefix.$this->payment_type.'_country');
if ( ! empty($country_ids) && ! in_array($this->session->data['payment_address']['country_id'], $country_ids)) {
return FALSE;
}

return parent::getMethod($address, $total);
}
Expand Down

0 comments on commit 1722576

Please sign in to comment.