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,
|
||||
`form_id` int DEFAULT 0,
|
||||
`order_id` int DEFAULT 0,
|
||||
`currency_code` text,
|
||||
`channel` text NOT NULL,
|
||||
`total` float(10, 2) DEFAULT 0,
|
||||
`unique_code` int DEFAULT 0,
|
||||
@@ -63,10 +64,15 @@ class BankTransfer extends Payment {
|
||||
$table = $wpdb->prefix . 'formipay_bank_transfer_trx';
|
||||
|
||||
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 = [
|
||||
'created_date' => formipay_date('Y-m-d H:i:s', strtotime($order_data['created_date'])),
|
||||
'form_id' => intval($order_data['form_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'])),
|
||||
'total' => floatval($order_data['total']),
|
||||
'unique_code' => sanitize_text_field($this->check_unique_code()),
|
||||
|
||||
Reference in New Issue
Block a user