Current path: home/webdevt/www/demo2/wp-content/plugins/divi-contact-form-helper/d5/server/Admin/Managers/
?? Go up: /home/webdevt/www/demo2/wp-content/plugins/divi-contact-form-helper/d5/server/Admin
<?php
namespace KS_PAC_DCFH\Admin\Managers;
class FormSettingsManager
{
private static $_instance;
public static function instance(): self
{
if (self::$_instance === null) {
self::$_instance = new self();
}
return self::$_instance;
}
public static function is_setting_active($key): bool
{
$options = get_option('et_divi');
return isset($options[$key]) && 'on' === $options[$key];
}
public static function get_setting_value($key, $default = '')
{
$options = get_option('et_divi');
return $options[$key] ?? $default;
}
public static function update_contact_form_details($contact_form_id, $args, $collect_ip_address): void
{
$option_key = "_pwh_dcfh_contact_form_settings_$contact_form_id";
$form_old_settings = get_option($option_key, []);
$form_new_settings = [
'unique_id' => $contact_form_id,
'title' => $args['title'],
'page_id' => $args['page_id'],
'max_entries_allowed' => $args['max_entries_allowed'],
];
$form_new_settings = wp_parse_args($form_new_settings, $form_old_settings);
if (!ks_pac_dcfh_app()->misc_utils()::is_robot()) {
$form_new_settings['views'] = isset($form_old_settings['views']) ? $form_old_settings['views'] + 1 : 1;
$ip_address = et_core_get_ip_address();
$cookie_name = 'dcfh_uniqueviews_'.md5($ip_address).'_'.$contact_form_id;
if ($collect_ip_address && (!isset($_COOKIE[$cookie_name]) && !ks_pac_dcfh_app()->entry_meta_manager()::is_user_ip_exists($contact_form_id, $ip_address))) {
$form_new_settings['unique_views'] = isset($form_old_settings['unique_views']) ? $form_old_settings['unique_views'] + 1 : 1;
}
}
update_option($option_key, $form_new_settings, 'no');
}
public static function update_contact_form_total_entries($contact_form_id, $entries): void
{
$option_key = "_pwh_dcfh_contact_form_settings_$contact_form_id";
$form_settings = get_option($option_key);
if ($form_settings !== false) {
if (!isset($form_settings['total_entries']) || $form_settings['total_entries'] !== $entries) {
$form_settings['total_entries'] = $entries;
update_option($option_key, $form_settings, 'no');
}
}
}
public static function reset_contact_form_views($contact_form_id): void
{
$option_key = "_pwh_dcfh_contact_form_settings_$contact_form_id";
$form_settings = get_option($option_key);
$form_settings['views'] = 0;
$form_settings['unique_views'] = 0;
update_option($option_key, $form_settings, 'no');
}
public static function delete_contact_form_options($contact_form_id): void
{
$option_key = "_pwh_dcfh_contact_form_settings_$contact_form_id";
delete_option($option_key);
}
public static function get_contact_form_title($contact_form_id)
{
$option_key = "_pwh_dcfh_contact_form_settings_$contact_form_id";
$form_settings = get_option($option_key);
if ($form_settings !== false && isset($form_settings['title'])) {
return $form_settings['title'];
}
return $contact_form_id;
}
public static function update_contact_form_query_params($contact_form_id, $query_params): void
{
$query_params = wp_list_pluck($query_params, 'label', 'field_id');
$option_key = "_pwh_dcfh_contact_form_settings_$contact_form_id";
$form_settings = get_option($option_key);
if ($form_settings !== false) {
if (!isset($form_settings['query_params'])) {
$form_settings['query_params'] = [];
}
$new_query_params = wp_parse_args($query_params, $form_settings['query_params']);
$new_query_params = array_unique($new_query_params);
$form_settings['query_params'] = $new_query_params;
update_option($option_key, $form_settings, 'no');
}
}
public static function dynamic_entry_columns(): array
{
$columns = [];
$option = ks_pac_dcfh_app()->settings_rep()->get_setting('optional_entry_list_columns', 'name');
if (!empty($option) && is_string($option)) {
$option = preg_replace('/\s*,\s*/', ',', $option);
$columns = explode(',', strtolower($option));
$columns = array_filter($columns, 'strlen');
}
return $columns;
}
public static function update_backup_status(array $message): void
{
update_option('dcfh_entries_auto_backup_status', $message, 'no');
}
}