| Server IP : 104.21.28.229 / Your IP : 216.73.216.142 Web Server : Apache/2 System : Linux hosting8537.lvs 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : mienphi ( 1014) PHP Version : 8.2.14 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/mienphi/public_html/wp-content/plugins/woocommerce/src/Internal/Settings/ |
Upload File : |
<?php
/**
* FormatValidator class.
*/
namespace Automattic\WooCommerce\Internal\Settings;
defined( 'ABSPATH' ) || exit;
/**
* This class handles sanitization of core options that need to conform to certain format.
*
* @since 6.6.0
*/
class OptionSanitizer {
/**
* OptionSanitizer constructor.
*/
public function __construct() {
// Sanitize color options.
$color_options = array(
'woocommerce_email_base_color',
'woocommerce_email_background_color',
'woocommerce_email_body_background_color',
'woocommerce_email_text_color',
);
foreach ( $color_options as $option_name ) {
add_filter(
"woocommerce_admin_settings_sanitize_option_{$option_name}",
array( $this, 'sanitize_color_option' ),
10,
2
);
}
// Cast "Out of stock threshold" field to absolute integer to prevent storing empty value.
add_filter( 'woocommerce_admin_settings_sanitize_option_woocommerce_notify_no_stock_amount', 'absint' );
}
/**
* Sanitizes values for options of type 'color' before persisting to the database.
* Falls back to previous/default value for the option if given an invalid value.
*
* @since 6.6.0
* @param string $value Option value.
* @param array $option Option data.
* @return string Color in hex format.
*
* @internal For exclusive usage of WooCommerce core, backwards compatibility not guaranteed.
*/
public function sanitize_color_option( $value, $option ) {
$value = sanitize_hex_color( $value );
// If invalid, try the current value.
if ( ! $value && ! empty( $option['id'] ) ) {
$value = sanitize_hex_color( get_option( $option['id'] ) );
}
// If still invalid, try the default.
if ( ! $value && ! empty( $option['default'] ) ) {
$value = sanitize_hex_color( $option['default'] );
}
return (string) $value;
}
}