Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Wordpress]Zmiana tabeli pobierania i zapisywania customowych postów
Kiui
post 12.09.2024, 11:31:27
Post #1





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 8.06.2012
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cześć,

Chciałbym wordpresie we własnym typie postów podmienić tabelę pobierania danych z wp_posts na wp_moja_wlasna tabele.
Przejrzałem Internet w zadłuż i szerz, genialne chat boty też nie wiedzą jak zrobić.
odpowiednikiem jest np. tabela wc_orders i zapis zamówień w woocomerca
Próbowałem to robić za pomocą:
  1. public function __construct() {
  2. add_filter( 'manage_edit-joboffers_candidates_columns', array( $this, 'modify_job_offer_candidates_columns' );
  3. add_action( 'manage_joboffers_candidates_posts_custom_column', array( $this, 'display_job_offer_candidates_data', 10, 2 );
  4. }
  5.  
  6. function modify_job_offer_candidates_columns( $columns ) {
  7. // Usuwamy domyślne kolumny
  8. unset( $columns['title'] );
  9. unset( $columns['date'] );
  10.  
  11. // Dodajemy nowe kolumny
  12. $columns['id'] = __( 'ID', 'job-offers-plugin' );
  13. $columns['create_data'] = __( 'Data utworzenia', 'job-offers-plugin' );
  14. $columns['name'] = __( 'Imię', 'job-offers-plugin' );
  15. $columns['surname'] = __( 'Nazwisko', 'job-offers-plugin' );
  16. $columns['phone'] = __( 'Telefon', 'job-offers-plugin' );
  17. $columns['email'] = __( 'Email', 'job-offers-plugin' );
  18. $columns['status'] = __( 'Status', 'job-offers-plugin' );
  19.  
  20. return $columns;
  21. }
  22. function display_job_offer_candidates_data( $column, $post_id ) {
  23. global $wpdb;
  24.  
  25. // Zapytanie SQL do pobrania danych z tabeli wp_st_candidate_applications
  26. $sql = "SELECT `id`, `create_data`, `name`, `surname`, `phone`, `email`, `status`
  27. FROM `wp_mojatabela`
  28. WHERE `post_id` = %d";
  29.  
  30. $results = $wpdb->get_results( $wpdb->prepare( $sql, $post_id ) );
  31.  
  32. if ( ! empty( $results ) ) {
  33. $candidate_data = $results[0]; // Pobieramy pierwszy wynik (zakładamy, że jest tylko jeden kandydat na ofertę)
  34.  
  35. switch ( $column ) {
  36. case 'id':
  37. echo $candidate_data->id;
  38. break;
  39. case 'create_data':
  40. echo $candidate_data->create_data;
  41. break;
  42. case 'name':
  43. echo $candidate_data->name;
  44. break;
  45. case 'surname':
  46. echo $candidate_data->surname;
  47. break;
  48. case 'phone':
  49. echo $candidate_data->phone;
  50. break;
  51. case 'email':
  52. echo $candidate_data->email;
  53. break;
  54. case 'status':
  55. echo $candidate_data->status;
  56. break;
  57. }
  58. } else {
  59. echo '-'; // Wyświetlamy "-" jeśli nie ma danych dla danego postu
  60. }
  61. }
Go to the top of the page
+Quote Post
Aneczka65
post 13.01.2025, 16:59:13
Post #2





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 23.12.2024

Ostrzeżenie: (0%)
-----


Możesz zrobić to za pomocą hooków w WordPressie, ale musisz dostosować zapytania, żeby odczytywały dane z własnej tabeli. Twój kod wygląda OK, tylko upewnij się, że dobrze obsługujesz post_id i dodajesz kolumny poprawnie. Sprawdź też, czy wp_mojatabela ma poprawny prefiks i strukturę.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.05.2025 - 22:25