upskill-event-manager/wordpress-dev/bin/deploy-certificate-fixes.sh
bengizmo 31dae475a6 Fix certificate reports page 500 error
This commit addresses the 500 error on the certificate-reports page by:
1. Adding proper error handling to certificate templates
2. Ensuring required classes are loaded in the right order
3. Adding try-catch blocks for better error reporting
4. Creating diagnostic and troubleshooting tools
5. Fixing method signature issues in the certificate manager

The issues were caused by missing database tables or classes not being loaded in the correct order.

Additional improvements:
- Added certificate system diagnostic scripts
- Added comprehensive troubleshooting documentation
- Added automated fix deploy script
2025-05-20 23:29:41 -03:00

127 lines
No EOL
4.3 KiB
Bash
Executable file

#!/bin/bash
# Deploy Certificate Fixes Script
# This script deploys fixes for the certificate functionality in the HVAC Community Events plugin.
# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Function to print colored messages
print_message() {
local type=$1
local message=$2
local color=$BLUE
case $type in
"info")
color=$BLUE
;;
"success")
color=$GREEN
;;
"warning")
color=$YELLOW
;;
"error")
color=$RED
;;
esac
echo -e "${color}${message}${NC}"
}
# Check if we have a WordPress installation
if [ ! -d "wordpress" ]; then
print_message "error" "No WordPress installation found in ./wordpress directory."
print_message "info" "Please run this script from the wordpress-dev directory."
exit 1
fi
# Check that we're in the right directory
if [ ! -f "bin/debug-certificate-system.sh" ]; then
print_message "error" "Please run this script from the wordpress-dev directory."
exit 1
fi
print_message "info" "=== Deploying Certificate Fixes ==="
print_message "info" ""
# Step 1: Deactivate plugin to clear any cached code
print_message "info" "Step 1: Running check and fix database script..."
php bin/check-and-fix-certificate-tables.php
# Step 2: Fix certificate directory permissions
print_message "info" ""
print_message "info" "Step 2: Fixing certificate directory permissions..."
# Get the certificate directory path
UPLOAD_DIR=$(php -r "echo wp_upload_dir()['basedir'];")
CERT_DIR="$UPLOAD_DIR/hvac-certificates"
if [ -d "$CERT_DIR" ]; then
chmod -R 755 "$CERT_DIR"
print_message "success" "✓ Fixed permissions for certificate directory: $CERT_DIR"
else
print_message "warning" "! Certificate directory not found at: $CERT_DIR"
print_message "info" "Creating certificate directory..."
mkdir -p "$CERT_DIR"
chmod -R 755 "$CERT_DIR"
if [ -d "$CERT_DIR" ]; then
print_message "success" "✓ Created certificate directory: $CERT_DIR"
else
print_message "error" "✗ Failed to create certificate directory"
fi
fi
# Step 3: Clear cache
print_message "info" ""
print_message "info" "Step 3: Clearing cache..."
# Clear WordPress transients
php -r "include_once './wordpress/wp-load.php'; wp_cache_flush(); delete_transient('hvac_certificate_cache');"
print_message "success" "✓ WordPress cache cleared"
# Step 4: Check plugin status
print_message "info" ""
print_message "info" "Step 4: Checking plugin status..."
# Check if the plugin is active
PLUGIN_ACTIVE=$(php -r "include_once './wordpress/wp-load.php'; include_once(ABSPATH . 'wp-admin/includes/plugin.php'); echo (int)is_plugin_active('hvac-community-events/hvac-community-events.php');")
if [ "$PLUGIN_ACTIVE" -eq "1" ]; then
print_message "success" "✓ Plugin is active."
else
print_message "warning" "! Plugin is not active. Attempting to activate..."
php -r "include_once './wordpress/wp-load.php'; include_once(ABSPATH . 'wp-admin/includes/plugin.php'); activate_plugin('hvac-community-events/hvac-community-events.php');"
# Check again
PLUGIN_ACTIVE=$(php -r "include_once './wordpress/wp-load.php'; include_once(ABSPATH . 'wp-admin/includes/plugin.php'); echo (int)is_plugin_active('hvac-community-events/hvac-community-events.php');")
if [ "$PLUGIN_ACTIVE" -eq "1" ]; then
print_message "success" "✓ Plugin activated successfully."
else
print_message "error" "✗ Failed to activate plugin."
fi
fi
# Final step: Flush rewrite rules
print_message "info" ""
print_message "info" "Final step: Flushing rewrite rules..."
php -r "include_once './wordpress/wp-load.php'; flush_rewrite_rules();"
print_message "success" "✓ Rewrite rules flushed"
# Summary
print_message "info" ""
print_message "info" "=== Deployment Summary ==="
print_message "info" "1. Database table checked and fixed (if needed)"
print_message "info" "2. Certificate directory permissions fixed"
print_message "info" "3. Cache cleared"
print_message "info" "4. Plugin status checked"
print_message "info" "5. Rewrite rules flushed"
print_message "info" ""
print_message "success" "Certificate fixes deployed successfully. Please test the functionality."