HEX
Server: LiteSpeed
System: Linux s383.bitcommand.com 5.14.0-687.24.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jul 9 18:14:06 EDT 2026 x86_64
User: pclast (1605)
PHP: 8.1.34
Disabled: exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,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
Upload Files
File: /home/pclast/www/wp-content/plugins/woocommerce/src/Api/InputTypes/TracksProvidedFields.php
<?php

declare(strict_types=1);

namespace Automattic\WooCommerce\Api\InputTypes;

/**
 * Trait for input types to track which fields were explicitly provided in the GraphQL request.
 *
 * This allows mutations to distinguish between a field being missing (don't change it)
 * and explicitly set to null (clear it).
 */
trait TracksProvidedFields {
	/**
	 * Fields that were explicitly provided in the input.
	 *
	 * Using an underscore prefix to keep it invisible to the ApiBuilder
	 * (which only scans public properties for GraphQL fields).
	 *
	 * @var array<string, true>
	 */
	protected array $provided_fields = array(); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.PropertyNotSnakeCase -- internal tracking array

	/**
	 * Mark a field as explicitly provided in the input.
	 *
	 * @param string $field The field name.
	 */
	public function mark_provided( string $field ): void {
		$this->provided_fields[ $field ] = true;
	}

	/**
	 * Check whether a field was explicitly provided in the input.
	 *
	 * @param string $field The field name.
	 * @return bool
	 */
	public function was_provided( string $field ): bool {
		return isset( $this->provided_fields[ $field ] );
	}
}