Automattic\WooCommerce\Internal\RestApi\Routes\V4\Settings\PaymentGateways\Schema
BacsGatewaySettingsSchema::validate_bacs_accounts
Validate BACS account details array.
Method of the class: BacsGatewaySettingsSchema{}
No Hooks.
Returns
Array|WP_Error. Validated accounts or error.
Usage
// private - for code of main (parent) class only $result = $this->validate_bacs_accounts( $value );
- $value(mixed) (required)
- Account details value.
BacsGatewaySettingsSchema::validate_bacs_accounts() BacsGatewaySettingsSchema::validate bacs accounts code WC 10.4.3
private function validate_bacs_accounts( $value ) {
if ( ! is_array( $value ) ) {
return new WP_Error(
'rest_invalid_param',
__( 'Account details must be an array.', 'woocommerce' ),
array( 'status' => 400 )
);
}
$validated_accounts = array();
$valid_fields = array( 'account_name', 'account_number', 'sort_code', 'bank_name', 'iban', 'bic' );
foreach ( $value as $index => $account ) {
if ( ! is_array( $account ) ) {
return new WP_Error(
'rest_invalid_param',
sprintf(
/* translators: %d: account index */
__( 'Account at index %d must be an object.', 'woocommerce' ),
$index
),
array( 'status' => 400 )
);
}
$validated_account = array();
// Sanitize each field.
foreach ( $valid_fields as $field ) {
$validated_account[ $field ] = isset( $account[ $field ] )
? sanitize_text_field( $account[ $field ] )
: '';
}
// Only add if at least one field is filled.
if ( array_filter( $validated_account ) ) {
$validated_accounts[] = $validated_account;
}
}
return $validated_accounts;
}