HEX
Server: Apache
System: Linux hvh16.mirohost.net 6.14.0-29-generic #29~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Aug 14 16:52:50 UTC 2 x86_64
User: likoholding (1037)
PHP: 7.3.33-25+0~20250707.133+debian12~1.gbp70fb14
Disabled: apache_child_terminate, dl, exec, imap_body, imap_createmailbox, imap_deletemailbox, imap_list, imap_open, imap_renamemailbox, inject_code, mb_send_mail, passthru, pcntl_alarm, pcntl_async_signals, pcntl_errno, pcntl_exec, pcntl_fork, pcntl_get_last_error, pcntl_getpriority, pcntl_setpriority, pcntl_signal, pcntl_signal_dispatch, pcntl_signal_get_handler, pcntl_sigprocmask, pcntl_sigtimedwait, pcntl_sigwaitinfo, pcntl_strerror, pcntl_wait, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifcontinued, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, set_time_limit, shell_exec, symlink, system
Upload Files
File: /var/www/likoholding/liko-holding.com.ua/wp-content/plugins/polylang-pro/modules/rest/rest-api.php
<?php

/**
 * Setup the REST API endpoints and filters
 *
 * @since 2.2
 */
class PLL_REST_API {
	public $model;

	/**
	 * Constructor
	 *
	 * @since 2.2
	 *
	 * @param object $model Instance of PLL_Model
	 */
	public function __construct( &$model ) {
		$this->model = &$model;
		add_action( 'rest_api_init', array( $this, 'init' ) );
	}

	/**
	 * Init filters and new endpoints
	 *
	 * @since 2.2
	 */
	public function init() {
		$post_types = array_fill_keys( $this->model->get_translated_post_types(), array() );

		/**
		 * Filter post types and their options passed to PLL_Rest_Post contructor
		 *
		 * @since 2.2.1
		 *
		 * @param array $post_types An array of arrays with post types as keys and options as values
		 */
		$post_types = apply_filters( 'pll_rest_api_post_types', $post_types );
		$this->post = new PLL_REST_Post( $this->model, $post_types );

		$taxonomies = array_fill_keys( $this->model->get_translated_taxonomies(), array() );

		/**
		 * Filter post types and their options passed to PLL_Rest_Term constructor
		 *
		 * @since 2.2.1
		 *
		 * @param array $taxonomies An array of arrays with taxonomies as keys and options as values
		 */
		$taxonomies = apply_filters( 'pll_rest_api_taxonomies', $taxonomies );
		$this->term = new PLL_REST_Term( $this->model, $taxonomies );

		register_rest_route(
			'pll/v1',
			'/languages',
			array(
				'methods'  => WP_REST_Server::READABLE,
				'callback' => array( $this, 'get_languages' ),
			)
		);
	}

	/**
	 * Returns the list of languages
	 *
	 * @since 2.2
	 *
	 * @return array
	 */
	public function get_languages() {
		$languages = $this->model->get_languages_list();

		// Remove properties which don't make sense to be exposed
		foreach ( $languages as $k => $lang ) {
			foreach ( array( 'term_group', 'description', 'parent', 'flag', 'filter' ) as $prop ) {
				unset( $languages[ $k ]->$prop );
			}
		}

		return $languages;
	}
}