تا به حال به این موضوع که بخواهید فیلد کد ملی با قابلیت تشخیص صحت آن برای فرم پرداخت ووکامرس داشته باشید فکر کرده اید ؟
با ما همراه باشید تا طبق آموزش زیر این قابلیت را پیاده سازی کنید.
به طور خلاصه، تشخیص فیلد کد ملی در خرید فروشگاهی آنلاین اهمیت بالایی دارد. این عمل باعث میشود که فروشگاه بهترین خدمات را به مشتریان ارائه دهد، هویت مشتریان را تأیید کند، از سوءاستفادهها و تقلبها جلوگیری کند، مقررات قانونی را رعایت کند و تجربه خرید بهبود یابد.
برای نمایش فیلد کد ملی در سفارش ووکامرس، می توانید از روش زیر استفاده کنید:
- ویرایش فایل functions.php:
ابتدا باید فایل functions.php قالب فعلی خود را ویرایش کنید. این فایل در مسیر wp-content/themes/theme-name/functions.php قرار دارد. به جای “theme-name”، نام قالب شما را قرار دهید. - اضافه کردن کد:
در فایل functions.php، کد زیر را در انتهای فایل قرار دهید:
// تابع بررسی صحت کد ملی function mweb_check_national_code($code) { if( !preg_match('/^[0-9]{10}$/',$code) ) return false; for( $i=0; $i<10; $i++ ) if( preg_match('/^'.$i.'{10}$/',$code) ) return false; for( $i=0,$sum=0;$i<9;$i++ ) $sum += ((10-$i) * intval(substr($code, $i,1))); $ret = $sum%11; $parity = intval(substr($code, 9,1)); if( ($ret<2 && $ret==$parity) || ($ret>=2 && $ret==11-$parity) ) return true; return false; } // اضافه کردن فیلد کد ملی به صفحه پرداخت ووکامرس function add_custom_national_code_field() { echo '<div class="form-row form-row-wide woocommerce-additional-fields__field-wrapper"> <label for="billing_national_code">' . __('کد ملی', 'your-theme-domain') . ' <span class="required">*</span></label> <span class="woocommerce-input-wrapper"><input type="text" class="input-text" name="billing_national_code" id="billing_national_code" value="' . esc_attr(isset($_POST['billing_national_code']) ? $_POST['billing_national_code'] : '') . '" /></span> </div>'; } add_action('woocommerce_after_checkout_billing_form', 'add_custom_national_code_field'); // اعتبارسنجی فیلد کد ملی function validate_custom_national_code_field() { $code = isset($_POST['billing_national_code']) ? sanitize_text_field($_POST['billing_national_code']) : ''; if (!empty($code) && !mweb_check_national_code($code)) { wc_add_notice( __( 'کد ملی وارد شده معتبر نیست.' ), 'error' ); } } add_action('woocommerce_checkout_process', 'validate_custom_national_code_field'); // ذخیره کد ملی در سفارش function save_custom_national_code_field($order_id) { if (!empty($_POST['billing_national_code'])) { update_post_meta($order_id, 'billing_national_code', sanitize_text_field($_POST['billing_national_code'])); } } add_action('woocommerce_checkout_update_order_meta', 'save_custom_national_code_field'); // نمایش کد ملی در قسمت سفارشات ادمین function mweb_checkout_field_display_admin_order_meta($order){ echo '<p><strong>'.__('کد ملی').':</strong> ' . get_post_meta( $order->id, 'billing_national_code', true ) . '</p>'; } add_action( 'woocommerce_admin_order_data_after_billing_address', 'mweb_checkout_field_display_admin_order_meta', 10, 1 );
سلام و وقت بخیر چطور میتونم موقعیت کد ملی در برگه تسویه حساب تغییر بدم؟
درود بر شما
هوک های متفاوتی داره و بسته به مکان نمایش هوکش هم فرق داره
سلام وقت تون بخیر
من ازین کد استفاده کردم و اوکیه
فقط امکانش هست که این فیلد الزامی بشه ؟؟؟
سلام وقت شما هم بخیر
بله خط 31 رو به خط زیر تبدیل کنید
if ( !mweb_check_national_code($code)) {
سلام وقت بخیر از دیجی لند استفاده میکنم کد رو راخل فانکشن میزارم اتفاقی نمیوفته ممکنه به علت کد شدن محتویات داخل فانکشن باشه ؟
چون به صورت کد هش و بهم ریخته بود به صورت دیفالت راه حلی داره؟
سلام و عرض ادب
داخل فایل myfunction.php قرار بدین
سلام وقتتون بخیر
هنگام استفاده از قالب از من کد لایسنس میخاد چیکار باید بکنم
درود بر شما
از طریق تیکت جهت بررسی اقدام نمایید.
سلام
این کد ملی از چه طریقی اعتبار سنجی میشه؟
فقط تعداد ارقام صحت سنجی میشه یا مالکیت کد ملی
با سلام
تشخیص مالکیت نیازمند api و مجوز دارد . این کد صحت ساختاری کد ملی را بررسی می کند(صرفا تعداد ارقام نیست و صحت ان را نیز بررسی میکند )
سلام خدمت شما، برای خرید نوار قند خون نیاز به تایید کد ملی هست، امکانش هست کد شما امکان اینو داره که قبل از حتی سبد خرید و تسویه حساب کد ملی و تاریخ تولد رو بگیره و مهم تر از اون به جایی وصل باشه که راستی آزمایی کنه
با سلام و آروزس ساعاتی خوش
سرویس فوق نیازمند api بررسی صحت کدملی با مشخصات فردی هست که در صورت تهیه میتوان در هر مرحله از پروسه سفارش احراز هویت نمود
با عرض سلام و احترام خدمت تیم ماهدیس وب احتراما در بخش تسویه حساب با پرکردن فیلد های لازم با ارور”ایراد در روند پرداخت. خواهشمند است دوباره تلاش کنید.” مواجه میشوم ممنون میشم چک بفرمایید
سلام وقتتون بخیر و شادی
کد اصلاح شد
عالی و کاربردی ، ممنون از شما