<?php
/**
 * Uninstall procedure.
 * Last update 2013-12-09
 *
 * @since Version 4.0.7
 * @author Eliezer Vargas
 */

/* Exit if plugin delete hasn't be called */
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
	exit();
}

global $wpdb;

/* Yarpp option names */
$optNames = array(
	'yarpp',
	'yarpp_pro',
	'yarpp_fulltext_disabled',
	'yarpp_optin_timeout',
	'yarpp_version',
	'yarpp_version_info',
	'yarpp_version_info_timeout',
	'yarpp_activated',
	'widget_yarpp_widget',
	'yarpp_upgraded',
	'yarpp_activate_timestamp',
);

/* Select right procedure for single or multi site */
if ( is_multisite() ) {

	/* Get sites ids */
	$blog_ids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );

	/* Get main site id */
	$original_blog_id = get_current_blog_id();

	/* loop through all sites */
	foreach ( $blog_ids as $blog_id ) {
		switch_to_blog( $blog_id );
		clean( $optNames, $wpdb );
	}/*end foreach*/

	switch_to_blog( $original_blog_id );

} else {

	clean( $optNames, $wpdb );

}/*end if*/


/**
 * Loop through option array and delete the option and clear and drop cache tables.
 *
 * @param array  $opts Array of yarpp's options
 * @param object $wpdb WordPress db global
 */
function clean( array $opts, $wpdb ) {

	foreach ( $opts as $opt ) {
		delete_option( $opt );
	}

	/* Truncate, clear and drop yarpp cache */
	$wpdb->query( 'DELETE FROM `' . $wpdb->prefix . 'postmeta` WHERE meta_key LIKE "%yarpp%"' );
	$wpdb->query( 'TRUNCATE TABLE `' . $wpdb->prefix . 'yarpp_related_cache`' );
	wp_cache_flush();
	$wpdb->query( 'DROP TABLE `' . $wpdb->prefix . 'yarpp_related_cache`' );

	/* Delete users yarpp related data */
	$wpdb->query( 'DELETE FROM `' . $wpdb->prefix . 'usermeta` WHERE meta_key LIKE "%yarpp%"' );

}//end clean()

