| Server IP : 62.72.47.131 / Your IP : 216.73.217.34 Web Server : Apache/2.4.66 (Debian) System : Linux 975cdb959a49 5.14.0-611.55.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 15:19:29 EDT 2026 x86_64 User : ( 501) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/html/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 ] );
}
}