first commit
This commit is contained in:
178
test-yacht-plugin.php
Normal file
178
test-yacht-plugin.php
Normal file
@@ -0,0 +1,178 @@
|
||||
<?php
|
||||
/**
|
||||
* Test script for Yacht Booking System plugin
|
||||
*
|
||||
* Run this file in browser: http://jachty.pagedev.local/test-yacht-plugin.php
|
||||
*/
|
||||
|
||||
// Load WordPress
|
||||
require_once __DIR__ . '/wp-load.php';
|
||||
|
||||
// Check if user is admin
|
||||
if (!current_user_can('manage_options')) {
|
||||
die('You must be logged in as admin to run this test.');
|
||||
}
|
||||
|
||||
echo '<h1>Yacht Booking System - Test Script</h1>';
|
||||
|
||||
// 1. Check if plugin file exists
|
||||
$plugin_file = __DIR__ . '/wp-content/plugins/yacht-booking-system/yacht-booking-system.php';
|
||||
echo '<h2>1. Plugin File Check</h2>';
|
||||
if (file_exists($plugin_file)) {
|
||||
echo '✅ Plugin file exists: ' . $plugin_file . '<br>';
|
||||
} else {
|
||||
echo '❌ Plugin file NOT found: ' . $plugin_file . '<br>';
|
||||
die();
|
||||
}
|
||||
|
||||
// 2. Check if plugin is active
|
||||
echo '<h2>2. Plugin Activation Status</h2>';
|
||||
$plugin_slug = 'yacht-booking-system/yacht-booking-system.php';
|
||||
if (is_plugin_active($plugin_slug)) {
|
||||
echo '✅ Plugin is ACTIVE<br>';
|
||||
} else {
|
||||
echo '⚠️ Plugin is NOT active. Attempting to activate...<br>';
|
||||
|
||||
// Try to activate
|
||||
$result = activate_plugin($plugin_slug);
|
||||
if (is_wp_error($result)) {
|
||||
echo '❌ Activation failed: ' . $result->get_error_message() . '<br>';
|
||||
} else {
|
||||
echo '✅ Plugin activated successfully!<br>';
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Check if custom table was created
|
||||
echo '<h2>3. Database Table Check</h2>';
|
||||
global $wpdb;
|
||||
$table_name = $wpdb->prefix . 'yacht_availability';
|
||||
$table_exists = $wpdb->get_var("SHOW TABLES LIKE '$table_name'") === $table_name;
|
||||
|
||||
if ($table_exists) {
|
||||
echo '✅ Custom table exists: ' . $table_name . '<br>';
|
||||
|
||||
// Show table structure
|
||||
$columns = $wpdb->get_results("DESCRIBE $table_name");
|
||||
echo '<details><summary>Table structure</summary><pre>';
|
||||
print_r($columns);
|
||||
echo '</pre></details>';
|
||||
} else {
|
||||
echo '❌ Custom table NOT found: ' . $table_name . '<br>';
|
||||
}
|
||||
|
||||
// 4. Check if CPTs are registered
|
||||
echo '<h2>4. Custom Post Types Check</h2>';
|
||||
if (post_type_exists('yacht')) {
|
||||
echo '✅ "yacht" post type is registered<br>';
|
||||
} else {
|
||||
echo '❌ "yacht" post type NOT registered<br>';
|
||||
}
|
||||
|
||||
if (post_type_exists('yacht_booking')) {
|
||||
echo '✅ "yacht_booking" post type is registered<br>';
|
||||
} else {
|
||||
echo '❌ "yacht_booking" post type NOT registered<br>';
|
||||
}
|
||||
|
||||
// 5. Check plugin options
|
||||
echo '<h2>5. Plugin Options Check</h2>';
|
||||
$version = get_option('yacht_booking_version');
|
||||
if ($version) {
|
||||
echo '✅ Plugin version: ' . $version . '<br>';
|
||||
} else {
|
||||
echo '⚠️ Plugin version option not set<br>';
|
||||
}
|
||||
|
||||
$installed_at = get_option('yacht_booking_installed_at');
|
||||
if ($installed_at) {
|
||||
echo '✅ Installed at: ' . $installed_at . '<br>';
|
||||
} else {
|
||||
echo '⚠️ Installation date not set<br>';
|
||||
}
|
||||
|
||||
// 6. Check custom capabilities
|
||||
echo '<h2>6. Custom Capabilities Check</h2>';
|
||||
$admin = get_role('administrator');
|
||||
if ($admin) {
|
||||
$caps = array(
|
||||
'yacht_booking_manage_yachts',
|
||||
'yacht_booking_manage_bookings',
|
||||
'yacht_booking_manage_settings',
|
||||
);
|
||||
|
||||
foreach ($caps as $cap) {
|
||||
if ($admin->has_cap($cap)) {
|
||||
echo '✅ Capability exists: ' . $cap . '<br>';
|
||||
} else {
|
||||
echo '❌ Capability NOT found: ' . $cap . '<br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 7. Test REST API endpoints
|
||||
echo '<h2>7. REST API Endpoints Check</h2>';
|
||||
$rest_server = rest_get_server();
|
||||
$namespaces = $rest_server->get_namespaces();
|
||||
|
||||
if (in_array('yacht-booking/v1', $namespaces)) {
|
||||
echo '✅ REST API namespace registered: yacht-booking/v1<br>';
|
||||
|
||||
// List all routes
|
||||
$routes = $rest_server->get_routes('yacht-booking/v1');
|
||||
echo '<details><summary>Available routes (' . count($routes) . ')</summary><ul>';
|
||||
foreach (array_keys($routes) as $route) {
|
||||
echo '<li>' . $route . '</li>';
|
||||
}
|
||||
echo '</ul></details>';
|
||||
} else {
|
||||
echo '❌ REST API namespace NOT registered<br>';
|
||||
}
|
||||
|
||||
// 8. Check if admin menu exists
|
||||
echo '<h2>8. Admin Menu Check</h2>';
|
||||
global $menu, $submenu;
|
||||
$found = false;
|
||||
foreach ($menu as $item) {
|
||||
if ($item[2] === 'yacht-bookings') {
|
||||
echo '✅ Admin menu item found: "' . $item[0] . '"<br>';
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$found) {
|
||||
echo '⚠️ Admin menu item NOT found (may be admin-only)<br>';
|
||||
}
|
||||
|
||||
// 9. Test creating a test yacht
|
||||
echo '<h2>9. Test Yacht Creation</h2>';
|
||||
$test_yacht_id = wp_insert_post(array(
|
||||
'post_type' => 'yacht',
|
||||
'post_title' => 'Test Yacht - ' . time(),
|
||||
'post_content' => 'This is a test yacht for verification',
|
||||
'post_status' => 'publish',
|
||||
));
|
||||
|
||||
if ($test_yacht_id && !is_wp_error($test_yacht_id)) {
|
||||
echo '✅ Test yacht created successfully (ID: ' . $test_yacht_id . ')<br>';
|
||||
|
||||
// Add meta
|
||||
update_post_meta($test_yacht_id, '_yacht_capacity', 8);
|
||||
update_post_meta($test_yacht_id, '_yacht_price_per_day', 1500);
|
||||
|
||||
echo '✅ Meta data added (capacity: 8, price: 1500)<br>';
|
||||
|
||||
// Clean up
|
||||
wp_delete_post($test_yacht_id, true);
|
||||
echo '✅ Test yacht deleted (cleanup)<br>';
|
||||
} else {
|
||||
echo '❌ Failed to create test yacht<br>';
|
||||
}
|
||||
|
||||
echo '<hr>';
|
||||
echo '<h2>✅ Test Complete!</h2>';
|
||||
echo '<p><strong>Next steps:</strong></p>';
|
||||
echo '<ul>';
|
||||
echo '<li>Visit <a href="' . admin_url('admin.php?page=yacht-bookings') . '">Yacht Bookings Admin Panel</a></li>';
|
||||
echo '<li>Check <a href="' . admin_url('plugins.php') . '">Plugins page</a> to verify activation</li>';
|
||||
echo '<li>Go to <a href="' . rest_url('yacht-booking/v1/yachts') . '">REST API: /yachts</a> (should return empty array)</li>';
|
||||
echo '</ul>';
|
||||
Reference in New Issue
Block a user