fix: add currency_code column to Bank Transfer transaction table
- Add currency_code column to formipay_bank_transfer_trx table schema - Store currency code from product settings when creating transaction - Prevents data loss by tracking which currency was used for bank transfer payments - Matches PayPal implementation pattern for consistency
This commit is contained in:
@@ -42,6 +42,7 @@ class BankTransfer extends Payment {
|
|||||||
`created_date` datetime DEFAULT CURRENT_TIMESTAMP,
|
`created_date` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||||
`form_id` int DEFAULT 0,
|
`form_id` int DEFAULT 0,
|
||||||
`order_id` int DEFAULT 0,
|
`order_id` int DEFAULT 0,
|
||||||
|
`currency_code` text,
|
||||||
`channel` text NOT NULL,
|
`channel` text NOT NULL,
|
||||||
`total` float(10, 2) DEFAULT 0,
|
`total` float(10, 2) DEFAULT 0,
|
||||||
`unique_code` int DEFAULT 0,
|
`unique_code` int DEFAULT 0,
|
||||||
@@ -61,12 +62,17 @@ class BankTransfer extends Payment {
|
|||||||
$formipay_settings = get_option('formipay_settings');
|
$formipay_settings = get_option('formipay_settings');
|
||||||
$timeout = isset($formipay_settings['bank_transfer_timeout']) ? (int) $formipay_settings['bank_transfer_timeout'] : 1440;
|
$timeout = isset($formipay_settings['bank_transfer_timeout']) ? (int) $formipay_settings['bank_transfer_timeout'] : 1440;
|
||||||
$table = $wpdb->prefix . 'formipay_bank_transfer_trx';
|
$table = $wpdb->prefix . 'formipay_bank_transfer_trx';
|
||||||
|
|
||||||
if ($order_data['payment_gateway'] == 'bank_transfer') {
|
if ($order_data['payment_gateway'] == 'bank_transfer') {
|
||||||
|
|
||||||
|
$currency_data = explode(':::', get_post_meta($order_data['form_id'], 'product_currency', true));
|
||||||
|
$currency_code = !empty($currency_data[0]) ? $currency_data[0] : formipay_default_currency('code');
|
||||||
|
|
||||||
$submit_args = [
|
$submit_args = [
|
||||||
'created_date' => formipay_date('Y-m-d H:i:s', strtotime($order_data['created_date'])),
|
'created_date' => formipay_date('Y-m-d H:i:s', strtotime($order_data['created_date'])),
|
||||||
'form_id' => intval($order_data['form_id']),
|
'form_id' => intval($order_data['form_id']),
|
||||||
'order_id' => intval($order_data['id']),
|
'order_id' => intval($order_data['id']),
|
||||||
|
'currency_code' => sanitize_text_field($currency_code),
|
||||||
'channel' => sanitize_text_field(str_replace($order_data['payment_gateway'].':::', '', $order_data['form_data']['payment'])),
|
'channel' => sanitize_text_field(str_replace($order_data['payment_gateway'].':::', '', $order_data['form_data']['payment'])),
|
||||||
'total' => floatval($order_data['total']),
|
'total' => floatval($order_data['total']),
|
||||||
'unique_code' => sanitize_text_field($this->check_unique_code()),
|
'unique_code' => sanitize_text_field($this->check_unique_code()),
|
||||||
|
|||||||
Reference in New Issue
Block a user