WC_API_JSON_Handler::generate_response()publicWC 2.1

Generate a JSON response given an array of data

Метод класса: WC_API_JSON_Handler{}

Хуки из метода

Возвращает

Строку.

Использование

$WC_API_JSON_Handler = new WC_API_JSON_Handler();
$WC_API_JSON_Handler->generate_response( $data );
$data(массив) (обязательный)
the response data

Список изменений

С версии 2.1 Введена.

Код WC_API_JSON_Handler::generate_response() WC 8.7.0

public function generate_response( $data ) {
	if ( isset( $_GET['_jsonp'] ) ) {

		if ( ! apply_filters( 'woocommerce_api_jsonp_enabled', true ) ) {
			WC()->api->server->send_status( 400 );
			return wp_json_encode( array( array( 'code' => 'woocommerce_api_jsonp_disabled', 'message' => __( 'JSONP support is disabled on this site', 'woocommerce' ) ) ) );
		}

		$jsonp_callback = $_GET['_jsonp'];

		if ( ! wp_check_jsonp_callback( $jsonp_callback ) ) {
			WC()->api->server->send_status( 400 );
			return wp_json_encode( array( array( 'code' => 'woocommerce_api_jsonp_callback_invalid', __( 'The JSONP callback function is invalid', 'woocommerce' ) ) ) );
		}

		WC()->api->server->header( 'X-Content-Type-Options', 'nosniff' );

		// Prepend '/**/' to mitigate possible JSONP Flash attacks.
		// https://miki.it/blog/2014/7/8/abusing-jsonp-with-rosetta-flash/
		return '/**/' . $jsonp_callback . '(' . wp_json_encode( $data ) . ')';
	}

	return wp_json_encode( $data );
}