• Hei,

    Finnes det en m?te ? tvinge landskoden til ? skrives inn korrekt, mange kunder skruver 47-telefonnummer i et, mangler da + forran, dette skaper problemer i bring n?r vi skal bestile frakt.

    Samtlige av KLARNA sine ordre har landskoden korrekt, de har alltid +47-telefonmummer.

    Vipps der varierer det mellom telefonnummer og 47-telefonnummer.

    fors?ker ? legge inn en link til bilde her:
    https://drive.google.com/file/d/1HoEZJL8JuDZDuAgKwwGqIRANIoeF1Jg-/view?usp=sharing

    H?per dere kan finne ut av dette?

    mvh,
    Christian

    The page I need help with: [log in to see the link]

Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Author Iver Odin Kvello

    (@iverok)

    Jeg antar dette er for hurtigkassen; siden for vanlig WooCommerce-kasse s? brukes telefonnr som kunden selv taster inn. P? hurtigkassen (og Vipps Checkout) brukes telefonnr som vi f?r fra Vipps.

    Det finnes et filter,

    do_action('woo_vipps_set_order_shipping_details', $order, $shipping, $user);

    – som kan la deg endre dataene som blir lagt til ordre/kunde i dette steget, inklusive ? endre telefonnr. Jeg tror Vipps etterhvert kommer til ? ha landkode p? plass p? alle brukere (som et steg i internasjonaliseringen), men det g?r da an ? lage en “kanonisk” versjon av telefonnr og lagre dette her.

    Siden dere er hostet hos oss kan vi legge dette til for dere om ?nskelig. Forst?r jeg det da slik at dere ?nsker +<landkode><8 sifre> ?

    (Siden landkoden kan v?re 2 eller 3 sifre, og selve telefonnr kortere enn 8 er dette ikke en helt komplett l?sning, men den b?r virke for de norske telfonnr som er aktive n?. Men det er pga dette vi ikke pr?ver ? transformere numrene til en “kanonisk” form allerede.)

    Plugin Author Iver Odin Kvello

    (@iverok)

    Hvis andre har samme ?nske, og med forbehold om at dette er spesifikt for norske telefonnr og slikt n?, s? vil en l?sning p? dette v?re slik:

    function wph_canonicalize_phone_number ($phonenr, $country) {
        $canonical = $phonenr;
        $canonical = preg_replace("![^0-9]!", "",  $canonical);
        $canonical = preg_replace("!^0+!", "", $canonical);
        if (strlen($canonical) == 8 && $country == 'NO') {
            $canonical= '47' . $canonical;
        }
        if (preg_match("/47\d{8}/", $canonical) && $country == 'NO') {
            $canonical = "+" . $canonical;
        }
        return $canonical;
    }
    
    add_action('woo_vipps_set_order_shipping_details', function ($order, $shipping, $user) {
        $customer = null;
        $custid = $order->get_customer_id();
        if ($custid) {
            $customer = new WC_Customer($custid);
        }
        
        $phonenr = $order->get_billing_phone();
        $country = $order->get_billing_country();
        
        $canonical = wph_canonicalize_phone_number($phonenr, $country);
        
        if ($canonical) {
            $order->set_billing_phone($canonical);
            if (version_compare(WC_VERSION, '5.6.0', '>=')) {
                $order->set_shipping_phone($canonical);
            }
        }
        
        $order->save();
    }, 10, 3);
    
    add_filter('login_with_vipps_woo_phone_number', function ($phonenr, $customer, $userinfo) {
        $country = '';
        $address = @$userinfo['address'];
        if ($address && isset($address['country'])) {
            $country = $address['country'];
        }
        if ($phonenr&& $country) {
            $canonical = wph_canonicalize_phone_number($phonenr, $country);
            if ($canonical) return $canonical;
        }
        return $phonenr;
    }, 10, 3);
Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Telefon nummer mangler + i landskoden’ is closed to new replies.