<?php
/**
 * Deactivation tracker data.
 *
 * @package WPDesk\FS\TableRate
 */

namespace WPDesk\FS\TableRate\Beacon;

use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;

/**
 * Can add beacon data to deactivation tracker data.
 */
class BeaconDeactivationTracker implements Hookable {

	const ADDITIONAL_DATA = 'additional_data';

	/**
	 * Hooks.
	 */
	public function hooks() {
		add_filter( 'wpdesk_tracker_deactivation_data', [ $this, 'append_beacon_data_to_deactivation_tracker' ] );
	}

	/**
	 * Set new rules table data to data array.
	 *
	 * @param array $data Data.
	 *
	 * @return array
	 * @internal
	 */
	public function append_beacon_data_to_deactivation_tracker( array $data ) {
		if ( empty( $data[ self::ADDITIONAL_DATA ] ) || ! is_array( $data[ self::ADDITIONAL_DATA ] ) ) {
			$data[ self::ADDITIONAL_DATA ] = [];
		}

		$data[ self::ADDITIONAL_DATA ]['beacon'] = [ 'clicked' => 1 === (int) get_option( BeaconClickedAjax::OPTION_NAME, 0 ) ? 'yes' : 'no' ];

		return $data;
	}
}
