📦 EqualifyEverything / equalify-wp-integration

📄 class-equalify-wp-integration-activator.php · 62 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62<?php

/**
 * Fired during plugin activation
 *
 * @link       https://equalify.uic.edu/
 * @since      1.0.0
 *
 * @package    Equalify_Wp_Integration
 * @subpackage Equalify_Wp_Integration/includes
 */

/**
 * Fired during plugin activation.
 *
 * This class defines all code necessary to run during the plugin's activation.
 *
 * @since      1.0.0
 * @package    Equalify_Wp_Integration
 * @subpackage Equalify_Wp_Integration/includes
 * @author     UIC Equalify Team <accessiblity@uic.edu>
 */
class Equalify_Wp_Integration_Activator {

	/**
	 * Short Description. (use period)
	 *
	 * Long Description.
	 *
	 * @since    1.0.0
	 */
	/**
	 * Generates a secret token for each site that doesn't already have one.
	 * When network-activated, seeds all existing sites in one pass.
	 *
	 * @param bool $network_wide True when activated network-wide in multisite.
	 */
	public static function activate( $network_wide = false ) {
		if ( $network_wide && is_multisite() ) {
			$sites = get_sites( [ 'number' => 0, 'fields' => 'ids' ] );
			foreach ( $sites as $site_id ) {
				switch_to_blog( $site_id );
				self::ensure_token();
				restore_current_blog();
			}
		} else {
			self::ensure_token();
		}
	}

	/**
	 * Generates and stores a token for the current site if one doesn't exist.
	 * Safe to call multiple times — never overwrites an existing token.
	 */
	public static function ensure_token() {
		if ( ! get_option( 'equalify_csv_token' ) ) {
			update_option( 'equalify_csv_token', bin2hex( random_bytes( 32 ) ) );
		}
	}

}