حساب کاربری

یا

حداقل 8 کاراکتر

بررسی کد ملی مشتری در صفحه تسویه حساب ووکامرس

بررسی کد ملی مشتری در صفحه تسویه حساب ووکامرس

تاریخ انتشار : ۲۲ مهر ۱۴۰۲آخرین بروزرسانی : ۱۴۰۲/۰۷/۲۴نویسنده : دسته بندی : آموزش, وردپرس برچسب ها : , , , ,

زمان مطالعه :3 دقیقه

سایز متن12

چاپ مقاله

سلام خدمت همه کاربران عزیز ژاکد ، دوستانی که سایت فرشگاهی دارن یا قصد راه اندازی سایت فروشگاهی دارن و اگه موقع ثبت سفارش نیاز دارید که کاربر کد ملی خودش رو به صورت صحیح وارد کنه ، کافیه تا انتهای این آموزش کاربردی با ما همراه باشید.

تو حالت پیشفرض میشه هر عددی رو تو فیلد کد ملی ووکامرس اضافه کرد ، ولی اگه قصد بررسی کد ملی مشتری رو دارید تا هر عددی توسط مشتری وارد نشه و دوست ندارید افزونه نصب کنید ، کافیه کد زیر رو به انتهای فایل functions.php قالبتون اضافه کنید :

// تابع بررسی صحت کد ملی
function zhacode_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="woocommerce-additional-fields">
            <h3>' . __('کد ملی', 'your-theme-domain') . '</h3>
            <div class="woocommerce-additional-fields__field-wrapper">
                <label for="billing_national_code" class="">' . __('کد ملی', 'your-theme-domain') . ' <span class="required">*</span></label>
                <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'] : '') . '" />
            </div>
        </div>';
}
add_action('woocommerce_after_checkout_billing_form', 'add_custom_national_code_field');
 
// اعتبارسنجی فیلد کد ملی
function validate_custom_national_code_field($fields, $errors) {
    $code = isset($_POST['billing_national_code']) ? sanitize_text_field($_POST['billing_national_code']) : '';
 
    if (!empty($code) && !zhacode_check_national_code($code)) {
        $errors->add('validation', __('کد ملی وارد شده معتبر نیست.', 'your-theme-domain'));
    }
}
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 zhacode_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', 'zhacode_checkout_field_display_admin_order_meta', 10, 1 );

 

اگه سوالی در مورد این آموزش دارید کافیه زیر همین پست کامنت بزارید

لایک0

اشتراک
مقالات پیشنهادی برای شما
کد css شیشه ای کردن بخش های مختلف سایت
کد css شیشه ای کردن بخش های مختلف سایت
حل مشکل کش شدن سبد خرید در افزونه کش
حل مشکل کش شدن سبد خرید در افزونه کش
اموزش نصب زمپ در ویندوز به زبان ساده
آموزش نصب زمپ در ویندوز | نصب Xampp در کامپیوتر
فایل htaccess
فایل htaccess برای وردپرس
پیشنهاد لحظه ای
مشاوره رایگان
اگه دلت یه سایت حرفه ای میخواد یا اگه سایت داری ولی بهینه نیست ، کافیه با ما تماس بگیری...
فاز 11 پردیس ، بلوار صداقت ، مجتمع آرتمیس
99200952099
ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *