Woocommerce eklentisinin fatura bilgileri istenildiği sipariş ekranlarına müdahale ederek ekstra bir alan oluşturabiliriz. Bu yazımızda TC Kimlik Numarası isteyeceğiz. Bu sayede fatura kesmek isteyen firmalar bu bilgiyi kullanarak fatura kesebilirler. Bu alanları çoğaltarak Vergi Numarası gibi alanlar ekleyebilirsiniz.
Bu değişiklikleri yapmadan önce lütfen yedek almayı unutmayınız.
Öncelikle wp-content/ themes/ temaadiniz/ functions.php dosyamıza ulaşıyoruz. Temamızın içerisinde bulunan functions.php dosyasına aşağıda bulunan kod bloğunu ekleyiniz. Bu sayede fatura bilgileri ekranında TC Kimlik No alanı gelecektir.
/** TC Kimlik No Ekleme **/
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
$fields['billing']['shipping_tc'] = array(
'label' => __('TC Kimlik No', 'woocommerce'),
'placeholder' => _x('Fatura İçin Gerekli', 'placeholder', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide'),
'clear' => true
);
return $fields;
}
TC Kimlik No alanı ekledikten sonra müşterinin gireceği TC Kimlik No doğruluğunu kontrol edecek kod alanını eklememiz gerekmektedir. Yukarıdaki kod bloğunun bitiminden sonra altına ekleyeceğiniz diğer kod aşağıda ki gibidir;
/** TC Doğrula **/
function isTcKimlik($tc){
if(strlen($tc) < 11){ return false; }
if($tc[0] == '0'){ return false; }
$plus = ($tc[0] + $tc[2] + $tc[4] + $tc[6] + $tc[8]) * 7;
$minus = $plus - ($tc[1] + $tc[3] + $tc[5] + $tc[7]);
$mod = $minus % 10;
if($mod != $tc[9]){ return false; }
$all = '';
for($i = 0 ; $i < 10 ; $i++){ $all += $tc[$i]; }
if($all % 10 != $tc[10]){ return false; }
return true;
}
/** TC Kimlik Noyu Doğrula **/
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');
function my_custom_checkout_field_process() {
$tcno = $_POST['shipping_tc'];
if(!isTcKimlik($tcno))
wc_add_notice( __( 'Lütfen Geçerli TC Kimlik No Girin.' ), 'error' );
}
Müşteriden TC Kimlik bilgisini aldık ve gerekli onay işlemlerinden geçirdikten sonra artık müşteriden gelen TC Kimlik No bilgisini yönetici sayfasında göstermemiz gerekiyor. Sipariş detaylarında bu bilginin dahil edilip görünebilmesi için lütfen aşağıda ki kod bloğunu functions.php dosyanıza yazmaya devam ederek en alta yerleştiriniz.
/** Admin Sipariş Detayında Fatura Bilgilerinde TC No'yu Görebilmesi İçin**/
add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );
function my_custom_checkout_field_display_admin_order_meta($order){
echo '<p><strong>'.__('TC Kimlik No').':</strong> ' . get_post_meta( $order->get_id(), '_shipping_tc', true ) . '</p>';
}
Çok faydalı bir yazı olmuş, işlemini detaylı bir şekilde anlatmanız gerçekten işimi kolaylaştırdı. Bu tür pratik bilgiler çok değerli, teşekkürler!