81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Uninstall all WP Mail SMTP data.
 | 
						|
 *
 | 
						|
 * @since 1.3.0
 | 
						|
 */
 | 
						|
 | 
						|
// Exit if accessed directly.
 | 
						|
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
 | 
						|
	exit;
 | 
						|
}
 | 
						|
 | 
						|
// Load plugin file.
 | 
						|
require_once 'wp_mail_smtp.php';
 | 
						|
 | 
						|
// Confirm user has decided to remove all data, otherwise stop.
 | 
						|
$settings = get_option( 'wp_mail_smtp', array() );
 | 
						|
if ( empty( $settings['general']['uninstall'] ) ) {
 | 
						|
	return;
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * Remove options.
 | 
						|
 */
 | 
						|
$options = array(
 | 
						|
	'wp_mail_smtp_initial_version',
 | 
						|
	'wp_mail_smtp_version',
 | 
						|
	'wp_mail_smtp_debug',
 | 
						|
	'wp_mail_smtp',
 | 
						|
	'_amn_smtp_last_checked',
 | 
						|
	// Legacy options.
 | 
						|
	'pepipost_ssl',
 | 
						|
	'pepipost_port',
 | 
						|
	'pepipost_pass',
 | 
						|
	'pepipost_user',
 | 
						|
	'smtp_pass',
 | 
						|
	'smtp_user',
 | 
						|
	'smtp_auth',
 | 
						|
	'smtp_ssl',
 | 
						|
	'smtp_port',
 | 
						|
	'smtp_host',
 | 
						|
	'mail_set_return_path',
 | 
						|
	'mailer',
 | 
						|
	'mail_from_name',
 | 
						|
	'mail_from',
 | 
						|
	'wp_mail_smtp_am_notifications_hidden',
 | 
						|
);
 | 
						|
 | 
						|
foreach ( $options as $option ) {
 | 
						|
	delete_option( $option );
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * Remove product announcements.
 | 
						|
 */
 | 
						|
$announcements = get_posts(
 | 
						|
	array(
 | 
						|
		'post_type'   => array( 'amn_smtp' ),
 | 
						|
		'post_status' => 'any',
 | 
						|
		'numberposts' => - 1,
 | 
						|
		'fields'      => 'ids',
 | 
						|
	)
 | 
						|
);
 | 
						|
if ( ! empty( $announcements ) ) {
 | 
						|
	foreach ( $announcements as $announcement ) {
 | 
						|
		wp_delete_post( $announcement, true );
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * Logs for Pro plugin only.
 | 
						|
 */
 | 
						|
if ( function_exists( 'wp_mail_smtp' ) && wp_mail_smtp()->is_pro() ) {
 | 
						|
	// DB version.
 | 
						|
	delete_option( 'wp_mail_smtp_logs_db_version' );
 | 
						|
	// DB table.
 | 
						|
	global $wpdb;
 | 
						|
	$table = \WPMailSMTP\Pro\Emails\Logs\Logs::get_table_name();
 | 
						|
	$wpdb->query( "DROP TABLE $table;" ); // phpcs:ignore
 | 
						|
}
 |