Automattic\WooCommerce\Internal\RestApi\Routes\V4\Settings\OfflinePaymentMethods
Controller::get_items
Get offline payment methods.
Method of the class: Controller{}
No Hooks.
Returns
WP_REST_Response|WP_Error.
Usage
$Controller = new Controller(); $Controller->get_items( $request );
- $request(WP_REST_Request) (required)
- Full details about the request.
Controller::get_items() Controller::get items code WC 10.5.0
public function get_items( $request ) {
try {
$offline_methods = $this->get_offline_payment_methods_data( $request );
} catch ( \Exception $e ) {
return new WP_Error(
'woocommerce_rest_offline_payment_methods_error',
$e->getMessage(),
array( 'status' => 500 )
);
}
if ( is_wp_error( $offline_methods ) ) {
return $offline_methods;
}
// Transform data to match the new format.
$response_data = array(
'id' => 'payments/offline-methods',
'title' => __( 'Offline Payment Methods', 'woocommerce' ),
'description' => __( 'Manage offline payment methods available for your store.', 'woocommerce' ),
'values' => array(),
'groups' => array(
'payment_methods' => array(),
),
);
// Validate input is an array.
if ( ! is_array( $offline_methods ) ) {
return new WP_Error(
'woocommerce_rest_invalid_data',
__( 'Invalid payment methods data received.', 'woocommerce' ),
array( 'status' => 500 )
);
}
// Process each offline payment method.
foreach ( $offline_methods as $method ) {
// Skip if method is not an array.
if ( ! is_array( $method ) ) {
continue;
}
$method_id = $method['id'] ?? '';
if ( empty( $method_id ) || ! is_string( $method_id ) ) {
continue;
}
// Add method to values (current settings/state).
$enabled_state = false;
if ( isset( $method['state'] ) && is_array( $method['state'] ) ) {
$enabled_state = $method['state']['enabled'] ?? false;
}
if ( is_array( $enabled_state ) ) {
$enabled_state = $enabled_state['value'] ?? false;
}
if ( is_string( $enabled_state ) ) {
$enabled_state = wc_string_to_bool( $enabled_state );
} elseif ( ! is_bool( $enabled_state ) ) {
$enabled_state = (bool) $enabled_state;
}
$response_data['values'][ $method_id ] = $enabled_state;
// Add complete payment method data to groups.payment_methods.
$response_data['groups']['payment_methods'][ $method_id ] = array(
'id' => $method_id,
'_order' => isset( $method['_order'] ) ? absint( $method['_order'] ) : 0,
'title' => sanitize_text_field( $method['title'] ?? '' ),
'description' => wp_kses_post( $method['description'] ?? '' ),
'icon' => esc_url_raw( $method['icon'] ?? '' ),
'state' => array_map(
'rest_sanitize_boolean',
wp_parse_args(
is_array( $method['state'] ?? null ) ? $method['state'] : array(),
array(
'enabled' => false,
'account_connected' => false,
'needs_setup' => false,
'test_mode' => false,
'dev_mode' => false,
)
)
),
'management' => $this->sanitize_management_field( $method['management'] ?? array() ),
);
}
return rest_ensure_response( $response_data );
}