<?php
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
exit;
}
$settings = get_option( 'wp_ojs_sso_bridge_settings', [] );
if ( ! empty( $settings['cleanup_on_uninstall'] ) ) {
$meta_key = $settings['user_meta_key'] ?? 'ojs_subscription_active';
// Remove all plugin-specific user meta
delete_metadata( 'user', 0, $meta_key, '', true );
delete_metadata( 'user', 0, 'ojs_subscription_requested', '', true );
delete_metadata( 'user', 0, 'ojs_birthplace', '', true );
delete_metadata( 'user', 0, 'ojs_birthdate', '', true );
delete_metadata( 'user', 0, 'ojs_fiscal_code', '', true );
delete_metadata( 'user', 0, 'ojs_shipping_address', '', true );
delete_metadata( 'user', 0, 'ojs_membership_type', '', true );
delete_metadata( 'user', 0, 'ojs_student_document', '', true );
delete_metadata( 'user', 0, 'ojs_bonifico_attachment_id', '', true );
delete_metadata( 'user', 0, 'ojs_consent_guit_soci', '', true );
delete_metadata( 'user', 0, 'ojs_consent_guit_members', '', true );
delete_metadata( 'user', 0, 'ojs_consent_privacy', '', true );
// Remove uploaded files
$upload_dir = wp_upload_dir();
$plugin_upload = $upload_dir['basedir'] . '/ojs-sso-bridge';
if ( is_dir( $plugin_upload ) ) {
$it = new RecursiveDirectoryIterator( $plugin_upload, RecursiveDirectoryIterator::SKIP_DOTS );
$files = new RecursiveIteratorIterator( $it, RecursiveIteratorIterator::CHILD_FIRST );
foreach ( $files as $file ) {
if ( $file->isDir() ) {
rmdir( $file->getRealPath() );
} else {
unlink( $file->getRealPath() );
}
}
rmdir( $plugin_upload );
}
}
delete_option( 'wp_ojs_sso_bridge_settings' );