// Handle booking via AJAX add_action('wp_ajax_rbm_book_table', 'rbm_handle_booking'); add_action('wp_ajax_nopriv_rbm_book_table', 'rbm_handle_booking'); function rbm_handle_booking() { $date = sanitize_text_field($_POST['booking-date']); $time = sanitize_text_field($_POST['booking-time']); $party_size = intval($_POST['party-size']); // Check availability and book (logic to be added) $response = [ 'success' => true, 'message' => 'Booking successful!', ]; wp_send_json($response); } // Enqueue custom styles and scripts add_action('wp_enqueue_scripts', 'rbm_enqueue_frontend_assets'); add_action('admin_enqueue_scripts', 'rbm_enqueue_admin_assets'); function rbm_enqueue_frontend_assets() { wp_enqueue_style( 'rbm-booking-styles', plugin_dir_url(__FILE__) . 'assets/css/booking-styles.css' ); wp_enqueue_script( 'rbm-booking-scripts', plugin_dir_url(__FILE__) . 'assets/js/booking-scripts.js', ['jquery'], // Dependency on jQuery null, true ); wp_localize_script('rbm-booking-scripts', 'ajax_url', admin_url('admin-ajax.php')); } function rbm_enqueue_admin_assets() { wp_enqueue_style( 'rbm-admin-styles', plugin_dir_url(__FILE__) . 'assets/css/booking-styles.css' ); }