رفتن به محتوا

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

افزودن کد ملی به فرم تسویه ووکامرس+با کد آماده
فهرست مطالب این مقاله آموزشی

افزودن کد ملی به فرم تسویه ووکامرس در وب خانی

افزودن کد ملی به فرم تسویه ووکامرس و چند پیشنهاد برای تغییر متن و ایجاد محتوای منحصر به فرد:

1. تمرکز بر مزایای افزودن فیلد کد ملی:

افزایش امنیت: با احراز هویت کاربران از طریق کد ملی، امنیت تراکنش‌ها افزایش می‌یابد و احتمال کلاهبرداری کاهش می‌یابد.

بهبود تجربه کاربری: با ذخیره اطلاعات کد ملی، می‌توان خدمات شخصی‌سازی شده‌تری به مشتریان ارائه داد و فرآیند خرید را تسهیل کرد.

رعایت قوانین: در برخی صنایع، جمع‌آوری کد ملی برای انجام تراکنش‌ها الزامی است و این کد می‌تواند در صورت نیاز به مراجع قانونی ارائه شود.

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

پیشنهادی:افزونه رنک مث پرو

2. ارائه توضیحات فنی دقیق‌تر:

کد ارائه شده در این مقاله، با استفاده از تابع woocommerce_form_field یک فیلد جدید با عنوان “کد ملی” به فرم تسویه حساب ووکامرس اضافه می‌کند. این فیلد به عنوان یک متادیتای سفارشی با کلید national_code در دیتابیس ذخیره می‌شود و در صفحه جزئیات سفارش در کنار سایر اطلاعات نمایش داده می‌شود. برای نمایش این فیلد در سایر بخش‌ها، مانند ایمیل‌های ارسالی به مشتری یا فاکتورهای صادر شده، می‌توانید از توابع قالب ووکامرس استفاده کنید.

کد ملی به فرم تسویه

 

اضافه کردن کد ها زیر در فانکشن قالب خود

شما از مسیر Functions.php میتوانید کد های زیر را به قالب خود اضافه کنید، قیل از اضافه کردن کد ها به قالب خود حتما از سایت خود بکاپ بگیرید.

 

				
					//The function of checking the accuracy of the national code


function  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;
}
 
// Adding country code field to WooCommerce payment page



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) && ! check_national_code($code)) {
        wc_add_notice( __( 'کد ملی وارد شده معتبر نیست.' ), 'error' );
    }
}
add_action('woocommerce_checkout_process', 'validate_custom_national_code_field');
 
// Saved national code in the order


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');
 
//Display the national code in the orders section of the admin


function  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', 'checkout_field_display_admin_order_meta', 10, 1 );
				
			
گفت‌وگوی کاربران

نظرات و پرسش‌های شما

شماره تلفن فقط برای پیگیری پشتیبانی استفاده می‌شود و در سایت نمایش داده نمی‌شود.

2 دیدگاه
  1. ناهید رفیعینظر کاربر

    ممنون از آموزش خوبتون کارم به بهترین شکل ممکن را انداخت

    1. وب خانیپاسخ مدیر

      خوشحالیم ک آموزش برای شما مفید بوده

ثبت دیدگاه شما

+98
یک قدم تا ثبت دیدگاهبرای ثبت نظر، ابتدا شماره موبایل خود را تأیید کنید.