| Server IP : 62.60.133.156 / Your IP : 216.73.217.51 Web Server : LiteSpeed System : Linux linux24.centraldnserver.com 4.18.0-553.141.2.lve.el8.x86_64 #1 SMP Wed Jul 8 16:10:02 UTC 2026 x86_64 User : mimradmin ( 1166) PHP Version : 7.4.33 Disable Function : show_source, system, shell_exec, passthru, exec, popen, proc_open MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/cwd/wp-content/plugins/woocommerce/src/Api/InputTypes/ |
Upload File : |
<?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 ] );
}
}