Some websites use different layouts across product pages, which can cause a single selector to fail even though the price is still present on the page.
PriceFetchWP’s Secondary Checks, shown in the plugin as Also check, let you add additional fallback selectors to the same URL Entry.
Instead of relying on one selector, PriceFetchWP can work through multiple selector rows until it finds a usable Sale Price and/or Regular Price.
– How It Works
Each URL Entry starts with a primary selector row.
You can then add up to 3 additional Also check rows, giving you up to:
4 selector rows totalPriceFetchWP checks Sale Price and Regular Price independently.
For example:
- PriceFetchWP checks the primary Sale Price selector.
- If no usable Sale Price is found, it checks the Sale Price selector in the first Also check row.
- It continues through the remaining fallback rows until a usable Sale Price is found.
At the same time, PriceFetchWP performs the same process independently for the Regular Price.
This means one selector row may produce the Sale Price while another selector row produces the Regular Price.
Once PriceFetchWP finds the first usable price for that price type, later selectors for that same price type do not need to be used.
– Why This Is Important
Some external websites use more than one product-page layout.
For example, one group of products may use:
price-bluewhile another group from the same website uses:
price-redIf your URL Entry only contains:
Class: price-blueproducts using price-red would not match that selector.
By adding an Also check selector, the same URL Entry can support both layouts.
This can make price detection much more reliable across websites that use:
- Different product templates
- Different themes or storefront layouts
- Different markup for certain categories
- Different sale-price layouts
- Older and newer page designs at the same time
– Example
Imagine an external website has two product layouts.
Primary selector
Some products use:
Class: product-priceAlso check
Other products use:
Class: current-priceYour URL Entry could contain:
Row 1
Class: product-price
Also check
Class: current-pricePriceFetchWP first checks product-price.
If no usable price is found, it then checks current-price.
If the second selector matches, that value is used.
– Sale and Regular Prices Can Match Different Rows
Sale Price and Regular Price fallback checks are independent.
For example:
Row 1
Sale Price: sale-price
Regular Price: regular-priceand:
Also check
Sale Price: current-sale
Regular Price: compare-pricePriceFetchWP could find:
Sale Price
→ Row 1 / sale-price
Regular Price
→ Also check / compare-priceThat is valid.
PriceFetchWP does not require both prices to come from the same selector row.
– How to Add Secondary Checks
Go to:
PriceFetchWP → URL Price Entries
Find the URL Entry you want to modify.
Click: Also check
A new fallback selector row will appear.
Enter the additional:
- Sale Price Selector, if needed
- Sale Price Selector Type
- Regular Price Selector, if needed
- Regular Price Selector Type
Supported selector types include:
- XPath
- ID
- Class
- Script
You can add up to 3 Also check rows beneath the primary selector row.

– Testing Fallback Selectors
After adding your fallback selectors, click: Test Entry
You do not need to save the URL Entry first.
Test Entry uses the selectors and Advanced Options currently shown on the screen.
Enter an exact external product URL and click: Test now
The result will show which selector row actually produced the price.
For example:
row 2 / CLASS / current-priceThis tells you that the primary selector did not produce the price, but a fallback row did.
We recommend testing several product URLs from the same website, especially products that use different page layouts.
Once you are satisfied with the results, save the URL Entry.
– Using Script Selectors as Fallbacks
An Also check row can also use the Script selector type.
For example:
#viewed_product::PriceThis can be useful if some product pages display the price in normal HTML while other pages contain compatible price data inside a script.
Script selectors read compatible data already present in the fetched HTML.
They do not execute JavaScript.
– Affiliate Entries
Secondary Checks are used for normal selector-based fetching.
When Affiliate mode is enabled for a URL Entry, the selected Affiliate API becomes the price source and normal XPath, ID, Class, Script, and Also check selectors are not used.
See: Affiliate Integration for more information.
– Common Use Cases
- Secondary Checks can be useful for:
- Websites with several product templates
- Different layouts between product categories
- Different Sale Price markup
- Different Regular Price markup
- Old and new page designs existing at the same time
- Websites that gradually change their HTML
- Prices stored differently across certain product pages
- You do not need to add fallback selectors unless the website actually requires them.
- A simpler selector configuration is generally easier to maintain.
⚠️ Common Issues
All selectors fail
If none of the configured selectors return a usable price:
- Run Test Entry
- Confirm that the exact product URL can be fetched
- Check the selector type and selector value
- Use See raw HTML
- Search the returned HTML for the expected price or selector
Possible causes include:
- The selectors are incorrect
- The website changed its HTML
- The expected price is not present in the returned HTML
- The price is stored inside script data
- The price is generated later by JavaScript
- The external source is blocking or modifying the request
If the source itself cannot be fetched correctly, changing fallback selectors may not solve the problem.
See:
Wrong price is returned
If PriceFetchWP finds a price but it is not the one you expected, check the order of your selectors.
PriceFetchWP uses the first usable match it finds for each price type.
For example:
Row 1
Class: pricemay match a valid number earlier than:
Also check
Class: final-product-priceIf the first selector is too broad, PriceFetchWP may never need to reach the later fallback selector.
Use Test Entry to see exactly which row matched.
If needed:
- Make the earlier selector more specific
- Remove an incorrect selector
- Reorder your selector configuration
A fallback works for one price but not the other
This can be normal.
Sale Price and Regular Price are checked independently.
For example, one row may successfully return the Sale Price while another row returns the Regular Price.
Use Test Entry to confirm which selector produced each price.
Next Steps ───
Now that you understand fallback selectors: