سجاد موسوی

اضافه کردن کد ملی به پرستاکارت

سلام وقت بخیر، برای درج کد ملی و اعتبارسنجی اون در یکی از گروه‌های تلگرامی صحبت شده بود. شما فرموده بودین که راهنمایی براش منتشر میکنین. من نتونستم پیداش کنم.
میخوایم کدملی رو از طریق الگوریتم اعتبار سنجی کنیم و از ماژول ورود یار و پرستاکارت استفاده میکنیم. چطور میشه موضوع رو حل کرد؟

یکی از کاربرها هم کدی برای این مسئله ارائه کرده بود که البته اوراید کردنش رو توضیح نداده بود:


class Validate extends ValidateCore {

/**

* @param string $dni to validate

* @return bool

*/

public static function isDniLite($dni)

{

if(!preg_match('/^[0-9]{10}$/',$dni))

return false;

for($i=0;$i<10;$i++)

if(preg_match('/^'.$i.'{10}$/',$dni))

return false;

for($i=0,$sum=0;$i<9;$i++)

$sum+=((10-$i)*intval(substr($dni, $i,1)));

$ret=$sum%11;

$parity=intval(substr($dni, 9,1));

if(($ret<2 && $ret==$parity) || ($ret>=2 && $ret==11-$parity))

return true;

return false;

}

}

سیدهاشم افخمی

سلام

در مسیر زیر یک فایل به اسم  Validate.php ایجاد کنید:

\override\classes\Validate.php

بعد کد زیر رو در این فایل کپی کنید :

<?php
class Validate extends ValidateCore {
    public static function isDniLite($dni)
    {

        if(!preg_match('/^[0-9]{10}$/',$dni))
            return false;
        for($i=0;$i<10;$i++)
            if(preg_match('/^'.$i.'{10}$/',$dni))
                return false;
        for($i=0,$sum=0;$i<9;$i++)
            $sum+=((10-$i)*intval(substr($dni, $i,1)));
        $ret=$sum%11;
        $parity=intval(substr($dni, 9,1));
        if(($ret<2 && $ret==$parity) || ($ret>=2 && $ret==11-$parity))
            return true;
        return false;
    }
}

بعد از پاک کردن کش مرورگر و پرستاشاپ اقدام به تست کنید.

دقت کنید که باید در قسمت مدیریت فیلدها پرستاکارت ، برای فیلدکدملی نوع اعتبارسنجی روی isDniLite تنظیم شده باشد.

ایجاد گفتگو جدید

اگر سوالی دارید ، اگر چالشی در فروشگاه خود دارید ، می توانید گفتگو خود را ایجاد نمایید.

ایجاد گفتگو جدید

دوره های آموزشی

Loading...