I am working with theme app extension. I have an app block and an app embed block, and I want to give users the ability to limit the visibility of these blocks to specific product pages and collections if they want.
Looking through the docs, I notice that thereis an enabled_on option and an available_if option using app metafields, but I dont understand the logic with those on how to limit the blocks to specific product or collection pages.
I can see how they could be limited based on billing plan or subscription, but how or where to add the logic to check if the product page is a specific one that shouldnt show the app blocks? Thank you.
The enabled_on and available_if attributes in the schema of your app blocks can indeed be used to control the visibility of these blocks. However, limiting visibility to specific product or collection pages would require a different approach.
The enabled_on attribute only controls the templates and section groups where the app block can be used, but it does not provide granular control over individual pages. The available_if attribute, on the other hand, works with app-data metafields to control the visibility of your blocks. However, it's important to note that these metafields are tied to the entire app, not specific pages or collections.
To control visibility on a per-page basis, you could possibly leverage Liquid and specifically conditional tags. You could build a condition that checks the page.title, page.id, or product.handle Liquid objects, and renders your app block when the conditions are met.