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'),
);
}
}