> For the complete documentation index, see [llms.txt](https://developers.weglot.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.weglot.com/wordpress/use-cases/advanced-woo-search-x-weglot.md).

# Advanced Woo Search X Weglot

To make Advanced Woo Search return results in translated languages, reverse-translate the search terms into your original language before the search runs. The right hook (see the [Advanced Woo Search hooks reference](https://advanced-woo-search.com/guide/hooks-reference/)) is `aws_search_terms`.

```php
use WeglotWP\Helpers\Helper_API;

add_filter( 'aws_search_terms', 'my_aws_search_terms' );
function my_aws_search_terms( $terms ) {
    $original_language = weglot_get_original_language();
    $current_language  = weglot_get_current_language();
    if ( $original_language === $current_language || ! $terms ) {
        return $terms;
    }

    $option_services = weglot_get_service( 'Option_Service_Weglot' );
    $api_key_private = $option_services->get_api_key_private();

    foreach ( $terms as $key => $term ) {
        $request_body = wp_json_encode( array(
            'l_from'      => $current_language,
            'l_to'        => $original_language,
            'request_url' => home_url( '/' ),
            'words'       => array(
                array( 'w' => $term, 't' => 1 ),
            ),
        ) );

        $url      = sprintf( '%s/translate?api_key=%s', Helper_API::get_api_url(), $api_key_private );
        $response = wp_remote_post( $url, array(
            'body'        => $request_body,
            'headers'     => array( 'Content-Type' => 'application/json' ),
            'method'      => 'POST',
            'data_format' => 'body',
        ) );

        if ( is_wp_error( $response ) ) {
            continue; // Keep the original term if the request fails.
        }

        $response_data = json_decode( wp_remote_retrieve_body( $response ), true );
        if ( isset( $response_data['to_words'][0] ) ) {
            $terms[ $key ] = $response_data['to_words'][0];
        }
    }

    return $terms;
}
```
