> Final Plugin Test >

Headers & Footers Plugin - Complete Test

'; echo '

Step 1: WordPress Environment

'; $wp_version = get_bloginfo('version'); $php_version = PHP_VERSION; $wp_url = get_bloginfo('url'); $wp_admin_url = admin_url(); echo ''; echo ''; echo ''; echo ''; echo ''; echo '
ComponentStatus
WordPress Version' . $wp_version . '
PHP Version' . $php_version . '
Site URL' . $wp_url . '
'; if (defined('ABSPATH')) { echo '

ABSPATH defined: ' . ABSPATH . '

'; } else { echo '

ABSPATH not defined!

'; $all_pass = false; } echo ''; // ========================================== // STEP 2: Check plugin files // ========================================== echo '
'; echo '

Step 2: Plugin Files

'; $plugin_file = plugin_dir_path(__FILE__) . 'pc-headers-and-footers-and-ad-pixels-5ake.php'; $admin_file = dirname(__FILE__) . '/admin/class-admin.php'; $database_file = dirname(__FILE__) . '/includes/class-database.php'; $snippet_file = dirname(__FILE__) . '/includes/class-snippet.php'; $public_file = dirname(__FILE__) . '/public/class-public.php'; $files = array( 'Main plugin' => $plugin_file, 'Admin class' => $admin_file, 'Database class' => $database_file, 'Snippet class' => $snippet_file, 'Public class' => $public_file, ); foreach ($files as $name => $path) { if (file_exists($path)) { $size = filesize($path); echo "

✓ $name ($size bytes)

"; } else { echo "

✗ $name NOT FOUND

"; $all_pass = false; } } echo '
'; // ========================================== // STEP 3: Include and test classes // ========================================== echo '
'; echo '

Step 3: Load Plugin Classes

'; // Include classes try { require_once $database_file; echo '

Including class-database.php...

'; require_once $snippet_file; echo '

Including class-snippet.php...

'; echo '

✓ All classes included successfully

'; } catch (Exception $e) { echo '

✗ Include error: ' . $e->getMessage() . '

'; $all_pass = false; } // Check classes exist if (class_exists('PC_HFAP_Database')) { echo '

✓ PC_HFAP_Database class exists

'; } else { echo '

✗ PC_HFAP_Database class not found

'; $all_pass = false; } if (class_exists('PC_HFAP_Snippet')) { echo '

✓ PC_HFAP_Snippet class exists

'; } else { echo '

✗ PC_HFAP_Snippet class not found

'; $all_pass = false; } echo '
'; // ========================================== // STEP 4: Test database table // ========================================== echo '
'; echo '

Step 4: Database Table

'; global $wpdb; try { // Create tables PC_HFAP_Database::create_tables(); // Get table name $table_name = PC_HFAP_Database::get_table_name(); echo '

Table name: ' . $table_name . '

'; // Check if table exists $table_check = $wpdb->get_var($wpdb->prepare('SHOW TABLES LIKE %s', $table_name)); if ($table_name === $table_check) { echo '

✓ Table exists: ' . $table_name . '

'; // Get table structure $columns = $wpdb->get_results("DESCRIBE $table_name", ARRAY_A); echo '

Table structure:

'; echo ''; foreach ($columns as $col) { echo ''; } echo '
ColumnType
' . $col['Field'] . '' . $col['Type'] . '
'; // Count existing $count = $wpdb->get_var("SELECT COUNT(*) FROM $table_name"); echo '

Current snippets: ' . $count . '

'; } else { echo '

✗ Table does NOT exist!

'; $all_pass = false; } } catch (Exception $e) { echo '

✗ Database error: ' . $e->getMessage() . '

'; $all_pass = false; } echo '
'; // ========================================== // STEP 5: Test CREATE operation // ========================================== echo '
'; echo '

Step 5: Create Snippet

'; $test_snippet_id = 0; $test_title = 'Test Snippet ' . date('Y-m-d H:i:s'); try { $data = array( 'title' => $test_title, 'location' => 'header', 'code' => '' ); $snippet = new PC_HFAP_Snippet($data); $result = $snippet->save(); if ($result) { $test_snippet_id = $result; echo '

✓ Snippet created with ID: ' . $result . '

'; echo '

Title: ' . htmlspecialchars($test_title) . '

'; } else { echo '

✗ Failed to create snippet

'; echo '

Error: ' . $wpdb->last_error . '

'; $all_pass = false; } } catch (Exception $e) { echo '

✗ Create error: ' . $e->getMessage() . '

'; $all_pass = false; } echo '
'; // ========================================== // STEP 6: Test READ operation // ========================================== echo '
'; echo '

Step 6: Read Snippet

'; if ($test_snippet_id > 0) { try { $snippet = PC_HFAP_Snippet::get_by_id($test_snippet_id); if ($snippet) { echo '

✓ Snippet retrieved successfully

'; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
ID' . $snippet->get_id() . '
Title' . htmlspecialchars($snippet->get_title()) . '
Location' . $snippet->get_location() . '
Code' . htmlspecialchars($snippet->get_code()) . '
'; } else { echo '

✗ Snippet not found!

'; $all_pass = false; } } catch (Exception $e) { echo '

✗ Read error: ' . $e->getMessage() . '

'; $all_pass = false; } } else { echo '

✗ Skipped (no test snippet)

'; $all_pass = false; } echo '
'; // ========================================== // STEP 7: Test UPDATE operation // ========================================== echo '
'; echo '

Step 7: Update Snippet

'; if ($test_snippet_id > 0) { try { $snippet = PC_HFAP_Snippet::get_by_id($test_snippet_id); if ($snippet) { $new_title = 'Updated ' . date('Y-m-d H:i:s'); $new_code = ''; $snippet->set_title($new_title); $snippet->set_code($new_code); $update_result = $snippet->save(); if ($update_result !== false) { // Verify update $updated = PC_HFAP_Snippet::get_by_id($test_snippet_id); if ($updated->get_title() === $new_title) { echo '

✓ Title updated successfully

'; } else { echo '

✗ Title not updated

'; $all_pass = false; } if ($updated->get_code() === $new_code) { echo '

✓ Code updated successfully

'; } else { echo '

✗ Code not updated

'; $all_pass = false; } } else { echo '

✗ Update failed

'; echo '

Error: ' . $wpdb->last_error . '

'; $all_pass = false; } } else { echo '

✗ Snippet not found for update

'; $all_pass = false; } } catch (Exception $e) { echo '

✗ Update error: ' . $e->getMessage() . '

'; $all_pass = false; } } else { echo '

✗ Skipped (no test snippet)

'; $all_pass = false; } echo '
'; // ========================================== // STEP 8: Test get_all() // ========================================== echo '
'; echo '

Step 8: Get All Snippets

'; try { $snippets = PC_HFAP_Snippet::get_all(); echo '

✓ get_all() returned ' . count($snippets) . ' snippet(s)

'; if (!empty($snippets)) { echo ''; foreach ($snippets as $s) { echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
IDTitleLocation
' . $s->get_id() . '' . htmlspecialchars($s->get_title()) . '' . $s->get_location() . '
'; } } catch (Exception $e) { echo '

✗ get_all() error: ' . $e->getMessage() . '

'; $all_pass = false; } echo '
'; // ========================================== // STEP 9: Test location methods // ========================================== echo '
'; echo '

Step 9: Location Methods

'; try { $headers = PC_HFAP_Snippet::get_headers(); $bodies = PC_HFAP_Snippet::get_bodies(); $footers = PC_HFAP_Snippet::get_footers(); echo '

✓ get_headers(): ' . count($headers) . ' snippets

'; echo '

✓ get_bodies(): ' . count($bodies) . ' snippets

'; echo '

✓ get_footers(): ' . count($footers) . ' snippets

'; } catch (Exception $e) { echo '

✗ Location error: ' . $e->getMessage() . '

'; $all_pass = false; } echo '
'; // ========================================== // STEP 10: Test DELETE operation // ========================================== echo '
'; echo '

Step 10: Delete Snippet

'; if ($test_snippet_id > 0) { try { $snippet = PC_HFAP_Snippet::get_by_id($test_snippet_id); if ($snippet) { $delete_result = $snippet->delete(); if ($delete_result) { // Verify deletion $deleted = PC_HFAP_Snippet::get_by_id($test_snippet_id); if (!$deleted) { echo '

✓ Snippet deleted successfully

'; } else { echo '

✗ Snippet still exists after delete

'; $all_pass = false; } } else { echo '

✗ Delete operation returned false

'; echo '

Error: ' . $wpdb->last_error . '

'; $all_pass = false; } } else { echo '

✗ Snippet not found for delete

'; $all_pass = false; } } catch (Exception $e) { echo '

✗ Delete error: ' . $e->getMessage() . '

'; $all_pass = false; } } else { echo '

✗ Skipped (no test snippet)

'; $all_pass = false; } echo '
'; // ========================================== // FINAL SUMMARY // ========================================== $test_end = microtime(true); $duration = round(($test_end - $test_start) * 1000, 2); echo '
'; echo '

FINAL RESULT

'; echo '

Test completed in ' . $duration . 'ms

'; if ($all_pass) { echo '

✓ ALL TESTS PASSED!

'; echo '

The plugin is working correctly.

'; } else { echo '

✗ SOME TESTS FAILED

'; echo '

Please review the errors above.

'; } echo '
'; // ========================================== // NEXT STEPS // ========================================== echo '
'; echo '

Next Steps

'; echo ''; echo '

Troubleshooting

'; echo ''; echo '
'; echo '';