1440 ) ? 1440 : $postedData['logout_time'] * 60; // 60 minutes if ( ! empty( $postedData['logout_time'] ) ) { //If redirection is a custom link $externalRedirectionLink = ! empty( $postedData['redirect_page_link'] ) && 'custom-page-redirect' === $postedData['redirect_page_link'] ? filter_input( INPUT_POST, 'custom_redirect_text_field' ) : false; if ( ! empty( $postedData['enable_redirect'] ) && ! empty( $postedData['redirect_page_link'] ) && 'custom-page-redirect' === $postedData['redirect_page_link'] ) { $postedData['custom_redirect_text_field'] = sanitize_url( $externalRedirectionLink ); Helpers::update_option( '__ina_custom_redirect_text_field', sanitize_url( $externalRedirectionLink ) ); } else { $postedData['custom_redirect_text_field'] = null; } /** * Save settings * * Deprecating in in future versions use "__ina_general_settings" instead */ $postedData['logout_time'] = $save_minutes; foreach ( $postedData as $key => $value ) { Helpers::update_option( "__ina_{$key}", $value ); } //New method to save all data into one row Helpers::update_option( "__ina_general_settings", $postedData ); } do_action( 'ina_after_update_basic_settings' ); Helpers::update_option( '__ina_saved_options', __( 'General Settings saved.', 'inactive-logout' ), false ); wp_send_json_success(); } /** * Save role based settings logic here * * @return void */ public function saveRoleBasedSettings() { if ( ! current_user_can( 'manage_options' ) ) { wp_die( __( 'Unauthorized.', 'inactive-logout' ), 403 ); } $postedData = RoleBasedSettingRequests::get(); $container_multi_user_arr = array(); //Enabled multi-role if ( ! empty( $postedData['ina_multiuser_roles'] ) ) { foreach ( $postedData['ina_multiuser_roles'] as $k => $ina_multiuser_role ) { $user_timeout_minutes = ! empty( $postedData['ina_individual_user_timeout'][ $ina_multiuser_role ] ) ? absint( $postedData['ina_individual_user_timeout'][ $ina_multiuser_role ] ) : 15; $redirect_page_link = !empty( $postedData['ina_redirect_page_individual_user'][ $ina_multiuser_role ] ) ? esc_url_raw( trim( $postedData['ina_redirect_page_individual_user'][ $ina_multiuser_role ] ) ) : ''; $disabled_for_user = ! empty( $postedData['ina_disable_inactive_logout'][ $ina_multiuser_role ] ); $disabled_for_user_concurrent_login = ! empty( $postedData['ina_disable_inactive_concurrent_login'][ $ina_multiuser_role ] ); // Validate URL if ( empty( $redirect_page_link ) || ! wp_http_validate_url( $redirect_page_link ) ) { $redirect_page_link = ''; } $container_multi_user_arr[] = array( 'role' => $ina_multiuser_role, 'timeout' => min( $user_timeout_minutes, 1440 ), 'redirect_page' => $redirect_page_link, 'disabled_feature' => $disabled_for_user ? 1 : null, 'disabled_concurrent_login' => $disabled_for_user_concurrent_login ? 1 : null, ); } } do_action( 'ina_before_update_adv_settings', $container_multi_user_arr ); Helpers::update_option( '__ina_enable_timeout_multiusers', $postedData['ina_enable_different_role_timeout'] ); if ( ! empty( $postedData['ina_enable_different_role_timeout'] ) ) { Helpers::update_option( '__ina_multiusers_settings', $container_multi_user_arr ); } do_action( 'ina_after_update_adv_settings', $container_multi_user_arr ); Helpers::set_message( __( 'Role based settings saved.', 'inactive-logout' ) ); } public function resetRoleBasedSettings() { if ( ! current_user_can( 'manage_options' ) ) { wp_send_json_error( __( 'Unauthorized.', 'inactive-logout' ), 403 ); } check_ajax_referer( '_ina_security_nonce', 'security' ); delete_option( '__ina_roles' ); delete_option( '__ina_enable_timeout_multiusers' ); delete_option( '__ina_multiusers_settings' ); if ( wp_doing_ajax() && get_current_blog_id() == get_main_network_id() && is_multisite() ) { delete_site_option( '__ina_roles' ); delete_site_option( '__ina_enable_timeout_multiusers' ); delete_site_option( '__ina_multiusers_settings' ); } Helpers::update_option( '__ina_saved_options', __( 'Role based settings reset.', 'inactive-logout' ), false ); wp_send_json( array( 'code' => 1, 'msg' => esc_html__( 'Reset advanced settings successful.', 'inactive-logout' ), ) ); wp_die(); } private static ?StoreController $_instance = null; public static function getInstance(): ?StoreController { if ( is_null( self::$_instance ) ) { self::$_instance = new self(); } return self::$_instance; } }