REST API or Wp graph mutation for “currency converter”
-
Could you please provide the currency converter functionality as a REST API or WP graph mutation?
-
Hello @sandeepjainlive,
Currently it is not possible to get the currency converter functionality as a REST API, it should be handle as a feature request. Maybe if you provide us more details of what you are trying to achieve, it will help us to better understand the situation.
Now, regarding the GraphQL side, it may be slightly off the focus for our add-on plugin and may cover less scenarios.
I hope it helps.
AndrésThanks
like we are using this plugin with theme and inside that showing currency converter option with the help of “wcml_currency_switcher” action . If anyone change currency than across all site data come from changed currency so i want rest api for it
You could try creating a plugin or using a similar code like the following:
<?php
/**
Plugin Name: REST WCML Multicurrency
Requires Plugins: woocommerce-multilingual
*/use WCML\MultiCurrency\Settings;
add_action('rest_api_init', function () {
register_rest_route('wcml/v1', '/mc/', array(
'methods' => 'GET',
'callback' => 'rest_wcml_get_mc_data',
'permission_callback' => '__return_true',
));
});function rest_wcml_get_mc_data() {
$data = Settings::getCurrenciesOptions();
return new WP_REST_Response($data, 200);
}Then, you will have all the currency data in https://localhost/wp-json/wcml/v1/mc.
Above solution is not proper . For understand “Currency converter” i recorded my screen
https://www.awesomescreenshot.com/video/29831033?key=3b8af57759e4863dfcfc803558a9a586
In Api it should take some input as variable and provide output as language changed
The code above it’s just an example but you can modify it accordingly to what your website needs which seems pretty specific.
You can check our documentation page and look for hooks that may help you with that implementation:
https://wpml.org/documentation/related-projects/woocommerce-multilingual/wcml-hooks-reference/we can ask input currency as parameter and than we can use
apply_filters( ‘wcml_formatted_price’, $product->get_price(), $currency ) so that price will atomically convert into that currency
As I’ve already mentioned, the code example is just an example and it needs some dev work in order to achieve what you need.
You can try the previous code with a modification:
<?php
/**
Plugin Name: REST WCML Multicurrency
Requires Plugins: woocommerce-multilingual
*/
use WCML\MultiCurrency\Settings;
add_action('rest_api_init', function () {
register_rest_route('wcml/v1', '/mc/', array(
'methods' => 'GET',
'callback' => 'rest_wcml_get_mc_data',
'permission_callback' => '__return_true',
));
});
function rest_wcml_get_mc_data() {
$data = Settings::getCurrenciesOptions();
return new WP_REST_Response($data, 200);
}
add_action( 'rest_api_init', function () {
register_rest_route( 'wcml/v1', '/price/(?P<product_id>\d+)/(?P<currency>\S+)', [
'methods' => 'GET',
'callback' => 'rest_wcml_get_price',
'permission_callback' => '__return_true',
] );
} );
function rest_wcml_get_price( $data ) {
$product = wc_get_product( $data['product_id'] );
if ( ! $product ) {
return new WP_Error( 'no_product', 'Product not found', [ 'status' => 404 ] );
}
$response = apply_filters( 'wcml_formatted_price', $product->get_price(), $data['currency'] );
return new WP_REST_Response( $response, 200 );
}Now, if you visit I visit https://localhost/wp-json/wcml/v1/price/104/USD, you should get the converted & formatted price.
Please, keep in mind that it is out of the scope of this forum. I recommend you to contact your development team and adapt the code above according to your project needs.
https://developer.www.ads-software.com/reference/functions/register_rest_route/Regards
- This reply was modified 4 months ago by Andrés Cifuentes.
Also, keep in mind that you can access to the formatted price using a similar URL:
https://local/wp-json/wc/v3/products/104?currency=EUR
https://local/wp-json/wc/v3/products/104?currency=USD
- You must be logged in to reply to this topic.