classes/PodsAPI.php
public static function handle_changed_fields( $pod, $id, $mode = 'set' ) {

		static $changed_pods_cache = array();
		static $old_fields_cache = array();
		static $changed_fields_cache = array();

		$cache_key = $pod . '|' . $id;

		$export_params = array(
			'depth' => 1,
		);

		if ( in_array( $mode, array( 'set', 'reset' ), true ) ) {
			if ( isset( $changed_fields_cache[ $cache_key ] ) ) {
				unset( $changed_fields_cache[ $cache_key ] );
			}

			if ( empty( $old_fields_cache[ $cache_key ] ) || 'reset' === $mode ) {
				$old_fields_cache[ $cache_key ] = array();

				if ( ! empty( $id ) ) {
					if ( ! isset( $changed_pods_cache[ $pod ] ) ) {
						$changed_pods_cache[ $pod ] = pods( $pod );
					}

					if ( $changed_pods_cache[ $pod ] && $changed_pods_cache[ $pod ]->valid() ) {
						$changed_pods_cache[ $pod ]->fetch( $id );

						$old_fields_cache[ $cache_key ] = $changed_pods_cache[ $pod ]->export( $export_params );
					}
				}
			}
		}

		$changed_fields = array();

		if ( isset( $changed_fields_cache[ $cache_key ] ) ) {
			$changed_fields = $changed_fields_cache[ $cache_key ];
		} elseif ( isset( $old_fields_cache[ $cache_key ] ) ) {
			$old_fields = $old_fields_cache[ $cache_key ];

			if ( 'get' === $mode ) {
				$changed_fields_cache[ $cache_key ] = array();

				if ( ! empty( $changed_pods_cache[ $pod ] ) ) {
					if ( $id != $changed_pods_cache[ $pod ]->id() ) {
						$changed_pods_cache[ $pod ]->fetch( $id );
					}

					$new_fields = $changed_pods_cache[ $pod ]->export( $export_params );

					foreach ( $new_fields as $field => $value ) {
						if ( ! isset( $old_fields[ $field ] ) || $value != $old_fields[ $field ] ) {
							$changed_fields[ $field ] = $value;
						}
					}

					$changed_fields_cache[ $cache_key ] = $changed_fields;
				}
			}
		}

		return $changed_fields;

	}
public static function handle_changed_fields( $pod, $id, $mode = 'set' ) {

		static $changed_pods_cache = array();
		static $old_fields_cache = array();
		static $changed_fields_cache = array();

		$cache_key = $pod . '|' . $id;

		$export_params = array(
			'depth' => 1,
		);

		if ( in_array( $mode, array( 'set', 'reset' ), true ) ) {
			if ( isset( $changed_fields_cache[ $cache_key ] ) ) {
				unset( $changed_fields_cache[ $cache_key ] );
			}

			if ( empty( $old_fields_cache[ $cache_key ] ) || 'reset' === $mode ) {
				$old_fields_cache[ $cache_key ] = array();

				if ( ! empty( $id ) ) {
					if ( ! isset( $changed_pods_cache[ $pod ] ) ) {
						$changed_pods_cache[ $pod ] = pods( $pod );
					}

					if ( $changed_pods_cache[ $pod ] && $changed_pods_cache[ $pod ]->valid() ) {
						$changed_pods_cache[ $pod ]->fetch( $id );

						$old_fields_cache[ $cache_key ] = $changed_pods_cache[ $pod ]->export( $export_params );
					}
				}
			}
		}

		$changed_fields = array();

		if ( isset( $changed_fields_cache[ $cache_key ] ) ) {
			$changed_fields = $changed_fields_cache[ $cache_key ];
		} elseif ( isset( $old_fields_cache[ $cache_key ] ) ) {
			$old_fields = $old_fields_cache[ $cache_key ];

			if ( 'get' === $mode ) {
				$changed_fields_cache[ $cache_key ] = array();

				if ( ! empty( $changed_pods_cache[ $pod ] ) ) {
					if ( $id != $changed_pods_cache[ $pod ]->id() ) {
						$changed_pods_cache[ $pod ]->fetch( $id );
					}

					$new_fields = $changed_pods_cache[ $pod ]->export( $export_params );

					foreach ( $new_fields as $field => $value ) {
						if ( ! isset( $old_fields[ $field ] ) || $value != $old_fields[ $field ] ) {
							$changed_fields[ $field ] = $value;
						}
					}

					$changed_fields_cache[ $cache_key ] = $changed_fields;
				}
			}
		}

		return $changed_fields;

	}
public static function handle_changed_fields ( $ pod , $ id , $ mode = 'set' ) { static $ changed_pods_cache = array ( ) ; static $ old_fields_cache = array ( ) ; static $ changed_fields_cache = array ( ) ; $ cache_key = $ pod . '|' . $ id ; $ export_params = array ( 'depth' => 1 , ) ; if ( in_array ( $ mode , array ( 'set' , 'reset' ) , true ) ) { if ( isset ( $ changed_fields_cache [ $ cache_key ] ) ) { unset ( $ changed_fields_cache [ $ cache_key ] ) ; } if ( empty ( $ old_fields_cache [ $ cache_key ] ) || 'reset' === $ mode ) { $ old_fields_cache [ $ cache_key ] = array ( ) ; if ( ! empty ( $ id ) ) { if ( ! isset ( $ changed_pods_cache [ $ pod ] ) ) { $ changed_pods_cache [ $ pod ] = pods ( $ pod ) ; } if ( $ changed_pods_cache [ $ pod ] && $ changed_pods_cache [ $ pod ] -> valid ( ) ) { $ changed_pods_cache [ $ pod ] -> fetch ( $ id ) ; $ old_fields_cache [ $ cache_key ] = $ changed_pods_cache [ $ pod ] -> export ( $ export_params ) ; } } } } $ changed_fields = array ( ) ; if ( isset ( $ changed_fields_cache [ $ cache_key ] ) ) { $ changed_fields = $ changed_fields_cache [ $ cache_key ] ; } elseif ( isset ( $ old_fields_cache [ $ cache_key ] ) ) { $ old_fields = $ old_fields_cache [ $ cache_key ] ; if ( 'get' === $ mode ) { $ changed_fields_cache [ $ cache_key ] = array ( ) ; if ( ! empty ( $ changed_pods_cache [ $ pod ] ) ) { if ( $ id != $ changed_pods_cache [ $ pod ] -> id ( ) ) { $ changed_pods_cache [ $ pod ] -> fetch ( $ id ) ; } $ new_fields = $ changed_pods_cache [ $ pod ] -> export ( $ export_params ) ; foreach ( $ new_fields as $ field => $ value ) { if ( ! isset ( $ old_fields [ $ field ] ) || $ value != $ old_fields [ $ field ] ) { $ changed_fields [ $ field ] = $ value ; } } $ changed_fields_cache [ $ cache_key ] = $ changed_fields ; } } } return $ changed_fields ; }
Handle tracking changed fields or get them.

@since 2.7.0

@param string $pod
@param int    $id
@param string $mode

@return array List of changed fields (if $mode = 'get')
Handle tracking changed fields or get them .