WC_REST_Payment_Gateways_Controller::validate_setting_multiselect_fieldpublicWC 1.0

Validate multiselect based settings (with support for nested options).

Method of the class: WC_REST_Payment_Gateways_Controller{}

No Hooks.

Returns

Array|WP_Error.

Usage

$WC_REST_Payment_Gateways_Controller = new WC_REST_Payment_Gateways_Controller();
$WC_REST_Payment_Gateways_Controller->validate_setting_multiselect_field( $values, $setting );
$values(array|string) (required)
The submitted values.
$setting(array) (required)
The field settings.

WC_REST_Payment_Gateways_Controller::validate_setting_multiselect_field() code WC 10.3.6

public function validate_setting_multiselect_field( $values, $setting ) {
	if ( empty( $values ) ) {
		return array();
	}

	if ( ! is_array( $values ) ) {
		return new WP_Error( 'rest_setting_value_invalid', __( 'An invalid setting value was passed.', 'woocommerce' ), array( 'status' => 400 ) );
	}

	$valid_keys = $this->flatten_options_keys( $setting['options'] );

	$final_values = array();
	foreach ( $values as $value ) {
		if ( in_array( $value, $valid_keys, true ) ) {
			$final_values[] = $value;
		}
	}

	return $final_values;
}