Weglot
WebsiteGithubSlack
  • Developer Documentation
  • WordPress
    • Getting Started
    • Helpers Functions
    • Hooks
      • Translations Hooks
      • Other Hooks
    • Use cases
      • Lang attribute
      • Translate link
      • Implementing Custom Link Translation
      • Wp-rocket Lazyload
      • Deactivate Weglot on Elementor
      • Weglot translate on Elementor
      • Language Selector Styling
      • Change flag size
      • Exclude a Custom Post Type
      • Exclude the search page
      • Exclude draft or private status post
      • Plugin Woocommerce: Translate all email sent to customers
      • Plugin WooCommerce: Translate Product URLs
      • Use custom language code (URL, lang and hreflang attribute)
      • Theme OceanWP: Use language selector in the main menu
      • Theme Avada: Use language selector in the main menu
      • LinkedIn Share Post: Translate oEmbed WP URL
      • Hide button on excluded page
      • Auto switch only for HomePage
      • Proxify Url
      • Translate pdf for Woocommerce pdf invoice
      • Translate pdf with Gravity pdf
      • Translate Dublin core meta (or other meta)
      • How to not translate specific ajax action
      • How to get translated url programmatically
      • How to set WP locale based on Weglot current language
      • How to translate mail from Photo Reviews for WooCommerce
      • How to translate schema from schema.org generate by Yoast plugin
      • How to translate email sending by plugin WP Mail SMTP
      • How to hide the Weglot admin button for non administrator roles
      • Exemple of snippet to translate search from JetSearch plugin
      • Example of snippet to translate your checkout element (override/added by the Funnel Builder plugin)
      • LScache
      • How to fix live builder issue with Weglot
      • Add translated url to Rankmath sitemap index
      • Advanced Woo Search X Weglot
      • Conditionally Disabling Weglot Translation for Specific URLs
    • Weglot filters
      • weglot_translate_email
      • weglot_cancel_init
      • weglot_translate_email_languages_forced
      • weglot_menu_parent_item_title
      • weglot_active_current_menu_item
      • weglot_ajax_no_translate
      • weglot_active_translation_before_process
      • weglot_active_translation_before_treat_page
      • weglot_debug_file
      • weglot_autoredirect_only_home
      • weglot_autoredirect_skip
      • weglot_remove_google_translate
      • weglot_add_hreflang
      • weglot_get_replace_modify_link
      • get_replace_modify_link_in_xml
      • weglot_get_flag_class
      • weglot_get_name_with_language_entry
      • weglot_get_class_dropdown
      • weglot_button_html
      • weglot_get_dom_checkers
      • weglot_replace_div_id
      • weglot_replace_weglot_menu
      • weglot_render_default_button
      • weglot_render_switcher_editor_button
      • weglot_href_lang
      • weglot_get_options_from_cdn_cache
      • weglot_get_options_from_cdn_cache_duration
      • weglot_get_slugs_from_cache
      • weglot_get_slugs_cache_duration
      • weglot_exclude_blocks
      • weglot_exclude_urls
      • weglot_get_parser_ignored_nodes
      • weglot_navigator_language
      • weglot_url_auto_redirect
      • weglot_replace_url
      • weglot_replace_link
      • weglot_ajax_replace_urls
      • weglot_proxify_urls
      • weglot_add_json_keys
      • weglot_json_treat_page
      • weglot_html_treat_page
      • Copy of weglot_xml_treat_page
      • weglot_render_dom
      • weglot_default_current_language_empty
    • Algolia integration
  • Proxy
    • Headers
  • Javascript
    • Getting Started
    • Options
    • Javascript functions
    • Language link Hooks
    • Translate iframe
    • Advanced concepts
      • Translation engines
  • CMS Specific
    • Shopify
  • API
    • Reference
  • Cookies
Powered by GitBook
On this page
  1. WordPress
  2. Use cases

Advanced Woo Search X Weglot

Advanced Woo Search (aws) is a plugin to make advance search with WooCommerce. You can find the plugin here : https://wordpress.org/plugins/advanced-woo-search/

PreviousAdd translated url to Rankmath sitemap indexNextConditionally Disabling Weglot Translation for Specific URLs

Last updated 8 months ago

The first step is to find the right hook to be able to modifiy the terms search before the request is sending. According this doc : thr right hook is .

And create the function to make the reverse translate

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 ) {
		return $terms;
	}
    $option_services = weglot_get_service( 'Option_Service_Weglot' );
	$api_key_private = $option_services->get_api_key_private();
	if ( $terms ) {
		foreach ($terms as $key => $term) {
			$requestBody = 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);
			$args = array(
				'body'        => $requestBody,
				'headers'     => array(
					'Content-Type' => 'application/json',
				),
				'method'      => 'POST',
				'data_format' => 'body',
			);
			$response = wp_remote_post($url, $args);
			if (is_wp_error($response)) {
				return "WP Error: " . $response->get_error_message();
			}

			// Get the response body.
			$response_body = wp_remote_retrieve_body($response);

			// Parse the JSON response.
			$responseData = json_decode($response_body, true);
			if (!$responseData || !isset($responseData['ids'])) {
				// do nothing
			}else{
                             $term = $responseData['to_words'][0];
			     $term = explode(' ', $term);
                             foreach ($term as $separate_term){
	                         $terms[$key] = $separate_term;
                             }
                       }
		}
	}
	return $terms;
}

https://advanced-woo-search.com/guide/hooks-reference/
aws_search_terms