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

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

فهرست مطالب

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

 

افزودن فیلد کد ملی در صفحه تسویه حساب ووکامرس (صفحه پرداخت در وردپرس)

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

 

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

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

فیلد کد ملی چیست (اضافه کردن فیلد کد ملی به برگه پرداخت)؟

فیلد کد ملی بخشی از فرم‌ها هست که از کاربر می‌خوان تا (شماره ۱۰ رقمی که برای هر فرد در ایران به عنوان شناسه یکتا تعریف شده) اون رو وارد کنه. این شماره می‌تونه برای اعتبارسنجی، جستجو، گزارش‌گیری، تخفیف و دسته‌بندی مشتریان مورد استفاده قرار بگیره. برای ایجاد و چک کردن صحت کد ملی، الگوریتم خاصی وجود داره که بر اساس ترکیب اعداد کار می‌کنه.

برای افزودن فیلد کد ملی به یک برنامه یا وب‌سایت، می‌شه از زبان‌های برنامه‌نویسی مختلف مثل جاوا اسکریپت یا پی‌اچ‌پی استفاده کرد. برای مثال، می‌تونین از کد زیر برای افزودن فیلد کد ملی به صفحه‌ی تسویه حساب ووکامرس استفاده کنین. یا از یه تابع بخصوص برای اعتبارسنجی ساده‌ی کد ملی با جاوا اسکریپت به کمک Regex استفاده کنین.

فیلد کد ملی چیست

تشخیص صحت کد ملی وارد شده (افزودن فیلد به صفحه تسویه حساب فروشگاه در ووکامرس)

ممکن است این سوال برای شما هم پیش بیاد که اگر کسی کد ملی اشتباه وارد کرد، عمدا یا سهوا، آیا این مورد را تشخیص خواهد داد؟ باید بگوییم: بله! کد به نحوی عمل می‌کند که اگر کد ملی وارد شده، اشتباه باشد، کاربر پیام خطا دریافت می‌کند. حال همراه ما باشید تا این امکان را به سایت وردپرسی خود اضافه کنیم.

 

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

برای اضافه کردن فیلد کد ملی به برگه تسویه حساب ووکامرس در وردپرس، می‌توانید این مراحل را دنبال کنید:

وارد پنل مدیریت وردپرس شوید.
به بخش “افزونه‌ها” بروید و بر روی “ویرایشگر” کلیک کنید.
از منوی انتخاب “ووکامرس” را انتخاب کنید.
فایل functions.php را انتخاب کنید.
کد زیر را در انتهای فایل functions.php قرار دهید.

 

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

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

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

// 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;
}
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');

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 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 );

 

کد را ذخیره کرده و صفحه را ببندید.
حالا به صفحه تنظیمات ووکامرس بروید و به بخش “تسویه حساب” رفته و مطمئن شوید که گزینه “فعال کردن تسویه حساب” فعال است.

با انجام این مراحل، یک فیلد جدید با عنوان “کد ملی” به برگه تسویه حساب اضافه خواهد شد.

 


 

سخن آخر

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

امتیاز شما به این مطلب:

5 / 5. تعداد رای: 1

 
اشتراک گذاری مطلب:
مطالب مرتبط:

دیدگاهتان را بنویسید

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