upskill-event-manager/wordpress-dev/bin/test-login-form.sh
bengizmo a82616b6f7 Fix dashboard data inconsistency and enhance test suite with WP API
- Fixed dashboard data class to use consistent post_author queries instead of mixed _EventOrganizerID meta queries
- This resolves the issue where dashboard showed 18 events but 0 tickets/revenue
- Added WordPress API credentials to environment (.env)
- Created comprehensive API debugging utilities (wp-api-debug.sh, wp-api-fix.sh, api-only-debug.sh)
- Enhanced test and deployment suite with WordPress REST API capabilities
- Root cause: get_total_tickets_sold() and get_total_revenue() were using _EventOrganizerID while other methods used post_author

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-22 19:24:18 -03:00

165 lines
No EOL
6 KiB
Bash
Executable file

#!/bin/bash
# Exit on error
set -e
# Source environment variables
if [ -f ".env" ]; then
source .env
else
echo "Error: .env file not found. Please create it with the required variables."
exit 1
fi
echo "===== Testing Login Form ====="
# Create a script to test the login form rendering
sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && cat > test-login-form.php << 'EOF'
<?php
// Load WordPress
require_once('wp-load.php');
echo "===== Testing Login Form =====\n";
// Check if the login template exists
$template_path = WP_CONTENT_DIR . '/plugins/hvac-community-events/templates/community/login-form.php';
if (file_exists($template_path)) {
echo "Login template exists at: $template_path\n";
// Display template content
$content = file_get_contents($template_path);
echo "\nTemplate content:\n" . substr($content, 0, 500) . "...\n";
// Check for critical components
$check_items = array(
'wp_login_form' => 'wp_login_form(',
'form_id' => 'form_id',
'redirect' => 'redirect',
'login-error' => 'login-error',
'login=failed' => 'login=failed'
);
echo "\nChecking for critical components:\n";
foreach ($check_items as $name => $pattern) {
echo "$name: " . (strpos($content, $pattern) !== false ? "FOUND" : "NOT FOUND") . "\n";
}
} else {
echo "Login template NOT found at: $template_path\n";
}
// Check the page template
$page_template_path = WP_CONTENT_DIR . '/plugins/hvac-community-events/templates/page-community-login.php';
if (file_exists($page_template_path)) {
echo "\nPage template exists at: $page_template_path\n";
// Display template content
$content = file_get_contents($page_template_path);
echo "\nPage template content:\n" . substr($content, 0, 500) . "...\n";
// Check for critical components
$check_items = array(
'Login_Handler' => 'Login_Handler',
'render_login_form' => 'render_login_form',
'shortcode' => 'shortcode'
);
echo "\nChecking for critical components:\n";
foreach ($check_items as $name => $pattern) {
echo "$name: " . (strpos($content, $pattern) !== false ? "FOUND" : "NOT FOUND") . "\n";
}
} else {
echo "Page template NOT found at: $page_template_path\n";
}
// Test if shortcode is registered
echo "\nTesting if the login shortcode is registered:\n";
$shortcodes = array_keys($GLOBALS['shortcode_tags']);
echo "Registered shortcodes: " . implode(', ', $shortcodes) . "\n";
echo "hvac_community_login shortcode is " . (in_array('hvac_community_login', $shortcodes) ? "registered" : "NOT registered") . "\n";
// Test the render_login_form method directly
echo "\nTesting login form rendering directly:\n";
if (class_exists('\\HVAC_Community_Events\\Community\\Login_Handler')) {
$login_handler = new \\HVAC_Community_Events\\Community\\Login_Handler();
if (method_exists($login_handler, 'render_login_form')) {
echo "Login handler has render_login_form method\n";
// Capture output
ob_start();
$form = $login_handler->render_login_form(array());
ob_end_clean();
echo "Form output length: " . strlen($form) . " characters\n";
echo "Form contains form tag: " . (strpos($form, '<form') !== false ? "YES" : "NO") . "\n";
echo "Form contains login field: " . (strpos($form, 'user_login') !== false ? "YES" : "NO") . "\n";
echo "Form contains password field: " . (strpos($form, 'user_pass') !== false ? "YES" : "NO") . "\n";
} else {
echo "Login handler does NOT have render_login_form method\n";
}
} else {
echo "Login_Handler class not found\n";
}
// Check for pages with the community-login slug
echo "\nChecking for community-login page:\n";
$page = get_page_by_path('community-login');
if ($page) {
echo "Community login page found with ID: {$page->ID}\n";
echo "Title: {$page->post_title}\n";
echo "Status: {$page->post_status}\n";
echo "Content contains shortcode: " . (strpos($page->post_content, '[hvac_community_login]') !== false ? "YES" : "NO") . "\n";
} else {
echo "Community login page NOT found\n";
// Try to check all pages
echo "\nLooking for any pages that might contain the login shortcode:\n";
$pages = get_posts(array(
'post_type' => 'page',
'posts_per_page' => -1,
));
$found = false;
foreach ($pages as $p) {
if (strpos($p->post_content, '[hvac_community_login]') !== false) {
echo "Found login shortcode in page: {$p->ID} - {$p->post_title}\n";
echo "Page slug: {$p->post_name}\n";
$found = true;
}
}
if (!$found) {
echo "No pages found with the login shortcode\n";
}
}
// Test WordPress login directly
echo "\nTesting WordPress login directly:\n";
$creds = array(
'user_login' => 'test_trainer',
'user_password' => 'test_password',
'remember' => true
);
$user = wp_signon($creds, false);
if (is_wp_error($user)) {
echo "Login failed: " . $user->get_error_message() . "\n";
} else {
echo "Login successful for user ID: {$user->ID}\n";
echo "User roles: " . implode(', ', $user->roles) . "\n";
echo "User has hvac_trainer role: " . (in_array('hvac_trainer', $user->roles) ? "YES" : "NO") . "\n";
echo "User has view_hvac_dashboard capability: " . (user_can($user->ID, 'view_hvac_dashboard') ? "YES" : "NO") . "\n";
}
echo "\nFinished testing login form\n";
EOF"
# Execute the login form test
echo "Executing login form test..."
sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && php test-login-form.php"
# Clean up
sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && rm test-login-form.php"
echo -e "\n===== Login Form Test Complete ====="