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
127 lines
No EOL
4.3 KiB
Bash
Executable file
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." |