Файловый менеджер - Редактировать - /home/tuudkjt/globeasy/wp-content/plugins/woocommerce/src/Internal/RestApi/Routes/V4/Customers/CollectionQuery.php
Назад
<?php /** * CollectionQuery class. * * @package WooCommerce\RestApi * @internal This file is for internal use only and should not be used by external code. */ declare( strict_types=1 ); namespace Automattic\WooCommerce\Internal\RestApi\Routes\V4\Customers; defined( 'ABSPATH' ) || exit; use Automattic\WooCommerce\Internal\RestApi\Routes\V4\AbstractCollectionQuery; use WP_REST_Request; use WP_User_Query; /** * CollectionQuery class. * * @internal This class is for internal use only and should not be used by external code. */ final class CollectionQuery extends AbstractCollectionQuery { /** * Get query schema. * * @return array */ public function get_query_schema(): array { return array( 'page' => array( 'description' => __( 'Current page of the collection.', 'woocommerce' ), 'type' => 'integer', 'default' => 1, 'sanitize_callback' => 'absint', 'validate_callback' => 'rest_validate_request_arg', 'minimum' => 1, ), 'per_page' => array( 'description' => __( 'Maximum number of items to be returned in result set.', 'woocommerce' ), 'type' => 'integer', 'default' => 10, 'minimum' => 1, 'maximum' => 100, 'sanitize_callback' => 'absint', 'validate_callback' => 'rest_validate_request_arg', ), 'search' => array( 'description' => __( 'Limit results to those matching a string.', 'woocommerce' ), 'type' => 'string', 'sanitize_callback' => 'sanitize_text_field', 'validate_callback' => 'rest_validate_request_arg', ), 'exclude' => array( 'description' => __( 'Ensure result set excludes specific IDs.', 'woocommerce' ), 'type' => 'array', 'items' => array( 'type' => 'integer', ), 'default' => array(), 'sanitize_callback' => 'wp_parse_id_list', ), 'include' => array( 'description' => __( 'Limit result set to specific IDs.', 'woocommerce' ), 'type' => 'array', 'items' => array( 'type' => 'integer', ), 'default' => array(), 'sanitize_callback' => 'wp_parse_id_list', ), 'order' => array( 'description' => __( 'Order sort attribute ascending or descending.', 'woocommerce' ), 'type' => 'string', 'default' => 'asc', 'enum' => array( 'asc', 'desc' ), 'sanitize_callback' => 'sanitize_key', 'validate_callback' => 'rest_validate_request_arg', ), 'orderby' => array( 'description' => __( 'Sort collection by object attribute.', 'woocommerce' ), 'type' => 'string', 'default' => 'name', 'enum' => array( 'id', 'name', 'registered_date', 'order_count', 'total_spent', 'last_active', ), 'sanitize_callback' => 'sanitize_key', 'validate_callback' => 'rest_validate_request_arg', ), 'role' => array( 'description' => __( 'Limit result set to resources with a specific role.', 'woocommerce' ), 'type' => 'string', 'default' => 'customer', 'enum' => array( 'customer', 'all' ), 'validate_callback' => 'rest_validate_request_arg', ), ); } /** * Prepares query args. * * @param WP_REST_Request $request The request object. * @return array */ public function get_query_args( WP_REST_Request $request ): array { $prepared_args = array(); $prepared_args['exclude'] = $request['exclude']; $prepared_args['include'] = $request['include']; $prepared_args['order'] = $request['order']; $prepared_args['number'] = $request['per_page']; $prepared_args['page'] = max( 1, intval( $request['page'] ) ); $orderby_possibles = array( 'id' => 'ID', 'name' => 'display_name', 'registered_date' => 'user_registered', 'order_count' => 'wc_order_count', 'total_spent' => 'wc_money_spent', 'last_active' => 'wc_last_active', ); $prepared_args['orderby'] = $orderby_possibles[ $request['orderby'] ]; $prepared_args['search'] = $request['search']; if ( ! empty( $prepared_args['search'] ) ) { $prepared_args['search'] = '*' . $prepared_args['search'] . '*'; } // Always pass role through (datastore handles 'all' vs 'customer'). $prepared_args['role'] = $request['role']; /** * Filter arguments, before passing to WP_User_Query, when querying users via the REST API. * * @see https://developer.wordpress.org/reference/classes/wp_user_query/ * * @param array $prepared_args Array of arguments for WP_User_Query. * @param WP_REST_Request $request The current request. * @since 10.2.0 */ $prepared_args = apply_filters( 'woocommerce_rest_customer_query', $prepared_args, $request ); return $prepared_args; } /** * Get results of the query. * * @param array $query_args The query arguments. * @param WP_REST_Request $request The request object. * @return array */ public function get_query_results( array $query_args, WP_REST_Request $request ): array { $method_args = array( 'order' => $query_args['order'] ?? 'asc', 'orderby' => $query_args['orderby'] ?? 'user_registered', 'per_page' => $query_args['number'] ?? 10, 'search' => $query_args['search'] ?? '', 'role' => $query_args['role'] ?? 'customer', 'include' => $query_args['include'] ?? array(), 'exclude' => $query_args['exclude'] ?? array(), 'page' => $query_args['page'] ?? 1, ); $data_store = \WC_Data_Store::load( 'customer' ); $customer_query_results = $data_store->query_customers( $method_args ); $users = $customer_query_results->customers; $total_users = $customer_query_results->total; $max_pages = $customer_query_results->max_num_pages; return array( 'results' => $users, 'total' => $total_users, 'pages' => $max_pages, ); } }
| ver. 1.6 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка