| Server IP : 78.24.162.143 / Your IP : 216.73.216.124 Web Server : Apache System : Linux hosting.cormo.systems 5.15.0-179-generic #189-Ubuntu SMP Tue May 5 18:20:56 UTC 2026 x86_64 User : web63 ( 5058) PHP Version : 7.4.33 Disable Function : create_functions,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/clients/client34/web63/web/wp-content/plugins/pods/src/Pods/REST/V1/Endpoints/ |
Upload File : |
<?php
namespace Pods\REST\V1\Endpoints;
use PodsForm;
use Tribe__Documentation__Swagger__Provider_Interface as Swagger_Interface;
use Tribe__REST__Endpoints__CREATE_Endpoint_Interface as CREATE_Interface;
use Tribe__REST__Endpoints__READ_Endpoint_Interface as READ_Interface;
use WP_Error;
use WP_REST_Request;
class Pods extends Base implements READ_Interface, CREATE_Interface, Swagger_Interface {
/**
* {@inheritdoc}
*
* @since 2.8.0
*/
public $route = '/pods';
/**
* {@inheritdoc}
*
* @since 2.8.0
*/
public $object = 'pod';
/**
* {@inheritdoc}
*
* @since 2.8.0
*/
public function get_documentation() {
$GET_defaults = [
'in' => 'query',
'default' => '',
];
// @todo Handle get/post
return [
'get' => [
'parameters' => $this->swaggerize_args( $this->READ_args(), $GET_defaults ),
'responses' => [
'200' => [
'description' => __( 'Returns all the tickets matching the search criteria.', 'pods' ),
'content' => [
'application/json' => [
'schema' => [
'type' => 'object',
'properties' => [
'pods' => [
'type' => 'array',
'items' => [ '$ref' => '#/components/schemas/Pod' ],
],
],
],
],
],
],
],
],
];
}
/**
* {@inheritdoc}
*
* @since 2.8.0
*/
public function READ_args() {
return [
'return_type' => [
'description' => __( 'The type of data to return.', 'pods' ),
'type' => 'string',
'default' => 'full',
'required' => false,
'enum' => [
'full',
'names',
'ids',
'count',
],
],
'types' => [
'required' => false,
'description' => __( 'A list of types to filter by.', 'pods' ),
'swagger_type' => 'array',
'items' => [
'type' => 'string',
],
'collectionFormat' => 'csv',
],
'ids' => [
'required' => false,
'description' => __( 'A list of IDs to filter by.', 'pods' ),
'swagger_type' => 'array',
'items' => [
'type' => 'integer',
],
'collectionFormat' => 'csv',
],
'args' => [
'required' => false,
'description' => __( 'A list of arguments to filter by.', 'pods' ),
'swagger_type' => 'array',
],
];
}
/**
* {@inheritdoc}
*
* @since 2.8.0
*/
public function get( WP_REST_Request $request ) {
return $this->archive_by_args( $request );
}
/**
* Determine whether access to READ is available.
*
* @since 2.8.0
*
* @return bool Whether access to READ is available.
*/
public function can_read() {
return pods_is_admin( 'pods' );
}
/**
* {@inheritdoc}
*
* @since 2.8.0
*/
public function CREATE_args() {
return [
'mode' => [
'type' => 'string',
'description' => __( 'The mode for creating the Pod.', 'pods' ),
'default' => 'create',
'enum' => [
'create',
'extend',
],
],
'name' => [
'type' => 'string',
'description' => __( 'The name of the Pod.', 'pods' ),
],
'label' => [
'type' => 'string',
'description' => __( 'The plural label of the Pod.', 'pods' ),
],
'type' => [
'type' => 'string',
'description' => __( 'The type of the Pod.', 'pods' ),
'enum' => PodsForm::pod_types_list(),
'required' => true,
],
'storage' => [
'type' => 'string',
'description' => __( 'The storage used for the Pod.', 'pods' ),
'default' => 'meta',
'enum' => [
'meta',
'table',
'none',
],
],
'label_singular' => [
'type' => 'string',
'description' => __( 'The singular label of the Pod.', 'pods' ),
],
'menu_name' => [
'type' => 'string',
'description' => __( 'The menu label of the Pod.', 'pods' ),
],
'menu_location' => [
'type' => 'string',
'description' => __( 'The menu location of the Pod.', 'pods' ),
],
];
}
/**
* {@inheritdoc}
*
* @since 2.8.0
*/
public function create( WP_REST_REQUEST $request, $return_id = false ) {
if ( ! empty( $request['groups'] ) ) {
$request->set_param( 'groups', null );
}
if ( ! empty( $request['fields'] ) ) {
$request->set_param( 'fields', null );
}
$mode = $request->get_param( 'mode' );
$type = $request->get_param( 'type' );
$storage = $request->get_param( 'storage' );
if ( 'extend' === $mode ) {
$params = [
'create_extend' => 'extend',
'extend_pod_type' => $type,
'extend_storage' => $storage,
];
$name = $request->get_param( 'name' );
if ( 'post_type' === $params['extend_pod_type'] ) {
$params['extend_post_type'] = $name;
} elseif ( 'taxonomy' === $params['extend_pod_type'] ) {
$params['extend_taxonomy'] = $name;
} elseif ( 'table' === $params['extend_pod_type'] ) {
$params['extend_table'] = $name;
} elseif ( in_array( $params['extend_pod_type'], [ 'pod', 'settings' ], true ) ) {
return new WP_Error( 'rest-object-extend-type-not-supported', __( 'Pod type not supported for extending.', 'pods' ) );
}
} else {
$params = [
'create_extend' => 'create',
'create_pod_type' => $type,
'create_storage' => $storage,
'create_label_plural' => $request->get_param( 'label' ),
'create_label_singular' => $request->get_param( 'label_singular' ),
'create_label_menu' => $request->get_param( 'menu_name' ),
'create_menu_location' => $request->get_param( 'menu_location' ),
];
if ( 'settings' === $params['create_pod_type'] ) {
$params['create_label_title'] = $params['create_label_plural'];
}
$name = $request->get_param( 'name' );
if ( 'settings' === $params['create_pod_type'] ) {
$params['create_setting_name'] = $name;
$params['create_storage'] = 'none';
} else {
$params['create_name'] = $name;
}
}
$api = pods_api();
$api->display_errors = 'wp_error';
$id = $api->add_pod( $params );
if ( is_wp_error( $id ) ) {
return $id;
}
if ( empty( $id ) ) {
return new WP_Error( 'rest-object-not-added', sprintf( __( '%s not added.', 'pods' ), ucwords( $this->object ) ) );
}
return $this->get_by_args( [
'id' => $id,
], 'id', null, $return_id );
}
/**
* {@inheritdoc}
*
* @since 2.8.0
*/
public function can_create() {
return pods_is_admin( 'pods' );
}
}