File "bdevs-el-select2-handler.php"

Full Path: /home/leadltht/fastlinkinternet.com/admin/wp-content/wp-content/wp-content/plugins/bdevs-element/classes/bdevs-el-select2-handler.php
File size: 2.76 KB
MIME-type: text/x-php
Charset: utf-8

<?php
namespace BdevsElement;

defined( 'ABSPATH' ) || die();


class BDevs_El_Select2_Handler {

	public static function init () {
		
		add_action( 'wp_ajax_bdevs_element_post_list_query', [ __CLASS__, 'bdevs_element_post_list_query' ] );
		add_action( 'wp_ajax_bdevs_element_post_tab_select_query', [ __CLASS__, 'post_tab_query' ] );
	}

	/**
	 * Return Post list based on post type
	 */
	public static function bdevs_element_post_list_query () {

		$security = check_ajax_referer( 'bdevs_element_Select2_Secret', 'security' );
		if ( ! $security ) return;
		$post_type = isset( $_POST['post_type'] ) ? sanitize_text_field( $_POST['post_type'] ) : '';
		if ( ! $post_type ) return;

		$select_type = isset( $_POST['select_type'] ) ? $_POST['select_type'] : false;
		$search_string = isset( $_POST['q'] ) ? sanitize_text_field( $_POST['q'] ) : '';
		$ids = isset( $_POST['id'] ) ? $_POST['id'] : array();

		$data = [];
		$arg = [
			'post_status' => 'publish',
			'post_type' => $post_type,
			'posts_per_page' => -1,
		];
		$arg['s'] = $search_string;
		$arg['post__in'] = $ids;
		$query = new \WP_Query( $arg );
		if ( $select_type === 'choose' && $query->have_posts() ) {
			while ( $query->have_posts() ) {
				$query->the_post();
				$data[] = [
					'id' => get_the_id(),
					'text' => get_the_title(),
				];
			}
			wp_reset_postdata();
		}
		if ( $select_type === 'selected' && $query->have_posts() ) {
			while ( $query->have_posts() ) {
				$query->the_post();
				$data[get_the_id()] = get_the_title();
			}
			wp_reset_postdata();
		}
		// return the results in json.
		wp_send_json( $data );

	}

	/**
	 * Return Post tab query value
	 */
	public static function post_tab_query () {

		$security = check_ajax_referer( 'bdevs_element_Select2_Secret', 'security' );

		if ( ! $security ) 
			return;

		$tax_id = isset( $_POST['tax_id'] ) ? sanitize_text_field( $_POST['tax_id'] ) : '';

		if ( ! $tax_id ) return;

		$select_type = isset( $_POST['select_type'] ) ? $_POST['select_type'] : false;

		$search = isset( $_POST['q'] ) ? sanitize_text_field( $_POST['q'] ) : '';

		$ids = isset( $_POST['id'] ) ? $_POST['id'] : array();

		$arg = [
			'taxonomy' => $tax_id,
			'hide_empty' => true,
			'include' => $ids,
		];

		if($search)
			$arg['search'] = $search;

		$terms = get_terms( $arg );

		$data = [];
		if ( $select_type === 'choose' ) {

			foreach ($terms as $value){
				$data[] = [
					'id' => $value->term_id,
					'text' => $value->name . ' ('. $value->count.')',
				];
			}
		}

		if ( $select_type === 'selected' ) {

			foreach ($terms as $value){
				$data[ $value->term_id ] = $value->name;
			}
			
		}
		
		// return the results in json.
		wp_send_json( $data );

	}

}