Inventory_Presser_Taxonomy_Overlapper::term_relationship_updated( int $object_id, int $tt_id, string $taxonomy )

term_relationship_updated


Parameters Parameters

$object_id

(int) (Required) Object ID.

$tt_id

(int) (Required) A term taxonomy ID.

$taxonomy

(string) (Required) Taxonomy slug.


Top ↑

Return Return

(void)


Top ↑

Source Source

File: includes/class-taxonomy-overlapper.php

	function term_relationship_updated( $object_id, $tt_id, $taxonomy ) {
		// Does $object_id belong to a vehicle?
		if ( INVP::POST_TYPE != get_post_type( $object_id ) ) {
			// No
			return;
		}

		// Is the taxonomy one that overlaps a meta field?
		$keys_and_taxonomies = $this->overlapping_meta_keys();
		$taxonomies_and_keys = array_flip( $keys_and_taxonomies );
		if ( ! in_array( $taxonomy, array_values( $keys_and_taxonomies ) ) ) {
			// No
			return;
		}

		// An empty array of terms is passed often
		if ( empty( $tt_id ) ) {
			return;
		}

		$term = get_term_by( 'term_taxonomy_id', $tt_id, $taxonomy );
		if ( ! is_object( $term ) || 'WP_Term' != get_class( $term ) ) {
			return;
		}

		// For most taxonomies, we can just save the term name in the post meta field
		if ( 'availability' != strtolower( $taxonomy ) ) {
			$this->hooks_remove_meta();
			update_post_meta( $object_id, apply_filters( 'invp_prefix_meta_key', $taxonomies_and_keys[ $taxonomy ] ), $term->name );
			$this->hooks_add_meta();

			do_action( 'invp_taxonomy_overlapper_updated_meta', $object_id, $taxonomy, $term );

			return;
		}

		// The availability taxonomy was the one updated
		switch ( strtolower( $term->slug ) ) {
			case 'for-sale':
			case 'sold':
				$this->hooks_remove_meta();
				update_post_meta( $object_id, apply_filters( 'invp_prefix_meta_key', 'availability' ), $term->name );
				$this->hooks_add_meta();
				break;

			case 'wholesale':
				$this->hooks_remove_meta();
				update_post_meta( $object_id, apply_filters( 'invp_prefix_meta_key', 'wholesale' ), true );
				$this->hooks_add_meta();
				break;

			default:
				return; // Makes sure the action hook below only runs after an update
		}

		do_action( 'invp_taxonomy_overlapper_updated_meta', $object_id, $taxonomy, $term );
	}