Вземане на данните от Х таблица при създадена "custom page"

Ticketa

Registered
Привет,
Захванах се с нещо, което ми стърка нервите последните няколко дни :lol:

Стигах до последната стъпка от задачата, а именно: Администратора да вижда запазените данни от базата данни и при желание да ги одобрява или неодобрява.


В момента съм използал тази "красота" за създаване на "къстъм плъгин"
Код:
// Custom Post Type: Roomtype
if (!function_exists('room_reservation')) {
    add_action('init', 'room_reservation', 0);
    function room_reservation()
    {
        $labels = array(
            'name' => _x('Reservation', 'Post Type General Name', 'starhotel'),
            'singular_name' => _x('Reservation', 'Post Type Singular Name', 'starhotel'),
            'menu_name' => __('Reservation', 'starhotel'),
            'all_items' => __('All Reservation', 'starhotel'),
            'view_item' => __('View Reservation', 'starhotel'),
            'search_items' => __('Search Reservation', 'starhotel'),
            'not_found' => __('No Reservation found', 'starhotel'),
            'not_found_in_trash' => __('No Reservation found in Trash', 'starhotel'),
        );
        $rewrite = array(
            'slug' => _x( 'Reservation', 'URL slug', 'starhotel' ),
            'with_front'          => true,
            'pages'               => true,
            'feeds'               => true,
        );
        $args = array(
            'label' => __('Reservation', 'starhotel'),
            'description' => __('Accommodation room Reservation', 'starhotel'),
            'labels' => $labels,
            'hierarchical' => false,
            'public' => true,
            'show_ui' => true,
            'show_in_menu' => true,
            'show_in_nav_menus' => true,
            'show_in_admin_bar' => true,
            'menu_position' => 5,
            'can_export' => true,
            'has_archive' => true,
            'exclude_from_search' => true,
            'publicly_queryable' => true,
            'rewrite' => $rewrite,
            'menu_icon' => 'dashicons-star-filled',
            
            'capability_type' => 'page',
                'capabilities' => array(
                'create_posts' => false, // Removes support for the "Add New" function ( use 'do_not_allow' instead of false for multisite set ups )
            ),
            'map_meta_cap' => true, // Set to `false`, if users are not allowed to edit/delete existing posts
        );
        register_post_type('room_reservation', $args);
        
    }
}


Този код ми създава страница в админ панела и добавя страницата в менюто. Страницата се казва: Reservation. Там, нямаш опция да добавяш или изтриваш (въпреки, че ако има как да добавям в специфична таблица, която съм създал бих го ползвал като опция)


Идеята ми е как мога в този код да извикам данните запаметени от таблица:
Код:
	CREATE TABLE `wp_calendar_reservation` (
	  `cr_id` int(100) NOT NULL,
	  `client_email` varchar(100) DEFAULT NULL,
	  `client_phone` varchar(100) DEFAULT NULL,
	  `client_checkin` varchar(100) DEFAULT NULL,
	  `client_checkout` varchar(100) DEFAULT NULL,
	  `client_room` varchar(100) DEFAULT NULL,
	  `client_adults` varchar(100) DEFAULT NULL,
	  `client_children` varchar(100) DEFAULT NULL,
	  `approve` int(11) NOT NULL DEFAULT 1
	) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Когато има нова резервация администратора да дава отметка за одобрение / неодобрение и да променя статуса в полето "approve"

Същност, ако има вариант да използвам тази таблица и да редактирам/добавям/изтривам (CRUD) ще е прекрасно през админ панела.


Проблема ми е, че "надграждам" някакъв скапан плъгин, който до момента е работел на принципа:
Въведи (във формуляр) => Изпрати (мейл)
 

Ticketa

Registered
Подкарах го от към визуализация на данните така:


Код:
function print_room_reservation_title()  {
    global $wpdb;
    echo "<h1>Резервации</h1>";
	$PlugGetCalendarQuery = $wpdb->get_results("SELECT * FROM `wp_calendar_reservation`;"); //вземане на всички събития от базата данни
	if ( count($PlugGetCalendarQuery) > 0 ) {
	    echo "<table class=\"wp-list-table widefat fixed striped posts\">";
	    echo "<thead>";
	    echo "<tr>";
	    echo "<td>Телефон</td>";
	    echo "<td>Мейл</td>";
	    echo "<td>Тип стая</td>";
	    echo "<td>Гости</td>";
	    echo "<td>Деца</td>";
	    echo "<td>Дата на резервация</td>";
	    echo "<td>Дата на напускане</td>";
	    echo "</tr>";
	    echo "</thead>";
    	foreach( $PlugGetCalendarQuery as $wp_calendar_row ) {
    	    echo "<tr>";
    	    echo "<td>".$wp_calendar_row->client_phone."</td>";
    	    echo "<td>".$wp_calendar_row->client_email."</td>";
    	    echo "<td>".$wp_calendar_row->client_room."</td>";
    	    echo "<td>".$wp_calendar_row->client_adults."</td>";
    	    echo "<td>".$wp_calendar_row->client_children."</td>";
    	    echo "<td>".$wp_calendar_row->client_checkin."</td>";
    	    echo "<td>".$wp_calendar_row->client_checkout."</td>";
    	   echo "</tr>";
    	}
	    echo "</table>";
	} else {
	    echo 'Съжаляваме, но в базата от данни липсва информация за резервации';
	}
}
function room_reservation_admin_menu()  {
  add_menu_page(
    'Резервации',// page title  
    'Резервации',// menu title  
    'manage_options',// capability  
    'room_reservation',// menu slug  
    'print_room_reservation_title'  // callback function  
  );  
}  
add_action( 'admin_menu', 'room_reservation_admin_menu', -30 );

Остава да накарам add_action да премести най-горе в менюто плъгина и някак си да създам опция за промяна на ОДОБРЕН/НЕОДОБРЕН
 

Ticketa

Registered
//offtopic
Точно това имах предвид, че това с което се "разправям" в момента е тотално насра*но - за времето, което му отделям да съм написал на Laravel някакъв сайт.. Не съм чел документацията поради простата причина, че бягам от wordpress като дявол от тамян. Благодаря.
 

Горе