Automattic\WooCommerce\Internal\ProductFeed\Integrations\POSCatalog

POSProductVisibilitySync::set_product_pos_visibilitypublicWC 10.5.0

Set POS visibility for a product and its variations.

This method sets or removes the pos-hidden term on the product, and if it's a variable product, syncs the visibility to all variations.

Метод класса: POSProductVisibilitySync{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

$POSProductVisibilitySync = new POSProductVisibilitySync();
$POSProductVisibilitySync->set_product_pos_visibility( $product_id, $visible_in_pos ): void;
$product_id(int) (обязательный)
The product ID.
$visible_in_pos(true|false) (обязательный)
Whether the product should be visible in POS.

Список изменений

С версии 10.5.0 Введена.

Код POSProductVisibilitySync::set_product_pos_visibility() WC 10.5.2

public function set_product_pos_visibility( int $product_id, bool $visible_in_pos ): void {
	$is_currently_visible = ! has_term( 'pos-hidden', 'pos_product_visibility', $product_id );

	if ( $is_currently_visible === $visible_in_pos ) {
		return; // No change detected.
	}

	if ( $visible_in_pos ) {
		wp_remove_object_terms( $product_id, 'pos-hidden', 'pos_product_visibility' );
	} else {
		wp_set_object_terms( $product_id, 'pos-hidden', 'pos_product_visibility' );
	}

	$product = wc_get_product( $product_id );
	if ( $product && $product->is_type( 'variable' ) ) {
		$this->sync_pos_visibility_to_variations( $product, $visible_in_pos );
	}
}