WC_REST_Email_Settings_V4_Controller::validate_setting_valueprivateWC 1.0

Validate a setting value before updating.

Method of the class: WC_REST_Email_Settings_V4_Controller{}

No Hooks.

Returns

true|false|WP_Error. True if valid, WP_Error if invalid.

Usage

// private - for code of main (parent) class only
$result = $this->validate_setting_value( $setting_id, $value, $reply_to_enabled );
$setting_id(string) (required)
Setting ID.
$value(mixed) (required)
Setting value.
$reply_to_enabled(string) (required)
Reply-to enabled.

WC_REST_Email_Settings_V4_Controller::validate_setting_value() code WC 10.3.6

private function validate_setting_value( $setting_id, $value, $reply_to_enabled ) {
	$check_reply_to = 'yes' === $reply_to_enabled;
	switch ( $setting_id ) {
		case 'woocommerce_email_from_name':
			if ( empty( $value ) || ! is_string( $value ) ) {
				return new WP_Error(
					'rest_invalid_param',
					__( 'Email sender name cannot be empty.', 'woocommerce' ),
					array( 'status' => 400 )
				);
			}
			break;

		case 'woocommerce_email_from_address':
			if ( empty( $value ) || ! is_email( $value ) ) {
				return new WP_Error(
					'rest_invalid_param',
					__( 'Please enter a valid email address.', 'woocommerce' ),
					array( 'status' => 400 )
				);
			}
			break;

		case 'woocommerce_email_reply_to_enabled':
			// Convert string 'true'/'false' to boolean if needed.
			if ( is_string( $value ) ) {
				$value = filter_var( $value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE );
			}
			if ( ! is_bool( $value ) && null !== $value ) {
				return new WP_Error(
					'rest_invalid_param',
					__( 'Reply-to enabled must be a boolean value.', 'woocommerce' ),
					array( 'status' => 400 )
				);
			}
			break;

		case 'woocommerce_email_reply_to_name':
			// Only validate if reply-to is enabled.
			if ( $check_reply_to && ( empty( $value ) || ! is_string( $value ) ) ) {
				return new WP_Error(
					'rest_invalid_param',
					__( 'Reply-to name cannot be empty when reply-to is enabled.', 'woocommerce' ),
					array( 'status' => 400 )
				);
			}
			break;

		case 'woocommerce_email_reply_to_address':
			// Only validate if reply-to is enabled.
			if ( $check_reply_to && ( empty( $value ) || ! is_email( $value ) ) ) {
				return new WP_Error(
					'rest_invalid_param',
					__( 'Please enter a valid reply-to email address.', 'woocommerce' ),
					array( 'status' => 400 )
				);
			}
			break;
	}

	return true;
}