Plugin Directory

Changeset 3219889


Ignore:
Timestamp:
01/09/2025 10:07:16 PM (15 months ago)
Author:
webimpian
Message:

Add support multi merchant account

Location:
bayarcash-wc
Files:
385 added
11 edited

Legend:

Unmodified
Added
Removed
  • bayarcash-wc/trunk/bayarcash-wc.php

    r3207289 r3219889  
    1313 * Plugin Name:         Bayarcash WC
    1414 * Plugin URI:          https://bayarcash.com/
    15  * Version:             4.3.1
     15 * Version:             4.3.2
    1616 * Description:         Accept payment from Malaysia. Bayarcash support FPX, Direct Debit, DuitNow OBW & DuitNow QR payment channels.
    1717 * Author:              Web Impian
  • bayarcash-wc/trunk/includes/admin/bayarcash-wc-script.js

    r3185027 r3219889  
    11(function($) {
    22    $(document).ready(function() {
    3         const paymentMethods = [
     3        // Base payment methods
     4        const basePaymentMethods = [
    45            'bayarcash-wc',
    56            'duitnow-wc',
     
    1314            'duitnownets-wc',
    1415        ];
     16
     17        // Function to get FPX payment methods
     18        function getFpxPaymentMethods() {
     19            const fpxMethods = [];
     20            $('textarea[id^="woocommerce_bc-fpx-"][id$="-wc_bearer_token"]').each(function() {
     21                const id = $(this).attr('id');
     22                const method = id.match(/woocommerce_(bc-fpx-.*-wc)_bearer_token/);
     23                if (method && method[1]) {
     24                    fpxMethods.push(method[1]);
     25                }
     26            });
     27            return fpxMethods;
     28        }
     29
     30        // Combine all payment methods
     31        const paymentMethods = [...basePaymentMethods, ...getFpxPaymentMethods()];
    1532        const cache = {}; // Cache for jQuery selections and API responses
    1633
     
    110127                                    allPortals = allPortals.concat(data);
    111128
    112                                     // Store merchant info from the first page
    113129                                    if (!merchantInfo && meta.merchant) {
    114130                                        merchantInfo = meta.merchant;
    115131                                    }
    116132
    117                                     // Update nextPageUrl for the next iteration
    118133                                    nextPageUrl = links.next;
    119134
  • bayarcash-wc/trunk/includes/admin/bayarcash-wc-style.css

    r3185027 r3219889  
    1212}
    1313
    14 /* Specific styles for each payment method */
    15 #bayarcash-wc-verify-status.valid,
    16 #duitnow-wc-verify-status.valid,
    17 #linecredit-wc-verify-status.valid,
    18 #directdebit-wc-verify-status.valid,
    19 #duitnowqr-wc-verify-status.valid,
    20 #duitnowshopee-wc-verify-status.valid,
    21 #duitnowboost-wc-verify-status.valid,
    22 #duitnowqris-wc-verify-status.valid,
    23 #duitnowqriswallet-wc-verify-status.valid,
    24 #duitnownets-wc-verify-status.valid
    25 {
     14/* Valid status styles for all payment methods including dynamic FPX */
     15[id$="-wc-verify-status"].valid,
     16[id^="bc-fpx-"][id$="-wc-verify-status"].valid {
    2617    color: green;
    2718    font-weight: bold;
     
    2920}
    3021
    31 #bayarcash-wc-verify-status.invalid,
    32 #duitnow-wc-verify-status.invalid,
    33 #linecredit-wc-verify-status.invalid,
    34 #directdebit-wc-verify-status.invalid,
    35 #duitnowqr-wc-verify-status.invalid,
    36 #duitnowshopee-wc-verify-status.invalid,
    37 #duitnowboost-wc-verify-status.invalid,
    38 #duitnowqris-wc-verify-status.invalid,
    39 #duitnowqriswallet-wc-verify-status.invalid,
    40 #duitnownets-wc-verify-status.invalid
    41 {
     22/* Invalid status styles for all payment methods including dynamic FPX */
     23[id$="-wc-verify-status"].invalid,
     24[id^="bc-fpx-"][id$="-wc-verify-status"].invalid {
    4225    color: red;
    4326    font-weight: bold;
  • bayarcash-wc/trunk/includes/load.php

    r3206084 r3219889  
    1212require_once __DIR__.'/helpers.php';
    1313require_once __DIR__ . '/src/DependencyChecker.php';
     14require_once __DIR__ . '/src/AdditionalTab.php';
  • bayarcash-wc/trunk/includes/src/Bayarcash.php

    r3207289 r3219889  
    9393            }
    9494
     95            $number_of_gateways = get_option('bayarcash_additional_fpx', 1);
     96
     97            for ($i = 2; $i <= intval($number_of_gateways); $i++) {
     98                $gateways[] = new DynamicFpxGateway($i);
     99            }
     100
     101
    95102            return $gateways;
    96103        });
     
    148155                wp_enqueue_style($this->slug.'-checkout-css', $this->url.'includes/admin/checkout.css', null, $version);
    149156
    150                 // Define payment methods
    151                 $payment_methods = [
     157                // Define base payment methods
     158                $base_payment_methods = [
    152159                    'bayarcash-wc',
    153160                    'duitnow-wc',
     
    161168                    'duitnownets-wc'
    162169                ];
     170
     171                // Get all active payment methods from WooCommerce
     172                $payment_gateways = WC()->payment_gateways->payment_gateways();
     173                $fpx_methods = [];
     174
     175                // Find all FPX payment methods
     176                foreach ($payment_gateways as $gateway) {
     177                    if (strpos($gateway->id, 'bc-fpx-') === 0 && substr($gateway->id, -3) === '-wc') {
     178                        $fpx_methods[] = $gateway->id;
     179                    }
     180                }
     181
     182                // Combine base and FPX payment methods
     183                $payment_methods = array_merge($base_payment_methods, $fpx_methods);
    163184
    164185                // Build CSS for each payment method
  • bayarcash-wc/trunk/includes/src/BayarcashCheckoutFee.php

    r3185027 r3219889  
    2121            'duitnownets-wc'
    2222        ];
     23        $this->initialize_dynamic_payment_methods();
    2324        $this->init();
     25    }
     26
     27    private function initialize_dynamic_payment_methods(): void
     28    {
     29        $additional_fpx = (int)get_option('bayarcash_additional_fpx', 1);
     30
     31        // Add dynamic FPX payment methods if additional gateways are configured
     32        if ($additional_fpx > 1) {
     33            for ($i = 2; $i <= $additional_fpx; $i++) {
     34                $this->payment_methods[] = "bc-fpx-{$i}-wc";
     35            }
     36        }
    2437    }
    2538
  • bayarcash-wc/trunk/includes/src/CronEvent.php

    r3185027 r3219889  
    2525    {
    2626        $this->pt = $pt;
     27        $this->initialize_dynamic_payment_methods();
     28    }
     29
     30    private function initialize_dynamic_payment_methods(): void
     31    {
     32        $additional_fpx = (int)get_option('bayarcash_additional_fpx', 1);
     33
     34        // Add dynamic FPX payment methods if additional gateways are configured
     35        if ($additional_fpx > 1) {
     36            for ($i = 2; $i <= $additional_fpx; $i++) {
     37                $this->supported_payment_methods[] = "bc-fpx-{$i}-wc";
     38            }
     39        }
    2740    }
    2841
  • bayarcash-wc/trunk/includes/src/Gateway.php

    r3202439 r3219889  
    511511
    512512    protected function get_payment_settings($payment_method): array {
     513        if (preg_match('/^bc-fpx-(\d+)-wc$/', $payment_method)) {
     514            return [
     515                'settings' => get_option("woocommerce_{$payment_method}_settings", []),
     516                'gateway_number' => 1,
     517                'log_title' => $payment_method
     518            ];
     519        }
     520
    513521        if (!isset($this->payment_methods_config[$payment_method])) {
    514522            return [
     
    651659
    652660    private function get_log_title($payment_method): string {
     661        if (preg_match('/^bc-fpx-(\d+)-wc$/', $payment_method)) {
     662            return $payment_method;
     663        }
    653664        return $this->payment_methods_config[$payment_method]['log_title'] ?? 'bayarcash_unknown';
    654665    }
  • bayarcash-wc/trunk/includes/vendor/composer/autoload_classmap.php

    r3206084 r3219889  
    3434    'Bayarcash\\WooCommerce\\DuitNowQRISWALLET' => $baseDir . '/includes/src/Gateway/DuitNowQRISWALLET.php',
    3535    'Bayarcash\\WooCommerce\\DuitNowSPayLater' => $baseDir . '/includes/src/Gateway/DuitNowSPayLater.php',
     36    'Bayarcash\\WooCommerce\\DynamicFpxGateway' => $baseDir . '/includes/src/Gateway/DynamicFpxGateway.php',
    3637    'Bayarcash\\WooCommerce\\FpxGateway' => $baseDir . '/includes/src/Gateway/FpxGateway.php',
    3738    'Bayarcash\\WooCommerce\\LineCreditGateway' => $baseDir . '/includes/src/Gateway/LineCreditGateway.php',
  • bayarcash-wc/trunk/includes/vendor/composer/autoload_static.php

    r3206084 r3219889  
    115115        'Bayarcash\\WooCommerce\\DuitNowQRISWALLET' => __DIR__ . '/../../..' . '/includes/src/Gateway/DuitNowQRISWALLET.php',
    116116        'Bayarcash\\WooCommerce\\DuitNowSPayLater' => __DIR__ . '/../../..' . '/includes/src/Gateway/DuitNowSPayLater.php',
     117        'Bayarcash\\WooCommerce\\DynamicFpxGateway' => __DIR__ . '/../../..' . '/includes/src/Gateway/DynamicFpxGateway.php',
    117118        'Bayarcash\\WooCommerce\\FpxGateway' => __DIR__ . '/../../..' . '/includes/src/Gateway/FpxGateway.php',
    118119        'Bayarcash\\WooCommerce\\LineCreditGateway' => __DIR__ . '/../../..' . '/includes/src/Gateway/LineCreditGateway.php',
  • bayarcash-wc/trunk/readme.txt

    r3207289 r3219889  
    55Tested up to: 6.7
    66Requires PHP: 7.4
    7 Stable tag: 4.3.1
     7Stable tag: 4.3.2
    88License: GPLv3
    99License URI: https://www.gnu.org/licenses/gpl-3.0.txt
     
    8989== Changelog ==
    9090
     91= 4.3.2 =
     92* Added support for multiple merchant accounts of Bayarcash for FPX payment channels
     93
    9194= 4.3.1 =
    9295* Resolved compatibility issues with the SeedProd plugin
Note: See TracChangeset for help on using the changeset viewer.