sofyansitorus / Woongkir

WooCommerce shipping rates calculator for Indonesia domestic and international shipment: AnterAja, 21 Express, Expedito, IDexpress Service Solution, Indotama Domestik Lestari, Indah Logistic, JET Express, Jalur Nugraha Ekakurir (JNE), J&T Express, JTL Express, Lion Parcel, Ninja Xpress, Pahala Express, Pandu Logistics, PCP, POS Indonesia, Royal Express Indonesia, RPX, SAP Express, Sentral Cargo, SiCepat Express, Solusi Ekspres, Star Cargo, TIKI, Wahana Express.
https://wordpress.org/plugins/woongkir/
25 stars 9 forks source link

Convert ongkos kirim ke mata uang lain dengan kode #26

Closed arnolduspt closed 1 year ago

arnolduspt commented 1 year ago

Hai mas. Saya penggemar berat plugin ini, terlebih karena saya pengguna woofunnel yg entah kenapa hanya woongkir yang support digunakan secara bersamaan. . Jadi begini mas, ongkos kirim yang ditampilkan oleh plugin ini kan IDR ya, bisakah saya membuat kode untuk "get shipping/price id"nya agar bisa saya kalkulasi melalui kode yang nantinya disisipkan pada theme-funcfion. . Yang ingin saya capai yaitu (1) Membuat kode agar price yang tampil otomatos di tambah dengan nominal tertentu, misalnya 10.0000 (2) Membuat kode agar price dapat di convert ke USD tanpa plugin multi currency. . Adakah hook atau apapun yang mengarah pada hasil ongkos kirim yang ditampilkan? Salam, termakasih.

sofyansitorus commented 1 year ago

@arnolduspt Anda bisa menggunakan filter woocommerce_shipping_method_add_rate_args. Berikut contoh kode untuk mengkonversi ongkir ke mata uang sesuai seting WooCommerce:

add_filter( 'woocommerce_shipping_method_add_rate_args',  function( $rate ) {
    if ( isset( $rate['id'] ) && 0 === strpos( $rate['id'], 'woongkir:' ) ) {
        $exchange_rates = array(
            'USD' => 15000,
            'GBP' => 16000,
        );

        $selected_currency = get_woocommerce_currency();

        if ( isset( $exchange_rates[ $selected_currency ] ) ) {
            $rate['cost'] = ( 1 / $exchange_rates[ $selected_currency ] ) * $rate['cost'];
        }
    }

    return $rate;
} );
sofyansitorus commented 1 year ago

Berikut contoh kode untuk mengkonversi ongkir ke mata uang sesuai seting WooCommerce and extra cost 10000:

add_filter( 'woocommerce_shipping_method_add_rate_args',  function( $rate ) {
    if ( isset( $rate['id'] ) && 0 === strpos( $rate['id'], 'woongkir:' ) ) {
        // Extra cost.
        $rate['cost'] += 10000;

        // Convert to foreign currency.
        $exchange_rates = array(
            'USD' => 15000,
            'GBP' => 16000,
        );

        $selected_currency = get_woocommerce_currency();

        if ( isset( $exchange_rates[ $selected_currency ] ) ) {
            $rate['cost'] = ( 1 / $exchange_rates[ $selected_currency ] ) * $rate['cost'];
        }
    }

    return $rate;
} );
arnolduspt commented 1 year ago

Maaf mau nanya lagi mas. Semisal yang kita berikan extra cost itu hanya untuk shipping method tertentu apakah memungkinkan mas? #Terimakasih

BarCAD commented 6 months ago

@arnolduspt Anda bisa menggunakan filter woocommerce_shipping_method_add_rate_args. Berikut contoh kode untuk mengkonversi ongkir ke mata uang sesuai seting WooCommerce:

add_filter( 'woocommerce_shipping_method_add_rate_args',  function( $rate ) {
    if ( isset( $rate['id'] ) && 0 === strpos( $rate['id'], 'woongkir:' ) ) {
        $exchange_rates = array(
            'USD' => 15000,
            'GBP' => 16000,
        );

        $selected_currency = get_woocommerce_currency();

        if ( isset( $exchange_rates[ $selected_currency ] ) ) {
            $rate['cost'] = ( 1 / $exchange_rates[ $selected_currency ] ) * $rate['cost'];
        }
    }

    return $rate;
} );

pasangnya dimana bang.. maklum newbi hehe