get_error_message(), 'error' ); } else { update_option( self::OPTION_API_KEY, $api_key ); update_option( self::OPTION_KEY_VALID, true ); add_settings_error( 'agentyme', 'key_saved', __( 'API key validated and saved. The chatbot is now active on your site.', 'agentyme' ), 'success' ); } set_transient( 'settings_errors', get_settings_errors(), 30 ); wp_safe_redirect( add_query_arg( 'page', self::MENU_SLUG, admin_url( 'options-general.php' ) ) ); exit; } public function render_settings_page(): void { if ( ! current_user_can( 'manage_options' ) ) { return; } $saved_key = get_option( self::OPTION_API_KEY, '' ); $key_valid = (bool) get_option( self::OPTION_KEY_VALID, false ); $has_key = ! empty( $saved_key ); // Re-hydrate errors stored in the transient after the POST→redirect cycle. $transient_errors = get_transient( 'settings_errors' ); if ( ! empty( $transient_errors ) ) { foreach ( $transient_errors as $error ) { add_settings_error( $error['setting'], $error['code'], $error['message'], $error['type'] ); } delete_transient( 'settings_errors' ); } ?>
%s', esc_html__( 'create a free account on Agentyme', 'agentyme' ) ) ); ?>