| Server IP : 185.143.234.238 / Your IP : 185.215.232.195 Web Server : nginx/1.22.1 System : Linux server2065 6.1.0-35-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.137-1 (2025-05-07) x86_64 User : www-data ( 33) PHP Version : 8.2.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/bcandle/wp-content/plugins/elementor-pro/modules/query-control/controls/ |
Upload File : |
<?php
namespace ElementorPro\Modules\QueryControl\Controls;
use Elementor\Control_Select2;
use ElementorPro\Modules\QueryControl\Module;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
class Query extends Control_Select2 {
public function get_type() {
return 'query';
}
/**
* 'query' can be used for passing query args in the structure and format used by WP_Query.
* @return array
*/
protected function get_default_settings() {
return array_merge(
parent::get_default_settings(), [
'query' => '',
]
);
}
/**
* Update control settings using mapping config
*
* @param $value
* @param array $control_args
* @param array $config
*
* @return mixed
*/
public function on_import_update_settings( $value, array $control_args, array $config ) {
switch ( $control_args['autocomplete']['object'] ) {
case Module::QUERY_OBJECT_POST:
case Module::QUERY_OBJECT_LIBRARY_TEMPLATE:
return $this->replace_id_from_mapping( $value, $config['post_ids'] );
case Module::QUERY_OBJECT_TAX:
return $this->replace_id_from_mapping( $value, $config['term_ids'] );
default:
return $value;
}
}
/**
* replace id from config
*
* @param mixed $value
* @param array $mapping
*
* @return string
*/
private function replace_id_from_mapping( $value, array $mapping ): string {
return $mapping[ $value ] ?? $value;
}
}