"sanitize_text_field"] ); add_settings_field( "alanforms_site_key_field", "Site-Key", [__CLASS__, 'alanforms_render_field'], Settings::$settings_page_name, "alanforms_license_option", array( 'type' => 'text', 'id' => "alanforms_site_key_field" ) ); register_setting( 'alanforms_settings', "alanforms_api_key_field", ["sanitize_callback" => "sanitize_text_field"] ); add_settings_field( "alanforms_api_key_field", "API-Key", [__CLASS__, 'alanforms_render_field'], Settings::$settings_page_name, "alanforms_license_option", array( 'type' => 'text', 'id' => "alanforms_api_key_field" ) ); register_setting( 'alanforms_settings', "alanforms_contact_form_7_integration", ["sanitize_callback" => [__CLASS__, 'sanitize_boolean']] ); add_settings_field( "alanforms_contact_form_7_enabled", "Contact-Form-7 Integration", [__CLASS__, 'alanforms_render_field'], Settings::$settings_page_name, "alanforms_implementation_option", array( 'type' => 'checkbox', 'id' => "alanforms_contact_form_7_integration" ) ); register_setting( 'alanforms_settings', "alanforms_elementor_pro_integration", ["sanitize_callback" => [__CLASS__, 'sanitize_boolean']] ); add_settings_field( "alanforms_elementor_pro_enabled", "Elementor Pro Integration", [__CLASS__, 'alanforms_render_field'], Settings::$settings_page_name, "alanforms_implementation_option", array( 'type' => 'checkbox', 'id' => "alanforms_elementor_pro_integration" ) ); register_setting( 'alanforms_settings', "alanforms_language", ["sanitize_callback" => [__CLASS__, "sanitize_language_choice_field"]] ); add_settings_field( "alanforms_language", "Language", [__CLASS__, 'alanforms_render_field'], Settings::$settings_page_name, "alanforms_widget_option", array( 'type' => 'select', 'id' => "alanforms_language", 'params' => [ 'English' => 'en', 'German' => 'de', 'Spanish' => 'es', 'French' => 'fr', 'Italian' => 'it', 'Adapt to site' => '--', 'Custom' => 'custom' ] ) ); register_setting( 'alanforms_settings', 'alanforms_language_attribute_unverified', ["sanitize_callback" => "sanitize_text_field"] ); add_settings_field( "alanforms_language_attribute_unverified", "Unverified", [__CLASS__, 'alanforms_render_field'], Settings::$settings_page_name, "alanforms_widget_option", array( 'type' => 'text', 'id' => "alanforms_language_attribute_unverified", 'class' => "alanforms_language_custom_override", 'placeholder' => "There was an error validating" ) ); register_setting( 'alanforms_settings', 'alanforms_language_attribute_verified', ["sanitize_callback" => "sanitize_text_field"] ); add_settings_field( "alanforms_language_attribute_verified", "Verified", [__CLASS__, 'alanforms_render_field'], Settings::$settings_page_name, "alanforms_widget_option", array( 'type' => 'text', 'id' => "alanforms_language_attribute_verified", 'class' => "alanforms_language_custom_override", 'placeholder' => "Verification successful!" ) ); register_setting( 'alanforms_settings', 'alanforms_language_attribute_working', ["sanitize_callback" => "sanitize_text_field"] ); add_settings_field( "alanforms_language_attribute_working", "Working", [__CLASS__, 'alanforms_render_field'], Settings::$settings_page_name, "alanforms_widget_option", array( 'type' => 'text', 'id' => "alanforms_language_attribute_working", 'class' => "alanforms_language_custom_override", 'placeholder' => "Verification in progress" ) ); register_setting( 'alanforms_settings', 'alanforms_language_attribute_start', ["sanitize_callback" => "sanitize_text_field"] ); add_settings_field( "alanforms_language_attribute_start", "Start", [__CLASS__, 'alanforms_render_field'], Settings::$settings_page_name, "alanforms_widget_option", array( 'type' => 'text', 'id' => "alanforms_language_attribute_start", 'class' => "alanforms_language_custom_override", 'placeholder' => "Start verification" ) ); register_setting( 'alanforms_settings', 'alanforms_language_attribute_retry', ["sanitize_callback" => "sanitize_text_field"] ); add_settings_field( "alanforms_language_attribute_retry", "Retry", [__CLASS__, 'alanforms_render_field'], Settings::$settings_page_name, "alanforms_widget_option", array( 'type' => 'text', 'id' => "alanforms_language_attribute_retry", 'class' => "alanforms_language_custom_override", 'placeholder' => "Retry" ) ); } public static function sanitize_boolean($str) { return filter_var($str, FILTER_VALIDATE_BOOLEAN); } public static function sanitize_language_choice_field($str) { $choices = ["en", "de", "es", "fr", "it", "--", "custom"]; return in_array($str, $choices) ? $str : "en"; } public static function alanforms_header_option_callback() { } public static function alanforms_render_field($args) { $value = esc_html(get_option($args["id"])); switch ($args["type"]) { case "checkbox": $value = ($value) ? 'checked' : ''; echo ""; break; case "text": echo ""; break; case "select": echo ""; break; } } public static function admin_scripts($hook) { if ($hook == 'toplevel_page_' . Settings::$settings_page_name) wp_enqueue_script( "alanforms_admin_language_script", plugins_url("../assets/js/adminLanguageVisibility.js", __FILE__), [], "1.0.0", ['in_footer' => true] ); } public static function register_forms_setting_function() { //check credential validity if (!ApiKeyChecker::getCredentialValidity(true)) { if (sanitize_text_field(get_option("alanforms_api_key_field")) === "" && sanitize_text_field(get_option("alanforms_site_key_field")) === "") { add_settings_error("API-Key", "credential-error", "No keys configured. Configure them for AlanCaptcha Forms to work."); } else { add_settings_error("API-Key", "credential-error", "AlanCaptcha credentials are wrong. Make sure they are correct before using AlanCaptcha."); } } ?>