HEX
Server: LiteSpeed
System: Linux premium127.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
User: luxbsolr (925)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: /home/luxbsolr/cardsord.store/wp-content/plugins/product-modifier/includes/class-settings.php
<?php
/**
 * Settings functionality
 */

if (!defined('ABSPATH')) {
    exit;
}

class ProductModifier_Settings {
    
    public function __construct() {
        add_action('admin_init', array($this, 'init_settings'));
        add_action('wp_ajax_pm_save_settings', array($this, 'save_settings'));
    }
    
    /**
     * Initialize settings
     */
    public function init_settings() {
        register_setting('product_modifier_settings', 'product_modifier_products_per_page');
        register_setting('product_modifier_settings', 'product_modifier_auto_save');
        register_setting('product_modifier_settings', 'product_modifier_show_images');
        register_setting('product_modifier_settings', 'product_modifier_allowed_roles');
        
        // AI Enhancement Settings
        register_setting('product_modifier_settings', 'product_modifier_ai_enabled');
        register_setting('product_modifier_settings', 'product_modifier_ai_provider');
        register_setting('product_modifier_settings', 'product_modifier_gemini_api_key');
        register_setting('product_modifier_settings', 'product_modifier_ai_model');
        register_setting('product_modifier_settings', 'product_modifier_ai_quality');
        register_setting('product_modifier_settings', 'product_modifier_ai_language');
        register_setting('product_modifier_settings', 'product_modifier_ai_brand_voice');
    }
    
    /**
     * Save settings via AJAX
     */
    public function save_settings() {
        if (!wp_verify_nonce($_POST['nonce'], 'product_modifier_nonce')) {
            wp_die(__('Security check failed', 'product-modifier'));
        }
        
        if (!current_user_can('manage_options')) {
            wp_die(__('Insufficient permissions', 'product-modifier'));
        }
        
        $products_per_page = intval($_POST['products_per_page']);
        $auto_save = sanitize_text_field($_POST['auto_save']);
        $show_images = sanitize_text_field($_POST['show_images']);
        
        // Validate products per page (minimum 10, maximum 500)
        if ($products_per_page < 10) {
            $products_per_page = 10;
        } elseif ($products_per_page > 500) {
            $products_per_page = 500;
        }
        
        update_option('product_modifier_products_per_page', $products_per_page);
        update_option('product_modifier_auto_save', $auto_save);
        update_option('product_modifier_show_images', $show_images);
        
        wp_send_json_success(__('Settings saved successfully', 'product-modifier'));
    }
    
    /**
     * Get all settings
     */
    public static function get_settings() {
        return array(
            'products_per_page' => get_option('product_modifier_products_per_page', 100),
            'auto_save' => get_option('product_modifier_auto_save', 'yes'),
            'show_images' => get_option('product_modifier_show_images', 'yes'),
        );
    }
}