Automattic\WooCommerce\Internal\Admin\Settings
PaymentsRestController::get_providers
Get the payment providers for the given location.
Метод класса: PaymentsRestController{}
Хуков нет.
Возвращает
WP_Error|WP_REST_Response.
Использование
// protected - в коде основоного (родительского) или дочернего класса $result = $this->get_providers( $request );
- $request(WP_REST_Request) (обязательный)
- The request object.
Код PaymentsRestController::get_providers() PaymentsRestController::get providers WC 10.7.0
protected function get_providers( WP_REST_Request $request ) {
$location = $request->get_param( 'location' );
if ( empty( $location ) ) {
// Fall back to the providers country if no location is provided.
$location = $this->payments->get_country();
}
try {
$providers = $this->payments->get_payment_providers( $location );
} catch ( Exception $e ) {
return new WP_Error( 'woocommerce_rest_payment_providers_error', $e->getMessage(), array( 'status' => 500 ) );
}
try {
$suggestions = $this->get_extension_suggestions( $location );
} catch ( Exception $e ) {
return new WP_Error( 'woocommerce_rest_payment_providers_error', $e->getMessage(), array( 'status' => 500 ) );
}
// Separate the offline PMs from the main providers list.
$offline_payment_providers = array_values(
array_filter(
$providers,
fn( $provider ) => PaymentsProviders::TYPE_OFFLINE_PM === $provider['_type']
)
);
$providers = array_values(
array_filter(
$providers,
fn( $provider ) => PaymentsProviders::TYPE_OFFLINE_PM !== $provider['_type']
)
);
$response = array(
'providers' => $providers,
'offline_payment_methods' => $offline_payment_providers,
'suggestions' => $suggestions,
'suggestion_categories' => $this->payments->get_payment_extension_suggestion_categories(),
);
return rest_ensure_response( $this->prepare_payment_providers_response( $response ) );
}