Pereiti prie turinio

Suma žodžiu WordPress aplinkoje?


Rekomenduojami pranešimai

Sveiki, ieškau sprendimo kaip taisyklingai parašyti sumą žodžiu Woocommerce sąskaitose.

Turiu tokį kodą:

public function amount_in_words($number, $self = false)
   {
       $hyphens = array('0' => '-', '1' => ' ', '2' => '');
       $hyphen = _x('-', 'separator for numbers 21 through 99 (amount in words)', 'woo_pdf');

       $conjunction = ' ' . __('and', 'woo_pdf') . ' ';

       $dictionary  = array(
           0 => __('zero', 'woo_pdf'),
           1 => __('one', 'woo_pdf'),
           2 => __('two', 'woo_pdf'),
           3 => __('three', 'woo_pdf'),
           4 => __('four', 'woo_pdf'),
           5 => __('five', 'woo_pdf'),
           6 => __('six', 'woo_pdf'),
           7 => __('seven', 'woo_pdf'),
           8 => __('eight', 'woo_pdf'),
           9 => __('nine', 'woo_pdf'),
           10 => __('ten', 'woo_pdf'),
           11 => __('eleven', 'woo_pdf'),
           12 => __('twelve', 'woo_pdf'),
           13 => __('thirteen', 'woo_pdf'),
           14 => __('fourteen', 'woo_pdf'),
           15 => __('fifteen', 'woo_pdf'),
           16 => __('sixteen', 'woo_pdf'),
           17 => __('seventeen', 'woo_pdf'),
           18 => __('eighteen', 'woo_pdf'),
           19 => __('nineteen', 'woo_pdf'),
           20 => __('twenty', 'woo_pdf'),
           30 => __('thirty', 'woo_pdf'),
           40 => __('fourty', 'woo_pdf'),
           50 => __('fifty', 'woo_pdf'),
           60 => __('sixty', 'woo_pdf'),
           70 => __('seventy', 'woo_pdf'),
           80 => __('eighty', 'woo_pdf'),
           90 => __('ninety', 'woo_pdf'),
           100 => __('hundred', 'woo_pdf'),
           1000 => __('thousand', 'woo_pdf'),
           1000000 => __('million', 'woo_pdf'),
           1000000000 => __('billion', 'woo_pdf'),
           1000000000000 => __('trillion', 'woo_pdf'),
           1000000000000000 => __('quadrillion', 'woo_pdf'),
           1000000000000000000 => __('quintillion', 'woo_pdf')
       );

       if (!is_numeric($number)) {
           return $self ? $dictionary[0] : false;
       }
       if (($number >= 0 && (int) $number < 0) || (int) $number < 0 || ($self && empty($number))) {
           return $self ? $dictionary[0] : false;
       }

       // Make sure we have at least two digits for cents
       if (!$self) {
           $number = number_format((float)$number, absint(get_option('woocommerce_price_num_decimals')), '.', '');
       }

       $string = $fraction = null;

       // Accept both decimal separators
       if (strpos($number, '.') !== false) {
           list($number, $fraction) = explode('.', $number);
       }
       else if (strpos($number, ',') !== false) {
           list($number, $fraction) = explode(',', $number);
       }

       switch (true) {
           case $number < 21:
               $string = $dictionary[$number];
               break;
           case $number < 100:
               $tens   = ((int) ($number / 10)) * 10;
               $units  = $number % 10;
               $string = $dictionary[$tens];
               if ($units) {
                   $string .= $hyphen . $dictionary[$units];
               }
               break;
           case $number < 1000:
               $hundreds  = $number / 100;
               $remainder = $number % 100;
               $string = $dictionary[$hundreds] . ' ' . $dictionary[100];
               if ($remainder) {
                   $string .= ' ' . $this->amount_in_words($remainder, true);
               }
               break;
           default:
               $baseUnit = pow(1000, floor(log($number, 1000)));
               $numBaseUnits = (int) ($number / $baseUnit);
               $remainder = $number % $baseUnit;
               $string = $this->amount_in_words($numBaseUnits, true) . ' ' . $dictionary[$baseUnit];
               if ($remainder) {
                   //$string .= $remainder < 100 ? $conjunction : $separator;
                   $string .= ' ' . $this->amount_in_words($remainder, true);
               }
               break;
       }

 

Tiesiogiai išvertus įskiepį suma žodžiu rašoma netaisyklingai, t.y. jei suma 2456Lt ir 00ct tai žodžiu rašoma "du tūkstantis keturi šimtas penkiasdešimt šeši LT ir 00ct", gal kas galite patarti kaip taisyti ar pildyti kodą, o gal tai visai neįmanoma?

 

post-99723-0-38111300-1417774013_thumb.jpg

 

Iš anksto dėkoju.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...