"Enter"a basıp içeriğe geçin

Woocommerce Eklentisiz Fatura Bilgilerine TC Kimlik No Ekleme ve Doğrulama

WordPress hazır içerik yönetim sistemi bizlere açık kaynak olmasından dolayı birçok özellik sağlıyor. Sadece WordPress değil kullandığımız eklentilerin kaynak dosyalarına erişerek yeni özellikler dahil edebiliyor veya gerekli düzenlemeleri sağlayabiliyoruz. İhtiyaçlar doğrultusunda gerekli kod blokları ile müdahale sağlayarak istediğimiz sonucu elde ediyoruz.

Woocommerce eklentisi bizlere bir e-ticaret sitesi yaratmamız için büyük bir kolaylık sağlıyor. Fakat E-Ticaret çok geniş bir alan olduğu için herkesin farklı istekleri doğrultusunda Woocommerce eklentisi geliştiricileri tarafından zamanla güncellenerek günümüzün modern taleplerini en stabil şekilde cevaplamaya çalışıyor. Fakat hızlı çözümler için dosyalara müdahalede bulunarak gerekli düzenlemeleri isteklerimiz doğrultusunda gerçekleştirebiliriz.

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. Arzu ederseniz bu alanları çoğaltarak Vergi Numarası, TC Kimlik No 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>';
}

 

10 Yorum

  1. selo
    selo Mayıs 24, 2020

    allah senden çok razı olsun acayip işime yaradı en az 100 ₺ kardayız 😀 teşekkürler

  2. Oğuz
    Oğuz Haziran 28, 2020

    Elinize sağlık faydalı bilgi olmuş. Kargo konusunda da bilgiler olursa seviniriz.

  3. Hakan
    Hakan Ekim 6, 2020

    Aradığım çözümü sonunda buldum. Fakat eklenen kısım alta düşüyor. Bunu üste almak için ne yapmak gerekir.

    Teşekkürler

    • Sercan Sevinçer
      Sercan Sevinçer Ekim 7, 2020

      Merhaba Hakan

      Çözümün işine yaradığına çok sevindim,

      Aşağıdaki kod bloğunu değiştirerek sıralamayı belirtebilirsin bilgilerin girildiği yerde. Ya da sadece custom_override_checkout_fields fonksiyonunun içine ‘priority’ => 1, satırını ekleyerek sıralamasını belirleyebilirsin ben 1 yaptım direk tc kimlik no istiyor

      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,
      ‘priority’ => 1,

      );

  4. Onur
    Onur Ekim 19, 2020

    Hocam Merhaba;

    Arkadaşın dediği gibi eklenti güzel çalışıyor eline sağlık fakat eklenen alan formun en altında gözüküyor. Söylediğin gibi 10,1 yazan kısımdaki değerli değiştirmeyi deniyorum ama herhangi bir yer değişikliği söz konusu değil. Bu konu ile ilgili yardım edebilir misiniz?

    • Sercan Sevinçer
      Sercan Sevinçer Ekim 21, 2020

      Merhaba Onur

      Sürekli siteye giremediğim için yorumunu biraz geç gördüm kusura bakma.
      Aşağıdaki kod bloğunu değiştirerek sıralamayı belirtebilirsin bilgilerin girildiği yerde. Ya da sadece custom_override_checkout_fields fonksiyonunun içine ‘priority’ => 1, satırını ekleyerek sıralamasını belirleyebilirsin ben 1 yaptım direk tc kimlik no istiyor

      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,
      ‘priority’ => 1,

      );

      • Onur
        Onur Ekim 23, 2020

        Hocam Merhaba;

        Radio butonu ile Bireysel / Kurumsal fatura tipi ayarlama ile ilgili paylaştığınız konu var mı?

        ÖRNEĞİN;
        Bireysel fatura tipinde sadece TCK No alanı eklensin Kurumsal fatura tipi seçildiğinde TCK No gizlensin Firma Adı, Vergi Dairesi ve Vergi No alanları gözüksün tarzında bir yazınız var mı?

  5. Murat Sezer
    Murat Sezer Ekim 19, 2020

    Teşekkürler ,
    Sadece T.C. doğrulama kısmını başka bir uygulama ile birleştirdim ve işime yaradı

  6. Ahmet
    Ahmet Ocak 5, 2021

    Aslında hiç yorum yazmam ama bu sefer gerçekten teşekkür etmek istedim. Çalıştı. Beni büyük uğraştan kurtardınız.

    • Sercan Sevinçer
      Sercan Sevinçer Ocak 6, 2021

      Merhaba

      İşinize yaradığına çok sevindim, yorumunuz için teşekkürler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir