<?php
if (! class_exists ( 'DTCoreShortcodes' )) {
	
	/**
	 * Used to "Loades Core Shortcodes & Add button to tinymce"
	 *
	 * @author iamdesigning11
	 */
	class DTCoreShortcodes {

		/**
		 * Constructor for DTCoreShortcodes
		 */
		function __construct() {

			add_action( 'init', array( $this, 'dt_sc_load_shortcodes' ) );
			add_action( 'wp_enqueue_scripts', array( $this, 'dt_wp_enqueue_scripts' ) );

			add_action( 'init', array( $this, 'dt_sc_mc_subscribe' ) );
			add_filter( 'widget_text', 'do_shortcode' );

			add_action( 'wp_ajax_dt_wp_post_rating_like', array( $this, 'dt_wp_post_rating_like' ) );
			add_action( 'wp_ajax_nopriv_dt_wp_post_rating_like', array( $this, 'dt_wp_post_rating_like' ) );
		}

		function dt_sc_load_shortcodes() {

			require_once plugin_dir_path ( __FILE__ ) . 'shortcodes.php';
			if( function_exists( 'is_woocommerce' ) ){
				require_once plugin_dir_path ( __FILE__ ) . 'woo-shortcodes.php';
			}
		}

		function dt_wp_enqueue_scripts() {
			/* Front End CSS & jQuery */
			wp_enqueue_style ( 'dt-animation-css', plugin_dir_url ( __FILE__ ) . 'css/animations.css' );
			wp_enqueue_style ( 'dt-slick-css', plugin_dir_url ( __FILE__ ) . 'css/slick.css' );
			wp_enqueue_style ( 'dt-swiper-css', plugin_dir_url ( __FILE__ ) . 'css/swiper.min.css' );
			wp_enqueue_style ( 'dt-scrolltabs-css', plugin_dir_url ( __FILE__ ) . 'css/dt-scrolltabs.css' );
			wp_enqueue_style ( 'dt-sc-css', plugin_dir_url ( __FILE__ ) . 'css/shortcodes.css' );

			wp_enqueue_script ( 'dt-sc-tabs', plugin_dir_url ( __FILE__ ) . 'js/jquery.tabs.min.js', array (), false, true );
			wp_enqueue_script ( 'dt-sc-tiptip', plugin_dir_url ( __FILE__ ) . 'js/jquery.tipTip.minified.js', array (), false, true );
			wp_enqueue_script ( 'dt-sc-inview', plugin_dir_url ( __FILE__ ) . 'js/jquery.inview.js', array (), false, true );
			wp_enqueue_script ( 'dt-sc-animatenum', plugin_dir_url ( __FILE__ ) . 'js/jquery.animateNumber.min.js', array (), false, true );
			wp_enqueue_script ( 'dt-sc-donutchart', plugin_dir_url ( __FILE__ ) . 'js/jquery.donutchart.js', array (), false, true );
			wp_enqueue_script ( 'dt-sc-slick', plugin_dir_url ( __FILE__ ) . 'js/slick.min.js', array (), false, true );
			wp_enqueue_script ( 'dt-sc-scrolltabs', plugin_dir_url ( __FILE__ ) . 'js/dt.scrolltabs.js', array (), false, true );

			wp_enqueue_script ( 'dt-sc-script', plugin_dir_url ( __FILE__ ) . 'js/shortcodes.js', array (), false, true );
			wp_enqueue_script ( 'dt-sc-swiper', plugin_dir_url ( __FILE__ ) . 'js/swiper.min.js', array (), false, true );
			wp_enqueue_script ( 'dt-sc-360-viewer', plugin_dir_url ( __FILE__ ) . 'js/dt-360-viewer.js', array (), false, true );

			wp_enqueue_script ( 'dt-custom-waypoints', plugin_dir_url(__FILE__) . 'js/custom-waypoints.js', array('jquery'), false, true );

			if( function_exists( 'is_woocommerce' ) ){
				wp_enqueue_script ( 'dt-sc-woo-script', plugin_dir_url ( __FILE__ ) . 'js/woo-shortcodes.js', array (), false, true );
			}
		}

		function dt_sc_mc_subscribe() {
			if( defined('LOGTIK_CORE_PLUGIN') ) {
				require_once( LOGTIK_CORE_PLUGIN."/apis/mailchimp/mailchimp.php" );
			}
		}

		function dt_wp_post_rating_like() {

			$out = '';
			$postid = $_REQUEST['post_id'];
			$nonce = $_REQUEST['nonce'];
			$action = $_REQUEST['doaction'];
			$arr_pids = array();

			if ( wp_verify_nonce( $nonce, 'rating-nonce' ) && $postid > 0 ) {

				$post_meta = get_post_meta ( $postid, '_dt_post_settings', TRUE );
				$post_meta = is_array ( $post_meta ) ? $post_meta : array ();
				$var_count = ($action == 'like') ? 'like_count' : 'unlike_count';

				if( isset( $_COOKIE['arr_pids'] ) ) {

					// article voted already...
					if( in_array( $postid, explode(',', $_COOKIE['arr_pids']) ) ) {

						$out = esc_html__('Already', 'designthemes-core');

					} else {
						// article first vote...
						$v = array_key_exists($var_count, $post_meta) ?  $post_meta[$var_count] : 0;
						$v = $v + 1;
						$post_meta[$var_count] = $v;
						update_post_meta( $postid, '_dt_post_settings', $post_meta );

						$out = $v;

						$arr_pids = explode(',', $_COOKIE['arr_pids']);
						array_push( $arr_pids, $postid);
						setcookie( "arr_pids", implode(',', $arr_pids ), time()+1314000, "/" );
					}
				} else {
	
					// site first vote...
					$v = array_key_exists($var_count, $post_meta) ?  $post_meta[$var_count] : 0;
					$v = $v + 1;
					$post_meta[$var_count] = $v;
					update_post_meta( $postid, '_dt_post_settings', $post_meta );
	
					$out = $v;
	
					array_push( $arr_pids, $postid);
					setcookie( "arr_pids", implode(',', $arr_pids ), time()+1314000, "/" );
				}
			} else {
				$out = esc_html__('Security check', 'designthemes-core');
			}

			echo do_shortcode($out);

			die();
		}
	}
}