<?php

namespace DgoraWcas\Admin\Promo;

// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}


class Upgrade {

	public function __construct() {
		add_action( 'current_screen', [ $this, 'printScripts' ] );
	}

	public function printScripts() {

		if ( dgoraAsfwFs()->is_premium() ) {
			return;
		}

		$cs = get_current_screen();

		if ( ! empty( $cs->base ) && strpos( $cs->base, 'dgwt_wcas' ) !== false ) {

			add_thickbox();
			add_action( 'admin_footer', [ $this, 'renderUpgradeModal' ], 10 );
			add_action( 'admin_footer', [ $this, 'upgradeModalHandler' ], 20 );

		}
	}

	/**
	 * Render plugin upgrade modal
	 *
	 * @return void
	 */
	public function renderUpgradeModal() {
		$utmLink = 'https://fibosearch.com/pro-vs-free/?utm_source=wp-admin&utm_medium=referral&utm_campaign=upgrade-popup&utm_content=features&utm_gen=utmdc';

		$features = [
			__( 'Speed up search! (even 10× faster) - users love it!', 'ajax-search-for-woocommerce' ),
			__( 'Modern search engine based on an inverted index and advanced matching algorithms', 'ajax-search-for-woocommerce' ),
			__( 'Fuzzy search', 'ajax-search-for-woocommerce' ),
			__( 'Synonyms', 'ajax-search-for-woocommerce' ),
			__( 'Search in attributes and variation products SKUs (option)', 'ajax-search-for-woocommerce' ),
			__( 'Individual tips and support from the FiboSearch team', 'ajax-search-for-woocommerce' ),
		];
		echo '<a style="display:none;" class="thickbox js-dgwt-wcas-modal-pro-handler" href="#TB_inline?width=600&height=380&inlineId=dgwt-wcas-modal" title="' . __( 'FiboSearch Pro - Upgrade Now', 'ajax-search-for-woocommerce' ) . '"></a>';
		echo '<div id="dgwt-wcas-modal" class="dgwt-wcas-modal-upgrade" style="display:none;">';
		echo '<img class="dgwt-wcas-modal-logo" src="' . DGWT_WCAS_URL . 'assets/img/logo-128.png" width="128" height="128" />';
		echo '
		<h2 class="dgwt-wcas-modal-title">' . __( 'Update now and increase your sales. You will receive a 30-day satisfaction guarantee.  A return on investment will come very quickly.', 'ajax-search-for-woocommerce' ) . '</h2>';
		echo '<ul>';
		foreach ( $features as $feature ) {
			echo '<li><strong>+ ' . $feature . '</strong></li>';
		}
		echo '<li><strong>+ ' . __( 'and more...', 'ajax-search-for-woocommerce' ) . ' <a target="_blank" href="' . $utmLink . '">' . __( 'See a comparison of all free and premium features!', 'ajax-search-for-woocommerce' ) . '</a></strong></li>';
		echo '</ul>';
		echo '<p><a class="button-primary" target="_blank" href="' . self::getUpgradeUrl() . '">' . __( 'Upgrade Now', 'ajax-search-for-woocommerce' ) . '</a>';
		echo '</p>';
		echo '</div>';
	}

	/**
	 * JS for the upgrade modal
	 *
	 * @return void
	 */
	public function upgradeModalHandler() {
		?>
		<script>
			(function ($) {
				$(document).on('click', '.dgwt-wcas-premium-only label, .dgwt-wcas-premium-only input, .dgwt-wcas-premium-only button, .dgwt-wcas-premium-only textarea, .dgwt-wcas-premium-only--trigger', function (e) {
					triggerModal(e);
				});

				$('.dgwt-wcas-premium-only select').on('change', function (e) {
					$(this).val($(this).attr('data-default'));
					triggerModal(e);
				});

				function triggerModal(e) {
					e.preventDefault();
					$('.js-dgwt-wcas-modal-pro-handler').trigger('click');
				}
			})(jQuery);
		</script>
		<?php
	}

	/**
	 * Ge upgrade URL
	 *
	 * @param string $type
	 *
	 * @return string
	 */
	public static function getUpgradeUrl( $type = 'external' ) {

		$url = 'https://fibosearch.com/pricing/?utm_source=wp-admin&utm_medium=referral&utm_campaign=upgrade-link&utm_content=upgrade-now-btn';

		if ( $type === 'internal' ) {
			$url = esc_url( dgoraAsfwFs()->get_upgrade_url() );
		}

		return $url;
	}
}
