> For the complete documentation index, see [llms.txt](https://ei-docs.keywordrush.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ei-docs.keywordrush.com/for-developers/hooks.md).

# Useful hooks

### How to Enable This Filter

To enable these filters, **paste the code into the `functions.php` file of your active theme** (preferably a **child theme**) by following these steps:

* Go to **Appearance → Theme File Editor** in your WordPress dashboard,\
  or access the file via **FTP / file manager**.
* Open the `functions.php` file.
* Paste the code at the bottom of the file and save.

*Using a child theme is recommended to avoid losing changes during theme updates.*

### Disabling synchronization for selected products

To disable synchronization for selected products, add the following to the functions.php file of your theme:

```php
add_filter('ei_disable_sync_product_ids', 'my_ei_disable_sync_product_ids');
function my_ei_disable_sync_product_ids() {
    return array(111, 222, 333, 444);
}
```

Replace 111, 222, 333, 444 with the actual product IDs.

### Enabling synchronization only for selected products

```php
/**
 * Only sync products 101, 202 and 303.
 *
 * @param int[] $ids  Current list of IDs to sync (empty by default).
 * @return int[]      Filtered list of IDs to sync.
 */
add_filter( 'ei_enable_sync_product_ids', function( $ids ) {
    // Override any existing list—only these three will be synced.
    return array( 101, 202, 303 );
} );

```

```php
/**
 * Enabling synchronization only for products in a specific category.
 *
 * @param int[] $ids  Current list of product IDs to sync (empty by default).
 * @return int[]      Product IDs belonging to the 'featured-products' category.
 */
add_filter( 'ei_enable_sync_product_ids', function( $ids ) {
    // You can change 'featured-products' to any category slug
    $category_slug = 'featured-products';

    // This runs on every sync, so for large catalogs, consider caching the IDs
    $products_in_category = get_posts([
        'post_type'      => 'product',
        'posts_per_page' => -1,
        'fields'         => 'ids',
        'tax_query'      => [
            [
                'taxonomy' => 'product_cat',
                'field'    => 'slug',
                'terms'    => $category_slug,
            ],
        ],
    ]);

    return $products_in_category;
} );

```

### **Allowing HTML and images in product descriptions**

To disable description sanitization and include all images and HTML formatting from the source site, add the following to the functions.php file of your theme:

```php
add_filter('cegg_description_sanitization', '__return_false');
```

### Import domain as brand taxonomy

For the Rehub theme only, to import the domain as the "brand" taxonomy, add the following to your functions.php file:

```php
add_filter('ie_import_brand', '__return_false');
add_filter('ie_import_store', '__return_true');
```

### Custom parameters for scraping services

```php
// Add country_code parameter to ScraperAPI requests
add_filter('ei_parse_url_scraperapi', 'my_ei_parse_url_scraperapi', 10, 1);
function my_ei_parse_url_scraperapi($url) {
    return add_query_arg('country_code', 'de', $url);
}

// Add country parameter to ScrapingDog requests
add_filter('ei_parse_url_scrapingdog', 'my_ei_parse_url_scrapingdog_country', 10, 1);
function my_ei_parse_url_scrapingdog_country($url) {
    return add_query_arg('country', 'de', $url);
}

// Add dynamic parameter to ScrapingDog requests
add_filter('ei_parse_url_scrapingdog', 'my_ei_parse_url_scrapingdog_dynamic', 10, 1);
function my_ei_parse_url_scrapingdog_dynamic($url) {
    return add_query_arg('dynamic', 'true', $url);
}

// Add premium parameter to ScrapingDog requests
add_filter('ei_parse_url_scrapingdog', 'my_ei_parse_url_scrapingdog_premium', 10, 1);
function my_ei_parse_url_scrapingdog_premium($url) {
    return add_query_arg('premium', 'yes', $url);
}
```
