Automattic\WooCommerce\Internal\ProductFeed\Integrations\POSCatalog
POSProductVisibilitySync::set_product_pos_visibility
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.
Method of the class: POSProductVisibilitySync{}
No Hooks.
Returns
null. Nothing (null).
Usage
$POSProductVisibilitySync = new POSProductVisibilitySync(); $POSProductVisibilitySync->set_product_pos_visibility( $product_id, $visible_in_pos ): void;
- $product_id(int) (required)
- The product ID.
- $visible_in_pos(true|false) (required)
- Whether the product should be visible in POS.
Changelog
| Since 10.5.0 | Introduced. |
POSProductVisibilitySync::set_product_pos_visibility() POSProductVisibilitySync::set product pos visibility code WC 10.8.1
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 );
}
}