Dodaj Nowy Trening

'; // Obsługa zapisu formularza (musi być przed renderowaniem, aby wyświetlić komunikat) statpress_handle_activity_form_submission(); // Formularz dodawania statpress_render_add_form(); echo ''; } function statpress_edit_activity_page() { global $wpdb; $activity_id = isset( $_GET['id'] ) ? intval( $_GET['id'] ) : 0; if ( $activity_id === 0 ) { echo '

Błąd

Nie podano ID aktywności do edycji.

'; return; } // Handle form submission for update statpress_handle_activity_form_submission(); $table_activities = $wpdb->prefix . 'statpress_activities'; $activity = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table_activities WHERE id = %d", $activity_id ) ); if ( ! $activity ) { echo '

Błąd

Nie znaleziono aktywności o podanym ID.

'; return; } echo '

Edytuj Trening

'; statpress_render_add_form( $activity ); echo '
'; } /** * Obsługa zapisu nowego lub edytowanego wpisu do bazy danych */ function statpress_handle_activity_form_submission() { global $wpdb; // Sprawdź czy formularz został wysłany if ( ! isset( $_POST['statpress_submit_activity'] ) ) { return; } $activity_id = isset( $_POST['activity_id'] ) ? intval( $_POST['activity_id'] ) : 0; $nonce_action = $activity_id > 0 ? 'statpress_edit_entry_' . $activity_id : 'statpress_add_entry'; // Weryfikacja bezpieczeństwa (Nonce) if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], $nonce_action ) ) { echo '

Błąd weryfikacji bezpieczeństwa formularza.

'; return; } // Use the refactored function to save data. // We can pass $_POST directly as the function will sanitize it. $result = statpress_save_activity_data( $_POST, $activity_id ); if ( $activity_id > 0 ) { $message = 'Trening zaktualizowany pomyślnie!'; } else { $message = 'Trening dodany pomyślnie!'; } if ( $result ) { echo '

' . esc_html( $message ) . '

'; } else { echo '

Wystąpił błąd podczas zapisu do bazy.

'; } } /** * Renderowanie formularza HTML */ function statpress_render_add_form( $activity = null ) { // Enqueue media scripts for the uploader wp_enqueue_media(); global $wpdb; $table_categories = $wpdb->prefix . 'statpress_categories'; $table_event_types = $wpdb->prefix . 'statpress_event_types'; $table_equipment = $wpdb->prefix . 'statpress_equipment'; $categories = $wpdb->get_results( "SELECT * FROM $table_categories ORDER BY name ASC" ); $event_types = $wpdb->get_results( "SELECT * FROM $table_event_types ORDER BY name ASC" ); $equipment_list = $wpdb->get_results( "SELECT * FROM $table_equipment ORDER BY name ASC" ); $is_edit_mode = ! is_null( $activity ); $nonce_action = $is_edit_mode ? 'statpress_edit_entry_' . $activity->id : 'statpress_add_entry'; $form_title = $is_edit_mode ? 'Edytuj Aktywność' : 'Dodaj Nową Aktywność'; $button_text = $is_edit_mode ? 'Zaktualizuj Trening' : 'Zapisz Trening'; ?>


Dane szczegółowe (opcjonalne)


Linki zewnętrzne (opcjonalne)