<?php

/**
 * Fired when the plugin is uninstalled.
 *
 * When populating this file, consider the following flow
 * of control:
 *
 * - This method should be static
 * - Check if the $_REQUEST content actually is the plugin name
 * - Run an admin referrer check to make sure it goes through authentication
 * - Verify the output of $_GET makes sense
 * - Repeat with other user roles. Best directly by using the links/query string parameters.
 * - Repeat things for multisite. Once for a single site in the network, once sitewide.
 *
 * This file may be updated more in future version of the Boilerplate; however, this is the
 * general skeleton and outline for how the file should work.
 *
 * For more information, see the following discussion:
 * https://github.com/tommcfarlin/WordPress-Plugin-Boilerplate/pull/123#issuecomment-28541913
 *
 * @link       https://ship-safely.com
 * @since      1.0.0
 *
 * @package    Ship_Safely
 */

// If uninstall not called from WordPress, then exit.
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
	exit;
}

// Notify the Ship-Safely server so it can invalidate the token.
require_once plugin_dir_path( __FILE__ ) . 'includes/config.php';

$token    = get_option( 'shpsafe_woo_admin_api_token' );
$base_url = SHIPSAFELY_Config::shpsafe_server_url();
$hostname = parse_url( get_site_url(), PHP_URL_HOST );

if ( $token ) {
	wp_remote_post( $base_url . '/v3/apitoken', [
		'method'   => 'DELETE',
		'timeout'  => 15,
		'blocking' => false, // fire-and-forget; don't block uninstall
		'headers'  => [ 'Authorization' => 'Bearer ' . $token ],
		'body'     => [ 'context' => $hostname ],
	] );
}

// Remove all options stored by the plugin.
delete_option( 'shpsafe_woo_user_api_token' );
delete_option( 'shpsafe_woo_admin_api_token' );
