افزودن کد ملی به فرم تسویه ووکامرس در وب خانی
افزودن کد ملی به فرم تسویه ووکامرس و چند پیشنهاد برای تغییر متن و ایجاد محتوای منحصر به فرد:
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 '
';
}
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 ''.__('کد ملی').': ' . get_post_meta( $order->id, 'billing_national_code', true ) . '
';
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'checkout_field_display_admin_order_meta', 10, 1 );



نظرات و پرسشهای شما
شماره تلفن فقط برای پیگیری پشتیبانی استفاده میشود و در سایت نمایش داده نمیشود.
ممنون از آموزش خوبتون کارم به بهترین شکل ممکن را انداخت
خوشحالیم ک آموزش برای شما مفید بوده