upskill-event-manager/wordpress-dev/bin/regenerate-certificate-test-data.sh
bengizmo 3d9599ef74 feat: Update help system with clearer content and recent improvements
- Revise welcome modal cards to focus on practical features
- Emphasize dashboard as central hub, no WordPress admin needed
- Highlight new certificate features including clickable links
- Rewrite documentation with simpler, action-oriented language
- Update FAQ section with common trainer questions
- Add tooltip text library for consistent help messages
- Include certificate clearing utility and scripts

Co-Authored-By: Ben Reed <ben@tealmaker.com>
2025-05-24 16:36:28 -03:00

203 lines
No EOL
5.8 KiB
Bash
Executable file

#!/bin/bash
# Script to regenerate certificate test data on staging server
# This script should be run on the staging server
echo "=== Certificate Test Data Regeneration Script ==="
echo ""
# Check if wp-cli is available
if ! command -v wp &> /dev/null; then
echo "Error: wp-cli is not installed or not in PATH"
exit 1
fi
# Navigate to WordPress directory
cd /home/uberrxmprk/cloudwaysapps.com/rfymqitokx/public_html
# Get test_trainer user ID
TEST_USER_ID=$(wp user get test_trainer --field=ID 2>/dev/null)
if [ -z "$TEST_USER_ID" ]; then
echo "Error: test_trainer user not found"
echo "Please run ./bin/create-test-users.sh first"
exit 1
fi
echo "Found test_trainer user (ID: $TEST_USER_ID)"
echo ""
# Get recent events
echo "Fetching recent events..."
EVENTS=$(wp db query "
SELECT p.ID, p.post_title,
DATE_FORMAT(m.meta_value, '%Y-%m-%d') as event_date
FROM wp_posts p
JOIN wp_postmeta m ON p.ID = m.post_id AND m.meta_key = '_EventStartDate'
WHERE p.post_type = 'tribe_events'
AND p.post_status = 'publish'
ORDER BY m.meta_value DESC
LIMIT 5
" --skip-column-names)
if [ -z "$EVENTS" ]; then
echo "No events found. Please create some test events first."
exit 1
fi
echo "Recent events:"
echo "$EVENTS" | nl
echo ""
read -p "Enter the event number to use for test certificates (1-5): " EVENT_NUM
EVENT_ID=$(echo "$EVENTS" | sed -n "${EVENT_NUM}p" | awk '{print $1}')
EVENT_TITLE=$(echo "$EVENTS" | sed -n "${EVENT_NUM}p" | cut -f2- -d$'\t' | cut -f1 -d$'\t')
if [ -z "$EVENT_ID" ]; then
echo "Invalid selection"
exit 1
fi
echo ""
echo "Selected event: $EVENT_TITLE (ID: $EVENT_ID)"
echo ""
# Get attendees for this event
echo "Fetching attendees for this event..."
ATTENDEE_COUNT=$(wp db query "
SELECT COUNT(*)
FROM wp_posts
WHERE post_type IN ('tec_tc_attendee', 'tribe_tpp_attendees', 'tribe_rsvp_attendees')
AND post_parent = $EVENT_ID
" --skip-column-names)
echo "Found $ATTENDEE_COUNT attendees"
if [ "$ATTENDEE_COUNT" -eq 0 ]; then
echo ""
echo "No attendees found. Would you like to create test attendees?"
read -p "Create test attendees? (y/n): " CREATE_ATTENDEES
if [ "$CREATE_ATTENDEES" = "y" ]; then
echo ""
read -p "How many test attendees to create? (1-10): " NUM_ATTENDEES
if [ "$NUM_ATTENDEES" -gt 0 ] && [ "$NUM_ATTENDEES" -le 10 ]; then
echo "Creating $NUM_ATTENDEES test attendees..."
# This is a simplified version - in reality, creating attendees is complex
# and depends on the ticket system being used
echo "Note: Automatic attendee creation requires the ticket system to be properly configured."
echo "For now, please create attendees manually through the WordPress admin."
exit 0
fi
fi
exit 0
fi
echo ""
echo "Ready to generate test certificates"
echo ""
echo "Options:"
echo "1) Generate certificates for ALL attendees"
echo "2) Generate certificates for first 5 attendees only"
echo "3) Generate certificates for checked-in attendees only"
echo "4) Exit without generating"
echo ""
read -p "Enter your choice (1-4): " GEN_CHOICE
case $GEN_CHOICE in
1)
ATTENDEE_IDS=$(wp db query "
SELECT ID
FROM wp_posts
WHERE post_type IN ('tec_tc_attendee', 'tribe_tpp_attendees', 'tribe_rsvp_attendees')
AND post_parent = $EVENT_ID
" --skip-column-names)
;;
2)
ATTENDEE_IDS=$(wp db query "
SELECT ID
FROM wp_posts
WHERE post_type IN ('tec_tc_attendee', 'tribe_tpp_attendees', 'tribe_rsvp_attendees')
AND post_parent = $EVENT_ID
LIMIT 5
" --skip-column-names)
;;
3)
ATTENDEE_IDS=$(wp db query "
SELECT p.ID
FROM wp_posts p
JOIN wp_postmeta m ON p.ID = m.post_id
WHERE p.post_type IN ('tec_tc_attendee', 'tribe_tpp_attendees', 'tribe_rsvp_attendees')
AND p.post_parent = $EVENT_ID
AND m.meta_key = '_tribe_tickets_attendee_checked_in'
AND m.meta_value = '1'
" --skip-column-names)
;;
4)
echo "Exiting without generating certificates."
exit 0
;;
*)
echo "Invalid choice"
exit 1
;;
esac
if [ -z "$ATTENDEE_IDS" ]; then
echo "No attendees found matching criteria"
exit 0
fi
ATTENDEE_COUNT=$(echo "$ATTENDEE_IDS" | wc -l)
echo ""
echo "Generating certificates for $ATTENDEE_COUNT attendees..."
echo ""
# Generate certificates using WP-CLI eval-file
cat > /tmp/generate_certs.php << 'EOF'
<?php
// Load certificate generator
require_once HVAC_CE_PLUGIN_DIR . 'includes/certificates/class-certificate-generator.php';
$generator = HVAC_Certificate_Generator::instance();
$event_id = $args[0];
$attendee_ids = explode("\n", trim($args[1]));
$generated_by = $args[2];
$success = 0;
$failed = 0;
foreach ($attendee_ids as $attendee_id) {
if (empty($attendee_id)) continue;
$result = $generator->generate_certificate($event_id, $attendee_id, array(), $generated_by);
if ($result) {
$success++;
echo "✓ Generated certificate for attendee $attendee_id\n";
} else {
$failed++;
echo "✗ Failed to generate certificate for attendee $attendee_id\n";
}
}
echo "\nSummary:\n";
echo "Successful: $success\n";
echo "Failed: $failed\n";
EOF
wp eval-file /tmp/generate_certs.php "$EVENT_ID" "$ATTENDEE_IDS" "$TEST_USER_ID"
rm -f /tmp/generate_certs.php
echo ""
echo "=== Certificate Generation Complete ==="
echo ""
echo "To view the generated certificates:"
echo "1. Log in as test_trainer"
echo "2. Navigate to Certificate Reports page"
echo "3. Or check the uploads directory at:"
echo " /wp-content/uploads/hvac-certificates/"