upskill-event-manager/wordpress-dev/bin/fix-login-redirect.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

215 lines
No EOL
7.8 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 "===== Fixing Login Redirect Issues ====="
# Create a PHP script to fix login issues
sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && cat > fix-login-redirect.php << 'EOF'
<?php
// Load WordPress
require_once('wp-load.php');
echo "Fixing login redirect issues...\n";
// 1. Fix login-handler.php file
echo "1. Fixing login handler class...\n";
$login_handler_path = WP_CONTENT_DIR . '/plugins/hvac-community-events/includes/community/class-login-handler.php';
if (file_exists($login_handler_path)) {
$content = file_get_contents($login_handler_path);
// Make sure login failure handler is enabled
if (strpos($content, '// add_action(\'wp_login_failed\'') !== false) {
$content = str_replace(
'// add_action(\'wp_login_failed\', array($this, \'handle_login_failure\'));',
'add_action(\'wp_login_failed\', array($this, \'handle_login_failure\'));',
$content
);
echo "Enabled login failure handler\n";
}
// Make sure redirect_to is set in wp_login_form args
if (strpos($content, '$args[\'redirect\']') === false) {
$content = str_replace(
'wp_login_form( $args );',
'$args[\'redirect\'] = home_url(\'/hvac-dashboard/\');' . "\n\t\t" . 'wp_login_form( $args );',
$content
);
echo "Added redirect_to to login form args\n";
}
// Save changes
if (file_put_contents($login_handler_path, $content)) {
echo "Saved changes to login handler file\n";
} else {
echo "Failed to save changes to login handler file\n";
}
} else {
echo "Login handler file not found at: $login_handler_path\n";
}
// 2. Make sure community-login page exists and has shortcode
echo "2. Checking community login page...\n";
$page = get_page_by_path('community-login');
if (!$page) {
$page_id = wp_insert_post(array(
'post_title' => 'Community Login',
'post_name' => 'community-login',
'post_status' => 'publish',
'post_type' => 'page',
'post_content' => '[hvac_community_login]'
));
echo "Created community login page with ID: $page_id\n";
} else {
echo "Community login page exists with ID: {$page->ID}\n";
// Make sure content has shortcode
if (strpos($page->post_content, '[hvac_community_login]') === false) {
wp_update_post(array(
'ID' => $page->ID,
'post_content' => '[hvac_community_login]'
));
echo "Updated page content with shortcode\n";
} else {
echo "Page already has login shortcode\n";
}
}
// 3. Reset test_trainer user password
echo "3. Resetting test_trainer user...\n";
$user = get_user_by('login', 'test_trainer');
if ($user) {
// Reset password
wp_set_password('test_password', $user->ID);
echo "Reset password for test_trainer (ID: {$user->ID})\n";
// Clear user sessions
$sessions = WP_Session_Tokens::get_instance($user->ID);
$sessions->destroy_all();
echo "Cleared all sessions for test_trainer\n";
// Make sure user has hvac_trainer role
if (!in_array('hvac_trainer', $user->roles)) {
$user->add_role('hvac_trainer');
echo "Added hvac_trainer role to test_trainer\n";
} else {
echo "User already has hvac_trainer role\n";
}
} else {
echo "test_trainer user not found\n";
}
// 4. Check if template files exist and fix if needed
echo "4. Checking template files...\n";
$page_template = WP_CONTENT_DIR . '/plugins/hvac-community-events/templates/page-community-login.php';
$form_template = WP_CONTENT_DIR . '/plugins/hvac-community-events/templates/community/login-form.php';
if (!file_exists($page_template)) {
echo "Page template missing at: $page_template\n";
} else {
echo "Page template exists\n";
}
if (!file_exists($form_template)) {
echo "Form template missing at: $form_template\n";
} else {
echo "Form template exists\n";
}
// 5. Fix template loader in main class
echo "5. Checking template loader...\n";
$main_class_path = WP_CONTENT_DIR . '/plugins/hvac-community-events/includes/class-hvac-community-events.php';
if (file_exists($main_class_path)) {
$content = file_get_contents($main_class_path);
// Make sure template loader handles community-login page
if (strpos($content, "is_page('community-login')") === false) {
echo "Template loader doesn't include community-login page - fixing...\n";
// Find the load_custom_templates method
if (preg_match('/public function load_custom_templates\s*\(\s*\$template\s*\)\s*{/s', $content, $matches, PREG_OFFSET_CAPTURE)) {
$method_start = $matches[0][1];
// Find where the custom_template checks start
if (preg_match('/\$custom_template\s*=\s*null;/s', $content, $matches, PREG_OFFSET_CAPTURE, $method_start)) {
$checks_start = $matches[0][1] + strlen($matches[0][0]);
// Add community-login check if it doesn't exist
$community_login_check = "\n\t\t// Check for community-login page\n\t\tif (is_page('community-login')) {\n\t\t\t\$custom_template = HVAC_CE_PLUGIN_DIR . 'templates/page-community-login.php';\n\t\t}\n";
// Insert the check
$updated_content = substr($content, 0, $checks_start) . $community_login_check . substr($content, $checks_start);
// Save the updated content
if (file_put_contents($main_class_path, $updated_content)) {
echo "Added community-login page to template loader\n";
} else {
echo "Failed to update template loader\n";
}
}
}
} else {
echo "Template loader already includes community-login page\n";
}
} else {
echo "Main class file not found at: $main_class_path\n";
}
// 6. Clear cache
echo "6. Clearing cache...\n";
if (function_exists('breeze_cache_flush')) {
breeze_cache_flush();
echo "Cleared Breeze cache via function\n";
} else {
// Try to clear cache directories manually
$cache_dirs = array(
WP_CONTENT_DIR . '/cache/breeze',
WP_CONTENT_DIR . '/uploads/breeze/css',
WP_CONTENT_DIR . '/uploads/breeze/js'
);
foreach ($cache_dirs as $dir) {
if (is_dir($dir)) {
$files = glob($dir . '/*');
if ($files) {
foreach ($files as $file) {
if (is_file($file)) {
@unlink($file);
}
}
}
echo "Cleared cache directory: $dir\n";
}
}
}
// 7. Flush rewrite rules
echo "7. Flushing rewrite rules...\n";
flush_rewrite_rules();
echo "Rewrite rules flushed\n";
echo "\nLogin fix complete.\n";
echo "Please try logging in with username 'test_trainer' and password 'test_password'.\n";
echo "Login URL: " . site_url('/community-login/') . "\n";
EOF"
# Execute the fix script
echo "Executing login fix script..."
sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && php fix-login-redirect.php"
# Clean up
sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no "$UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP" "cd $UPSKILL_STAGING_PATH && rm fix-login-redirect.php"
echo -e "\n===== Login Redirect Fix Complete ====="
echo "The login redirect issues should now be fixed."
echo "Please try logging in with username 'test_trainer' and password 'test_password'."
echo "Login URL: http://upskill-staging.measurequick.com/community-login/"