Tribe__Events__API::is_meta_value_changed( string $field, array $new, array $old )
Determines if a meta value has been changed
Contents
Parameters
- $field
-
(string) (Required) Field to compare against
- $new
-
(array) (Required) New data
- $old
-
(array) (Required) Old post data
Return
(boolean)
Source
File: src/Tribe/API.php
public static function is_meta_value_changed( $field, $new, $old ) {
if ( 0 === strpos( $field, '_' ) ) {
$field = ltrim( $field, '_' );
}
$prefixed_field = "_{$field}";
if ( isset( $new[ $field ] ) && ! isset( $old[ $prefixed_field ] ) && ! empty( $new[ $field ] ) ) {
return true;
}
if ( ! isset( $new[ $field ] ) && isset( $old[ $prefixed_field ] ) ) {
return true;
} elseif ( ! isset( $new[ $field ] ) ) {
// if the new field isn't set and the old field isn't set, there's no change
return false;
}
$data_value = $new[ $field ];
if ( is_array( $data_value ) && ! count( $data_value ) ) {
$data_value = null;
}
if ( ! isset( $old[ $prefixed_field ] ) || $data_value !== $old[ $prefixed_field ] ) {
return true;
}
return false;
}