1 - Take a screenshot of your admin free checkout payment module configurations.
2 - Uninstall the free checkout payment module.
3 - In admin/controller/extension/payment/free_checkout.php file,
find:
Code: Select all
if (isset($this->request->post['free_checkout_order_status_id'])) {
$data['free_checkout_order_status_id'] = $this->request->post['free_checkout_order_status_id'];
} else {
$data['free_checkout_order_status_id'] = $this->config->get('free_checkout_order_status_id');
}
Code: Select all
if (isset($this->request->post['payment_free_checkout_order_status_id'])) {
$data['payment_free_checkout_order_status_id'] = $this->request->post['payment_free_checkout_order_status_id'];
} else {
$data['payment_free_checkout_order_status_id'] = $this->config->get('payment_free_checkout_order_status_id');
}
find:
Code: Select all
<select name="free_checkout_order_status_id" id="input-order-status" class="form-control">
{% for order_status in order_statuses %}
{% if order_status.order_status_id == free_checkout_order_status_id %}
<option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option>
{% else %}
<option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option>
{% endif %}
{% endfor %}
Code: Select all
<select name="payment_free_checkout_order_status_id" id="input-order-status" class="form-control">
{% for order_status in order_statuses %}
{% if order_status.order_status_id == payment_free_checkout_order_status_id %}
<option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option>
{% else %}
<option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option>
{% endif %}
{% endfor %}
5 - Reconfigure the free checkout payment module.
6 - Test a transaction during checkout.
7 - When successful, disable the site maintenance (if running in production).
This should overall resolve the status issues along with other variables.