Plugin Directory

Changeset 3416745


Ignore:
Timestamp:
12/10/2025 07:59:39 PM (4 months ago)
Author:
rickey29
Message:

2.2.1

Location:
flx-woo/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • flx-woo/trunk/flx-woo.php

    r3416692 r3416745  
    44  Plugin URI: https://flxwoo.com
    55  Description: Headless WooCommerce checkout with FlxWoo — keep all payment gateways, shipping, and coupons working.
    6   Version: 2.2.0
     6  Version: 2.2.1
    77  Text Domain: flx-woo
    88  Domain Path: /languages
  • flx-woo/trunk/readme.txt

    r3416692 r3416745  
    77Requires PHP: 8.0
    88Requires Plugins: woocommerce
    9 Stable tag: 2.2.0
     9Stable tag: 2.2.1
    1010License: MIT
    1111License URI: https://opensource.org/license/mit
  • flx-woo/trunk/src/Admin/PerformanceDashboard.php

    r3416692 r3416745  
    169169        $new_settings['dev_mode'] = !empty($_POST['dev_mode']);
    170170
    171         // Cache enabled (checkbox: checked = '1', unchecked = not present)
    172         $new_settings['cache_enabled'] = !empty($_POST['cache_enabled']);
    173 
    174171        Logger::debug('Saving dashboard settings', [
    175172            'new_settings' => $new_settings,
  • flx-woo/trunk/src/Admin/SettingsManager.php

    r3416692 r3416745  
    4040    public function get_all_settings() {
    4141        $settings = get_option(self::OPTION_NAME, []);
     42        $defaults = $this->get_default_settings();
    4243
    4344        // Ensure all keys exist with defaults
    44         return array_merge($this->get_default_settings(), $settings);
     45        $merged = array_merge($defaults, $settings);
     46
     47        // Fix null values from database - use defaults instead
     48        foreach ($merged as $key => $value) {
     49            if ($value === null && isset($defaults[$key])) {
     50                $merged[$key] = $defaults[$key];
     51            }
     52        }
     53
     54        return $merged;
    4555    }
    4656
     
    213223            // 'cache_ttl' => NOT applicable
    214224
     225            // User-configurable settings
     226            'fallback_enabled' => true,  // Enable fallback to native WooCommerce by default
     227            'active_pages' => ['cart', 'checkout', 'thank-you'],  // All pages enabled by default
     228            'dev_mode' => false,  // Development mode disabled by default (requires HTTPS)
     229
    215230            'settings_version' => self::SETTINGS_VERSION,
    216231        ];
     
    239254            // case 'cache_ttl': NOT applicable
    240255
     256            // User-configurable settings
     257            case 'fallback_enabled':
     258            case 'dev_mode':
     259                return $this->validate_boolean($value);
     260
     261            case 'active_pages':
     262                return $this->validate_active_pages($value);
     263
    241264            case 'settings_version':
    242265                // Version is read-only, always return current version
     
    398421            // Renderer errors removed - hardcoded in Constants.php
    399422            // Cache errors removed - not applicable to dynamic e-commerce pages
     423            'fallback_enabled' => 'Fallback mode must be a boolean value.',
     424            'active_pages' => 'Active pages must be an array of valid page types (cart, checkout, thank-you).',
     425            'dev_mode' => 'Development mode must be a boolean value.',
    400426            'settings_version' => 'Settings version is read-only.',
    401427        ];
  • flx-woo/trunk/src/Admin/assets/js/performance-dashboard.js

    r3416692 r3416745  
    4141                    return $(this).val();
    4242                }).get(),
    43                 dev_mode: $('#dev_mode').is(':checked') ? '1' : '',
    44                 cache_enabled: $('#cache_enabled').is(':checked') ? '1' : ''
     43                dev_mode: $('#dev_mode').is(':checked') ? '1' : ''
    4544            };
    4645
  • flx-woo/trunk/src/Admin/views/performance-dashboard.php

    r3416692 r3416745  
    2222$user_settings = $settings_manager->get_all_settings();
    2323
     24// Ensure active_pages is always an array (handle null/empty from database)
     25$active_pages = $user_settings['active_pages'] ?? ['cart', 'checkout', 'thank-you'];
     26if (!is_array($active_pages)) {
     27    $active_pages = ['cart', 'checkout', 'thank-you'];
     28}
     29
    2430$settings = [
    2531    'renderer_url' => defined('FLX_WOO_RENDERER_URL') ? FLX_WOO_RENDERER_URL : 'https://flx01.flxwoo.com',
    2632    'timeout' => defined('FLX_WOO_RENDERER_TIMEOUT') ? FLX_WOO_RENDERER_TIMEOUT : 5,
    27     'fallback_enabled' => $user_settings['fallback_enabled'],
    28     'active_pages' => $user_settings['active_pages'],
    29     'dev_mode' => $user_settings['dev_mode'],
    30     'cache_enabled' => $user_settings['cache_enabled'],
     33    'fallback_enabled' => $user_settings['fallback_enabled'] ?? true,
     34    'active_pages' => $active_pages,
     35    'dev_mode' => $user_settings['dev_mode'] ?? false,
    3136];
    3237
Note: See TracChangeset for help on using the changeset viewer.