WC_REST_Email_Settings_V4_Controller::validate_setting_value
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() 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;
}