??????????????
ï»¿??????????????
ï»¿??????????????
ï»¿??????????????
??????????????
ï»¿??????????????
ï»¿??????????????
ï»¿??????????????
??????????????
ï»¿??????????????
ï»¿??????????????
ï»¿??????????????
??????????????
ï»¿??????????????
ï»¿??????????????
ï»¿??????????????
PK     g£ë\LFÕ       OptionSanitizer.phpnu „[µü¤        <?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;
	}
}
PK     g£ë\m–õ  õ    PointOfSaleDefaultSettings.phpnu „[µü¤        <?php
/**
 * Default settings for Point of Sale.
 *
 * @package WooCommerce\Internal\Settings
 */

declare(strict_types=1);

namespace Automattic\WooCommerce\Internal\Settings;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * PointOfSaleDefaultSettings class.
 */
class PointOfSaleDefaultSettings {
	/**
	 * Get default store email.
	 *
	 * @return string
	 */
	public static function get_default_store_email() {
		return get_option( 'admin_email' );
	}

	/**
	 * Get default store name.
	 *
	 * @return string
	 */
	public static function get_default_store_name() {
		return get_bloginfo( 'name' );
	}

	/**
	 * Get default store address.
	 *
	 * @return string
	 */
	public static function get_default_store_address() {
		if ( ! WC() || ! WC()->countries ) {
			return '';
		}

		return wp_specialchars_decode(
			WC()->countries->get_formatted_address(
				array(
					'address_1' => WC()->countries->get_base_address(),
					'address_2' => WC()->countries->get_base_address_2(),
					'city'      => WC()->countries->get_base_city(),
					'state'     => WC()->countries->get_base_state(),
					'postcode'  => WC()->countries->get_base_postcode(),
					'count