GRAYBYTE WORDPRESS FILE MANAGER3377

Server IP : 68.65.123.43 / Your IP : 216.73.216.162
System : Linux server266.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
PHP Version : 8.0.30
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /home/inteuuod/public_html/wp-content/plugins/templately/includes/API/
Upload Files :
Current_dir [ Writeable ] Document_root [ Writeable ]

Command :


Current File : /home/inteuuod/public_html/wp-content/plugins/templately/includes/API//Conditions.php
<?php

namespace Templately\API;

use Templately\Builder\Managers\ConditionManager;
use Templately\Builder\Source;
use WP_REST_Request;
use WP_REST_Response;

class Conditions extends API {
	/**
	 * @var ConditionManager
	 */
	private $conditions_manager;

	public function permission_check( WP_REST_Request $request ) {
		$post_type_object = get_post_type_object( Source::CPT );

		return current_user_can( $post_type_object->cap->edit_posts );
	}

	public function register_routes() {
		$this->get( 'conditions', [ $this, 'get_conditions' ], [
			'template_id' => [
				'required'          => false,
				'validate_callback' => function ( $param ) {
					return empty( $param ) || is_numeric( $param );
				}
			]
		] );

		$this->get( 'check-conditions', [ $this, 'check' ], [
			'template_id' => [
				'required'          => true,
				'validate_callback' => function ( $param ) {
					return is_numeric( $param );
				}
			]
		] );

		$this->post( 'save-conditions', [ $this, 'save' ], [
			'template_id' => [
				'required'          => true,
				'validate_callback' => function ( $param ) {
					return is_numeric( $param );
				}
			],
			'conditions'  => [
				'required'          => true,
				'validate_callback' => function ( $param ) {
					return is_array( $param );
				}
			]
		] );

		$this->get( 'autocomplete-condition', [ $this, 'autocomplete' ], [
			'payload' => [
				'required'          => true,
				'validate_callback' => function ( $param ) {
					return is_string( $param );
				}
			],
			'query'   => [
				'required'          => true,
				'validate_callback' => function ( $param ) {
					return is_array( $param ) && array_key_exists( 'query_type', $param );
				}
			]
		] );

		$this->conditions_manager = templately()->theme_builder::$conditions_manager;
	}

	public function get_conditions( WP_REST_Request $request ): WP_REST_Response {
		$conditions = $this->conditions_manager->get_conditions_for_display( $request->get_param( 'template_id' ) );

		return $this->success( $conditions );
	}

	public function check( WP_REST_Request $request ): WP_REST_Response {
		return $this->success( [] );
	}

	public function save( WP_REST_Request $request ): WP_REST_Response {
		$conditions = rest_sanitize_array( $request->get_param( 'conditions' ) );
		$id         = (int) $request->get_param( 'template_id' );


		$this->conditions_manager->save_conditions( $id, $conditions );


		return $this->success( __( 'Successfully saved.', 'templately' ) );
	}

	public function autocomplete( WP_REST_Request $request ): WP_REST_Response {
		$query = $request->get_param( 'query' );
		$type  = $query['query_type'] ?? '';

		if ( empty( $type ) ) {
			// FIXME: need throw error maybe
			return $this->success( [] );
		}

		$by_field = $query['field'] ?? '';

		if ( empty( $by_field ) ) {
			// FIXME: need throw error maybe
			return $this->success( [] );
		}

		$payload = sanitize_text_field( $request->get_param( 'payload' ) );
		$args    = [ 'search' => $payload ];
		if(is_numeric($payload)){
			$args = [ 'post__in' => [(int) $payload] ];
		}

		if ( isset( $query['query'] ) ) {
			$args = wp_parse_args( $query['query'], $args );
		}

		$results = [];

		switch ( $type ) {
			case 'taxonomy':
				$_default = [ 'hide_empty' => false ];
				$data     = get_terms( wp_parse_args( $args, $_default ) );
				$data_key = 'name';
				break;
			case 'posts':
				$args['s'] = $args['search'];
				$data      = get_posts( $args );
				$data_key  = 'post_title';
				break;
			case 'authors':
				$args['search_columns'] = [ 'user_nicename', 'user_login' ];
				$args['search']         = "*{$args['search']}*";
				$data                   = get_users( $args );

				$data_key = 'display_name';
				break;
		}

		if ( ! empty( $data ) && is_array( $data ) ) {
			foreach ( $data as $item ) {
				$results[] = [
					'label' => $item->{$data_key},
					'value' => $item->{$by_field}
				];
			}
		}

		return $this->success( $results );
	}
}

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
July 10 2025 04:32:23
inteuuod / inteuuod
0755
.htaccess
0.41 KB
July 10 2025 04:32:23
inteuuod / inteuuod
0644
API.php
5.837 KB
August 22 2024 16:42:02
inteuuod / inteuuod
0644
Categories.php
1.062 KB
October 03 2022 13:36:30
inteuuod / inteuuod
0644
Conditions.php
3.867 KB
October 27 2024 15:14:06
inteuuod / inteuuod
0644
Dependencies.php
6.872 KB
July 15 2024 11:58:04
inteuuod / inteuuod
0644
FullSiteImport.php
0.246 KB
January 24 2024 15:10:10
inteuuod / inteuuod
0644
Import.php
6.807 KB
February 13 2025 17:17:14
inteuuod / inteuuod
0644
Items.php
12.179 KB
February 02 2025 15:55:04
inteuuod / inteuuod
0644
Login.php
7.929 KB
March 21 2024 14:12:32
inteuuod / inteuuod
0644
MyClouds.php
7.706 KB
September 03 2024 15:33:28
inteuuod / inteuuod
0644
Profile.php
5.453 KB
January 24 2024 15:10:10
inteuuod / inteuuod
0644
SavedTemplates.php
1.731 KB
October 09 2023 10:51:12
inteuuod / inteuuod
0644
SignUp.php
2.639 KB
May 11 2023 13:38:16
inteuuod / inteuuod
0644
Tags.php
0.846 KB
October 03 2022 13:36:30
inteuuod / inteuuod
0644
TemplateTypes.php
1.854 KB
December 12 2022 10:31:54
inteuuod / inteuuod
0644
ThemeBuilderApi.php
1.82 KB
May 09 2024 14:28:36
inteuuod / inteuuod
0644
WorkSpaces.php
9.793 KB
December 06 2023 16:06:56
inteuuod / inteuuod
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF