• sandeepjainlive

    (@sandeepjainlive)


    Could you please provide the currency converter functionality as a REST API or WP graph mutation?

Viewing 8 replies - 1 through 8 (of 8 total)
  • Plugin Support Andrés Cifuentes

    (@andrescifuentesr)

    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és

    Thread Starter sandeepjainlive

    (@sandeepjainlive)

    Thanks

    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

    Plugin Support Andrés Cifuentes

    (@andrescifuentesr)

    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.

    Thread Starter sandeepjainlive

    (@sandeepjainlive)

    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

    Plugin Support Andrés Cifuentes

    (@andrescifuentesr)

    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/

    Thread Starter sandeepjainlive

    (@sandeepjainlive)

    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

    Plugin Support Andrés Cifuentes

    (@andrescifuentesr)

    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

    Plugin Support Andrés Cifuentes

    (@andrescifuentesr)

    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

Viewing 8 replies - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.