Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
unlimited-elements-for-elementor
/
provider
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access'); class ProviderOperationsUC extends UCOperations { private function getSearchFromData($data) { $type = UniteFunctionsUC::getVal($data, "_type"); if ($type != "query") { return null; } $searchTerm = UniteFunctionsUC::getVal($data, "q"); return $searchTerm; } public function getSelect2TermsTitles($data) { $arrIDs = UniteFunctionsUC::getVal($data, "post_ids"); if (empty($arrIDs)) { return null; } if (is_string($arrIDs)) { $arrIDs = explode(",", $arrIDs); } $firstID = $arrIDs[0]; if (is_numeric($firstID) == false) { $args = array("slug" => $arrIDs); } else { $args = array("include" => $arrIDs); } $response = get_terms($args); if (empty($response)) { return null; } $output = array(); foreach ($response as $term) { $termID = $term->term_id; $title = $term->name; $taxonomy = $term->taxonomy; $title .= " ({$taxonomy})"; $item = array(); $item["id"] = $termID; $item["text"] = $title; $output[] = $item; } return $output; } public function getSelect2PostTitles($data) { $arrIDs = UniteFunctionsUC::getVal($data, "post_ids"); $arrTypesAssoc = UniteFunctionsWPUC::getPostTypesAssoc(array(), true); if (empty($arrIDs)) { return null; } $response = UniteFunctionsWPUC::getPostTitlesByIDs($arrIDs); if (empty($response)) { return null; } $output = array(); foreach ($response as $record) { $id = UniteFunctionsUC::getVal($record, "id"); $title = UniteFunctionsUC::getVal($record, "title"); $postType = UniteFunctionsUC::getVal($record, "type"); $typeTitle = UniteFunctionsUC::getVal($arrTypesAssoc, $postType); if (empty($typeTitle)) { $typeTitle = $postType; } $title .= " ({$typeTitle})"; $item = array(); $item["id"] = $id; $item["text"] = $title; $output[] = $item; } return $output; } public function getTermsListForSelectFromData($data) { $limit = 10; $search = $this->getSearchFromData($data); $taxonomy = UniteFunctionsUC::getVal($data, "taxonomy"); $query = array(); $query["number"] = $limit; $query["search"] = $search; if (!empty($taxonomy)) { $query["taxonomy"] = $taxonomy; } $response = get_terms($query); if (empty($response) && count($search) == 1) { unset($query["search"]); $response = get_terms($query); } if (empty($response)) { return null; } $arrResult = array(); foreach ($response as $term) { $termID = $term->term_id; $name = $term->name; $taxonomy = $term->taxonomy; $title = $name . " - ({$taxonomy})"; $arr = array(); $arr["id"] = $termID; $arr["text"] = $title; $arrResult[] = $arr; } $arrOutput = array(); $arrOutput["results"] = $arrResult; $arrOutput["pagination"] = array("more" => false); return $arrOutput; } public function getPostListForSelectFromData($data, $addNotSelected = false, $limit = 10) { $search = $this->getSearchFromData($data); $filterPostType = UniteFunctionsUC::getVal($data, "post_type"); switch ($filterPostType) { case "product": $arrTypesAssoc = array("product" => __("Product", "unlimited-elements-for-elementor")); break; case "elementor_template": $arrTypesAssoc = array("elementor_library" => __("Template", "unlimited-elements-for-elementor")); break; default: $arrTypesAssoc = UniteFunctionsWPUC::getPostTypesAssoc(array(), true); break; } $arrPostTypes = array_keys($arrTypesAssoc); $strPostTypes = implode("','", $arrPostTypes); $strPostTypes = "'{$strPostTypes}'"; $db = HelperUC::getDB(); $tablePosts = UniteProviderFunctionsUC::$tablePosts; $search = $db->escape($search); $where = "post_type in ({$strPostTypes})"; $where .= " and post_status in ('publish','draft','private')"; $isStartWord = strlen($search) == 1; $whereStartWord = $where . " and post_title like '{$search}%'"; $whereRegular = $where . " and post_title like '%{$search}%'"; $sqlStartWord = "select * from {$tablePosts} where {$whereStartWord} limit {$limit}"; $sql = "select * from {$tablePosts} where {$whereRegular} limit {$limit}"; if ($isStartWord == true) { $response = $db->fetchSql($sqlStartWord); if (empty($response)) { $response = $db->fetchSql($sql); } } else { $response = $db->fetchSql($sql); } if (empty($response)) { return array(); } $arrResult = array(); if ($addNotSelected == true) { $arr = array(); $arr["id"] = 0; $arr["text"] = __("[please select post]", "unlimited-elements-for-elementor"); $arrResult[] = $arr; } foreach ($response as $post) { $postID = $post["ID"]; $postTitle = $post["post_title"]; $postType = $post["post_type"]; $postTypeTitle = UniteFunctionsUC::getVal($arrTypesAssoc, $postType); if (empty($postTypeTitle)) { $postTypeTitle = $postType; } $title = $postTitle . " - ({$postTypeTitle})"; $arr = array(); $arr["id"] = $postID; $arr["text"] = $title; $arrResult[] = $arr; } $arrOutput = array(); $arrOutput["results"] = $arrResult; $arrOutput["pagination"] = array("more" => false); return $arrOutput; } }