settings_storage = $settings_storage ?? new Settings_Storage();
$this->settings_validator = $settings_validator ?? new Settings_Validator();
}
/**
* Render complete settings form.
*
* @since 1.0.0
* @param array $template_vars Template variables.
* @return void
*/
public function render_settings_form( array $template_vars ): void {
?>
$error ) : ?>
-
get_field_display_name( $field ) ); ?>:
__( 'Instant Processing', 'accessibility-audio-tts-text-to-speech-for-articles' ),
'wp_cron' => __( 'Background Processing (Recommended)', 'accessibility-audio-tts-text-to-speech-for-articles' ),
);
return $names[ $mode ] ?? $mode;
}
/**
* Get mode description.
*
* @since 1.0.0
* @param string $mode Mode identifier.
* @return string Description.
*/
private function get_mode_description( string $mode ): string {
$descriptions = array(
'instant' => __( 'Generate audio immediately when content is published. May slow down publishing.', 'accessibility-audio-tts-text-to-speech-for-articles' ),
'wp_cron' => __( 'Generate audio in the background using WordPress cron. Recommended for better performance.', 'accessibility-audio-tts-text-to-speech-for-articles' ),
);
return $descriptions[ $mode ] ?? '';
}
/**
* Get field display name.
*
* @since 1.0.0
* @param string $field Field identifier.
* @return string Display name.
*/
private function get_field_display_name( string $field ): string {
$names = array(
'api_key' => __( 'API Key', 'accessibility-audio-tts-text-to-speech-for-articles' ),
'voice_id' => __( 'Voice Selection', 'accessibility-audio-tts-text-to-speech-for-articles' ),
'voice_name' => __( 'Voice Name', 'accessibility-audio-tts-text-to-speech-for-articles' ),
'model' => __( 'AI Model', 'accessibility-audio-tts-text-to-speech-for-articles' ),
'mode' => __( 'Processing Mode', 'accessibility-audio-tts-text-to-speech-for-articles' ),
'post_types' => __( 'Content Types', 'accessibility-audio-tts-text-to-speech-for-articles' ),
'chatgpt_api_key' => __( 'ChatGPT API Key', 'accessibility-audio-tts-text-to-speech-for-articles' ),
'chatgpt_prompt' => __( 'Content Optimization Prompt', 'accessibility-audio-tts-text-to-speech-for-articles' ),
);
return $names[ $field ] ?? $field;
}
}