<?php

namespace AutomateWoo;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * @class Tool_Optin_Importer
 * @since 3.9
 */
class Tool_Optin_Importer extends Tool_Optout_Importer {

	/** @var string */
	public $id = 'optin_importer';


	/**
	 * Tool_Optin_Importer constructor.
	 */
	public function __construct() {
		parent::__construct();
		$this->title       = __( 'Opt-in Importer', 'automatewoo' );
		$this->description = __( 'Opt-in customers by importing email addresses.', 'automatewoo' );
	}


	/**
	 * @param array $args
	 */
	public function display_confirmation_screen( $args ) {
		$args   = $this->sanitize_args( $args );
		$emails = $this->parse_emails( $args['emails'] );
		$count  = count( $emails );

		echo wp_kses_post(
			'<p>' . sprintf(
				/* translators: %d Number of customers to import for opt-in. */
				_n(
					'Are you sure you want to opt-in <strong>%d customer</strong>?',
					'Are you sure you want to opt-in <strong>%d customers</strong>?',
					$count,
					'automatewoo'
				),
				$count
			) . '</p>'
		);

		$this->display_data_preview( $emails );
	}


	/**
	 * @param array $task
	 */
	public function handle_background_task( $task ) {
		$email = isset( $task['email'] ) ? Clean::email( $task['email'] ) : false;

		if ( ! $email ) {
			return;
		}

		$customer = Customer_Factory::get_by_email( $email );
		if ( $customer ) {
			$customer->opt_in();
		}
	}
}
