<?php

class Shortcodes_Ultimate_Admin_Pro_Features {

	public function __construct() {}

	public function register_shortcodes() {

		if ( did_action( 'su/extra/ready' ) ) {
			return;
		}

		foreach ( $this->get_shortcodes() as $shortcode ) {

			su_add_shortcode(
				wp_parse_args(
					$shortcode,
					array(
						'group'              => 'extra',
						'image'              => $this->get_image_url( 'icon-available-shortcodes.png' ),
						'icon'               => $this->get_image_url( 'icon-generator.png' ),
						'desc'               => '',
						'callback'           => '__return_empty_string',
						'atts'               => array(),
						'generator_callback' => array( $this, 'generator_callback' ),
					)
				)
			);

		}

	}

	public function register_group( $groups ) {

		if ( did_action( 'su/extra/ready' ) ) {
			return $groups;
		}

		$groups['extra'] = _x( 'PRO Shortcodes', 'Custom shortcodes group name', 'shortcodes-ultimate' );

		return $groups;

	}

	public function generator_callback( $shortcode ) {
		su_partial(
			'admin/partials/pro-features/generator.php',
			array(
				'shortcode' => $shortcode,
				'image_url' => $this->get_image_url(),
			)
		);
	}

	public function get_image_url( $path = '' ) {
		return plugin_dir_url( __FILE__ ) . 'images/pro-features/' . $path;
	}

	private function get_shortcodes() {

		return array(
			array(
				'id'   => 'splash',
				'name' => __( 'Splash screen', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'exit_popup',
				'name' => __( 'Exit popup', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'panel',
				'name' => __( 'Panel', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'photo_panel',
				'name' => __( 'Photo panel', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'icon_panel',
				'name' => __( 'Icon panel', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'icon_text',
				'name' => __( 'Text with icon', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'progress_pie',
				'name' => __( 'Progress pie', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'progress_bar',
				'name' => __( 'Progress bar', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'member',
				'name' => __( 'Member', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'section',
				'name' => __( 'Section', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'pricing_table',
				'name' => __( 'Pricing table', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'testimonial',
				'name' => __( 'Testimonial', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'icon',
				'name' => __( 'Icon', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'content_slider',
				'name' => __( 'Content slider', 'shortcodes-ultimate' ),
			),
			array(
				'id'   => 'shadow',
				'name' => __( 'Shadow', 'shortcodes-ultimate' ),
			),
		);

	}

	public function add_generator_cta( $shortcodes ) {

		if ( did_action( 'su/skins/ready' ) ) {
			return $shortcodes;
		}

		$cta = sprintf(
			'<span>%1$s</span><br><a href="%3$s" target="_blank" class="button">%2$s &rarr;</a>',
			sprintf(
				// translators: %s will be replaced with add-on name (Additional Skins)
				__( 'Get more styles for this shortcode with the %s add-on', 'shortcodes-ultimate' ),
				'<nobr>' . __( 'Additional Skins', 'shortcodes-ultimate' ) . '</nobr>'
			),
			__( 'Details & Pricing', 'shortcodes-ultimate' ),
			'https://getshortcodes.com/add-ons/additional-skins/'
		);

		foreach ( array( 'heading', 'tabs', 'tab', 'accordion', 'spoiler', 'quote' ) as $shortcode ) {

			unset( $shortcodes[ $shortcode ]['note'] );
			$shortcodes[ $shortcode ]['generator_cta'] = $cta;

		}

		return $shortcodes;

	}

}
