Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save holymong/6747e622b186dbc78459ce1b26c6bf5e to your computer and use it in GitHub Desktop.
Save holymong/6747e622b186dbc78459ce1b26c6bf5e to your computer and use it in GitHub Desktop.
WooCommerce TC Kimlik ve Vergi No Kurumsal Fatura
* Ödeme ekranına geldiğinde 2 tane checkbox olacak. Biri "TC Kimlik No" opsiyonel diğeri "Kurumsal Fautra" opsiyonel.
* Müşteri bu alanlara 10 haneden az bir T.C. yada Vergi No yazarsa hata verecek.
* Kurumsal Fatura Checkbox'ı işaretlenirse Vergi Dairesi ve Vergi No alanı belirecek.
* TC Kimlik No Checkbox'ı işaretlenirse sadece TC Kimlik No alanı belirecek.
* Soyad şirket ünvanı girişinin doğru çalışabilmesi için gerekli değil opsiyonel olarak ayarlandı.
* Kurumsal Fatura seçildiğinde Ad Soyad ve Şirket Ünvanı billing_first_name alanında birleştirip tek bir Input olarak bıraklılmış
billing_last_name ve billing_company gizlenmiştir. TC Kimlik No seçildiğinde yada hiçbir şey seçilmediğinde Ad ve Soyad
iki farklı input olarak duruyor. billing_first_name,billing_last_name
* Kurumsal Fatura seçildiğinde en alt kısımda "Gönderi adresi" checkbox'ı aktif oluyor. TC Kimlik No seçildiğinde yada hiç seçim
yapılmadığında gizleniyor.
* Checkboxlar aynı anda seçilememesi için ayarlama yapıldı birini seçince diğeri uncheck oluyor.
* Eğer iki Checkboxdan biri işaretlenmediyse billing_tc_kimlik_no alanına default olarak 11111111111 yazılacak.
* Checkboxlardan biri seçildiğinde default yazılan 11111111111 kaldırılıyor.
* Checkboxlar işaretlendiğinde doldurulacak alanların isimleri değişiyor. Ör.(Kurumsal Fatura seçiliyken "Ad Soyad" yerine
"Şirket Ünvanı" yazılıyor ve Input alanı 100% width oluyor.)
* BizimHesap.com WooCommerce entegrasyonu Vergi / TC Kimlik No, Vergi Dairesi ve Şirket Adı veya Ad Soyad bilgilerini otomatik
sisteme çekebiliyor. (billing_vergi_dairesi ve billing_tc_kimlik_no olarak define ettiğimiz için)
* Not: Sayfanın en altındaki sipariş notları kısmı kaldırılmıştır. İhtiyaç duyan aktif edebilir. CSS ile düzenlemek gerekiyor.
*Son olarak harslannet hocama teşekkür ederim paylaştığı kodlar için orjinal kodlar için bu kaynaktan da yararlanabilirsiniz;
https://gist.github.com/harslannet/0b6461e3b916d732689bbe4cc3447269
* Ek olarak aşağıdaki CSS kodunu Custom CSS kısmından eklemenizi tavsiye ederim, hatta gerekli diyebilirim.
//GÜNCELLEME
*Şehir isimlerinin TR34 gibi gözükmesi giderildi.
* Telefon nuamrası input alanı düzenlendi. Sadece rakam yazılabiliyor 10 haneden fazla yazılamıyor 10 haneden az yazılır ise
hata mesajı gösteriliyor. Telefon numarası başına 0 olmadan "5551112233" şekilde alınacak. Entegrasyonlarda sorun yaşanmaması için.
*Soyisim yazmmanın zorunlu olmaması bazı müşterilerin soyisimlerini yazmamasına sebebiyet veriyordu ve kargo konusunda sorun yaşanıyordu
Soyisim tekrar zorunlu hale getirildi. Soyisim zorunlu iken Kurumsal fatura seçeneğildiğinde hata vermesi Checkbox işaretlendiğinde
Soyisim kısmına value olarak "." yazılacak şekilde düzeltildi. Henüz daha iyi bir çözüm bulamadım.
En temiz çözüm Soyad alanını da kaldırıp İsim Soyisim bilgisini tek input ile almak.
*Vergi Dairesi veya TC / Vergi NO alanı dolu olduğunda E-Posta şablonunda adres kısmının üstüne eklenecek şekilde düzenlendi.
Artık maillerde de yazılan bu bilgiler iletiliyor.
*WPML kullanan sitelerde input başlıklarının jQuery ile değişimi sorun yaratabiliyor.
*Sipariş notları için CSS kodu eklendi. İsteyenler aşağıdakı CSS kodunu ekleyerek ve unset'i kaldırarak kullanabilir.
Function Silinecek: unset($fields['order']['order_comments']);
CSS Eklenecek: #order_comments_field{display: inline-block;width: 100%;}
*Henüz hesabım sekmesinde vergi dairesi vergi no gibi alanları editleyebilecek bir kod yazılmadı*
*Henüz admin sipariş sekmesinde vergi dairesi vergi no gibi alanları editleyebilecek bir kod yazılmadı*
//CSS Basi
.fullwidth_custom{width: 100% !important;}
#billing_first_name_field{width: 48%;}
#billing_last_name_field{width: 48%;}
#billing_vergi_dairesi_field{width: 48%;float:right;}
#billing_tc_kimlik_no_field{width: 48%;float:left;}
#billing_city_field{width: 48%;float: left;}
#billing_state_field{width: 48%;float: right;margin-top: -92px;}
#billing_phone_field{width: 48%;float: left;}
#billing_email_field{width: 48%;float: right;margin-top: -92px;}
#checkbox_trigger_field{width: 48%;float: right;}
#checkbox_tckno_field{width: 48%;float: left;}
#billing_country{display: none;}
//CSS Sonu
<?php
<?php
function custom_override_checkout_fields( $fields ) {
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_company']);
unset($fields['order']['order_comments']);
$fields['billing']['billing_country']['default'] = 'TR';
$fields['billing']['billing_address_1']['label'] = 'Adres';
$fields['billing']['billing_address_1']['placeholder'] = 'Mahalle, Sokak, Bina No, Daire vb.';
$fields['billing']['billing_address_1']['priority'] = '90';
$fields['billing']['billing_first_name']['placeholder'] = 'Ad';
$fields['billing']['billing_first_name']['label'] = 'Ad';
$fields['billing']['billing_last_name']['placeholder'] = 'Soyad';
$fields['billing']['billing_last_name']['label'] = 'Soyad';
$fields['billing']['billing_city']['label'] = 'İlçe';
$fields['billing']['billing_city']['placeholder'] = 'İlçe';
$fields['billing']['billing_email']['placeholder'] = 'E-Posta kargo takibi için gerekli';
$fields['billing']['billing_phone']['placeholder'] = 'Başında "0" olmadan Ör. "5551112233"';
$fields['billing']['billing_phone']['custom_attributes'] = array("maxlength" => "10" );
unset($fields['shipping']['shipping_address_2']);
unset($fields['shipping']['shipping_postcode']);
unset($fields['shipping']['shipping_company']);
$fields['shipping']['shipping_address_1']['label'] = 'Adres';
$fields['shipping']['shipping_address_1']['priority'] = '90';
$fields['shipping']['shipping_city']['label'] = 'İlçe';
$fields['shipping']['shipping_city']['placeholder'] = 'İlçe';
$fields['shipping']['shipping_address_1']['placeholder'] = 'Mahalle, Sokak, Bina No, Daire vb.';
$fields['shipping']['shipping_first_name']['placeholder'] = 'Ad';
$fields['shipping']['shipping_first_name']['label'] = 'Ad';
$fields['shipping']['shipping_last_name']['placeholder'] = 'Soyad';
$fields['shipping']['shipping_last_name']['label'] = 'Soyad';
$fields['shipping']['shipping_phone']['placeholder'] = 'Başında "0" olmadan Ör. "5301112233"';
$fields['shipping']['shipping_phone']['maxlength'] = 10;
$fields['shipping']['shipping_email']['placeholder'] = 'Kargo bilgileri E-Posta adresinize gönderilecek';
return $fields;
}
add_filter('woocommerce_checkout_fields','custom_override_checkout_fields');
add_action('wp_footer', 'format_checkout_billing_phone');
function format_checkout_billing_phone() {
if ( is_checkout() && ! is_wc_endpoint_url() ) :
?>
<script type="text/javascript">
jQuery( function($){
$('#billing_phone').on( 'input focusout', function() {
var p = $(this).val();
p = p.replace(/[^0-9]/g, '');
$(this).val(p);
});
});
</script>
<?php
endif;
}
add_action( 'woocommerce_checkout_process', 'holymong_checkout_fields_custom_validation' );
function holymong_checkout_fields_custom_validation() {
if ( isset( $_POST['billing_phone'] ) && ! empty( $_POST['billing_phone'] ) ) {
if ( strlen( $_POST['billing_phone'] ) < 10 ) {
wc_add_notice( 'Lütfen telefon numaranızı başında "0" olmadan ve boşluk bırakmadan 10 haneli olarak giriniz. Ör. "5551112233"', 'error' );
}
}
}
add_filter( 'woocommerce_enable_order_notes_field', '__return_false', 9999 );
//T.C. No, Vergi No ve Vergi Dairesi Alanlarını Oluştur
add_filter('woocommerce_checkout_fields', 'tc_vergi_icin_new_checkout_field');
function tc_vergi_icin_new_checkout_field($fields)
{
$fields['billing']['checkbox_tckno'] = array(
'type' => 'checkbox',
'priority' => 5,
'label' => __('TC Kimlik No', 'woocommerce'),
'class' => array('form-row-left'),
'clear' => true
);
$fields['billing']['checkbox_trigger'] = array(
'type' => 'checkbox',
'priority' => 8,
'label' => __('Kurumsal Fatura', 'woocommerce'),
'class' => array('form-row-right'),
'clear' => true
);
$fields['billing']['billing_tc_kimlik_no'] = array(
'label' => __('Vergi / TC Kimlik No', 'woocommerce'),
'placeholder' => _x('Vergi No', 'placeholder', 'woocommerce'),
'class' => array('form-row form-row-last'),
'required' => true,
'priority' => 31,
'clear' => true
);
$fields['billing']['billing_vergi_dairesi'] = array(
'label' => __('Vergi Dairesi', 'woocommerce'),
'placeholder' => _x('Vergi Dairesi', 'placeholder', 'woocommerce'),
'class' => array('form-row form-row-first'),
'required' => true,
'priority' => 32,
'clear' => true
);
if (!isset($_POST['checkbox_trigger'])) {
$fields['billing']['billing_tc_kimlik_no']['required'] = false;
$fields['billing']['billing_vergi_dairesi']['required'] = false;
} else {
$fields['billing']['billing_tc_kimlik_no']['required'] = true;
$fields['billing']['billing_vergi_dairesi']['required'] = true;
}
if (!isset($_POST['checkbox_trigger'])) {
$fields['billing']['billing_tc_kimlik_no']['default'] = '11111111111';
} else {
$fields['billing']['billing_tc_kimlik_no']['default'] = '11111111111';
}
return $fields;
}
// TC Doğrula Fonksiyonu
function isTcKimlik($tc)
{
if (strlen($tc) < 10) {
return false;
}
if ($tc[0] == '0') {
return false;
}
return true;
}
// TC Kimlik Noyu Doğrula
add_action('woocommerce_checkout_process', 'tc_numara_dogrula');
function tc_numara_dogrula()
{
$tcno = $_POST['billing_tc_kimlik_no'];
if (!empty($tcno)) {
if (!is_numeric($tcno) && !isset($_POST['checkbox_tckno'])) {
wc_add_notice(__('Lütfen Vergi Numaranızı yada TC Kimlik Numaranızı kontrol edin.'), 'error');
} else if (!empty($tcno) && !isset($_POST['checkbox_tckno'])) {
if (!isTcKimlik($tcno))
wc_add_notice(__('Lütfen Vergi Numaranızı yada TC Kimlik Numaranızı kontrol edin.'), 'error');
}
}
}
//E-Mail Şablonlarında vergi no ve vergi dairesi gösterimi için.
add_filter('woocommerce_email_order_meta_keys', 'holymong_vergi_numaralari_email_bildirim');
function holymong_vergi_numaralari_email_bildirim( $keys ) {
$keys['Vergi / TC Kimlik No:'] = '_billing_tc_kimlik_no';
$keys['Vergi Dairesi'] = '_billing_vergi_dairesi';
return $keys;
}
//Adminin Sipariş Detayında Fatura Bilgilerinde TC No ve Vergi Dairesi Görebilmesi İçin
add_action('woocommerce_admin_order_data_after_billing_address', 'vergi_no_dairesi', 10, 1);
function vergi_no_dairesi($order)
{
echo '<p><strong>' . __('Vergi / TC Kimlik No') . ':</strong> ' . $tc_kimlik_no = get_post_meta($order->get_id(), '_billing_tc_kimlik_no', true) . '</p>';
echo '<p><strong>' . __('Vergi Dairesi') . ':</strong> ' . $vergi_dairesi = get_post_meta($order->get_id(), '_billing_vergi_dairesi', true) . '</p>';
}
//Koşullara göre alanları göstermek için gerekli javascript kodları
add_action('woocommerce_after_checkout_form', 'kosullu_alan_goster', 6);
function kosullu_alan_goster()
{
?>
<script type="text/javascript">
jQuery('#payment_method_paytrcheckout').hide()
jQuery('#ship-to-different-address').hide()
jQuery('.woocommerce-billing-fields > h3').html('Adres bilgileri');
jQuery('#billing_tc_kimlik_no').hide();
jQuery('#billing_vergi_dairesi').hide();
jQuery('#billing_tc_kimlik_no_field > label').hide();
jQuery('#billing_vergi_dairesi_field > label').hide();
jQuery("#billing_tc_kimlik_no_field > label").append("<abbr class='required' title='gerekli'>*</abbr>");
jQuery("#billing_vergi_dairesi_field > label").append("<abbr class='required' title='gerekli'>*</abbr>");
jQuery('input#checkbox_trigger').change(function() {
if (this.checked) {
jQuery('.woocommerce-billing-fields > h3').html('Fatura bilgileri');
jQuery("#checkbox_tckno").prop( "checked", false );
jQuery('#billing_tc_kimlik_no').show();
jQuery('#billing_vergi_dairesi').show();
jQuery('#billing_last_name_field').hide();
jQuery('#billing_tc_kimlik_no_field > label').show();
jQuery('#billing_vergi_dairesi_field > label').show();
jQuery('#billing_tc_kimlik_no_field > label > span').remove();
jQuery('#billing_vergi_dairesi_field > label > span').remove();
jQuery('#billing_tc_kimlik_no_field').addClass('validate-required');
jQuery('#billing_vergi_dairesi_field').addClass('validate-required');
jQuery('#billing_first_name_field > label').html('Şirket Ünvanı&nbsp;<abbr class="required" title="gerekli">*</abbr>')
jQuery('#billing_tc_kimlik_no').attr("value", "")
jQuery('#billing_first_name').attr("placeholder", "Şirket Ünvanı")
jQuery('#billing_first_name_field').attr("class", "form-row form-row-first validate-required fullwidth_custom")
jQuery('#billing_last_name').attr("value", ".")
jQuery('#ship-to-different-address').show()
jQuery('#billing_tc_kimlik_no').attr("placeholder", "Vergi No")
jQuery('#billing_tc_kimlik_no_field').attr("class", "form-row form-row form-row-last ")
jQuery('#billing_tc_kimlik_no_field > label').html('Vergi No&nbsp;<abbr class="required" title="gerekli">*</abbr>')
} else {
jQuery('.woocommerce-billing-fields > h3').html('Adres bilgileri');
jQuery('#billing_last_name_field').show();
jQuery('#billing_vergi_dairesi').hide();
jQuery('#billing_vergi_dairesi_field > label').hide();
jQuery('#billing_vergi_dairesi').hide();
jQuery('#billing_tc_kimlik_no').hide();
jQuery('#billing_vergi_dairesi_field > label').hide();
jQuery('#billing_tc_kimlik_no_field > label').hide();
jQuery('#billing_first_name_field > label').html('Ad&nbsp;<abbr class="required" title="gerekli">*</abbr>')
jQuery('#billing_tc_kimlik_no').attr("value", "11111111111")
jQuery('#billing_first_name').attr("placeholder", "Ad")
jQuery('#billing_first_name_field').attr("class", "form-row form-row-first validate-required")
jQuery('#billing_tc_kimlik_no_field > label').html('TC Kimlik No&nbsp;<abbr class="required" title="gerekli">*</abbr>')
jQuery('#ship-to-different-address').hide()
jQuery('#billing_last_name').attr("value", "")
}
});
jQuery('input#checkbox_tckno').change(function() {
if (this.checked) {
jQuery( "#checkbox_trigger" ).prop( "checked", false );
jQuery('#billing_tc_kimlik_no').show();
jQuery('#billing_tc_kimlik_no_field > label').show();
jQuery('#billing_tc_kimlik_no_field > label > span').remove();
jQuery('#billing_tc_kimlik_no_field').addClass('validate-required');
jQuery('#billing_tc_kimlik_no').attr("value", "")
jQuery('#billing_first_name').attr("placeholder", "Ad")
jQuery('#billing_tc_kimlik_no').attr("placeholder", "TC Kimlik No")
jQuery('#billing_tc_kimlik_no_field').attr("class", "form-row form-row form-row-last fullwidth_custom ")
jQuery('#billing_last_name_field').show()
jQuery('#billing_first_name_field > label').html('Ad&nbsp;<abbr class="required" title="gerekli">*</abbr>')
jQuery('#billing_vergi_dairesi').hide();
jQuery('#billing_vergi_dairesi_field > label').hide();
jQuery('#billing_vergi_dairesi').hide();
jQuery('#billing_vergi_dairesi_field > label').hide();
jQuery('#billing_first_name_field').attr("class", "form-row form-row-first validate-required")
jQuery('#billing_tc_kimlik_no_field > label').html('TC Kimlik No&nbsp;<abbr class="required" title="gerekli">*</abbr>')
jQuery('#ship-to-different-address').hide()
jQuery('.woocommerce-billing-fields > h3').html('Adres bilgileri');
} else {
jQuery('#billing_tc_kimlik_no').hide();
jQuery('#billing_tc_kimlik_no_field > label').hide();
jQuery('#billing_tc_kimlik_no').attr("value", "11111111111")
jQuery('#billing_first_name').attr("placeholder", "Ad")
jQuery('#billing_tc_kimlik_no').attr("placeholder", "Vergi No")
jQuery('#billing_tc_kimlik_no_field').attr("class", "form-row form-row form-row-last ")
jQuery('#billing_last_name_field').show()
jQuery('#billing_last_name_field').attr("class", "form-row form-row-last validate-required")
jQuery('#billing_first_name_field > label').html('Ad&nbsp;<abbr class="required" title="gerekli">*</abbr>')
jQuery('#billing_tc_kimlik_no_field > label').html('Vergi No&nbsp;<abbr class="required" title="gerekli">*</abbr>')
}
});
</script>
<?php
}
@gezmenadam
Copy link

gezmenadam commented Dec 14, 2020

teşekkür ederim. hayat kurtaran bir çalışma. elinize, emeğinize sağlık. kurumsal fatura seçince girilen tc no ya da vergi no için düzeltme istiyor. bu konuda bilgi verebilir misiniz?

@nuwii
Copy link

nuwii commented Dec 18, 2020

Hocam.
Öncelikle elinize sağlık.
Bir soru sormak isterim.
Bahse konu kodu temalar içinde function.php içerisine yapıştırıyorum. Fakat site "kritik bir hata var" uyarısı veriyor.
Kodları nereye gömmemiz gerekiyor?
Açıklarsanız hem bana hem de bu başlığa gelenlere çok yardımcı olmuş olursunuz.
Şimdiden çok teşekkür ederim.
İyi çalışmalar.

@holymong
Copy link
Author

Hocam.
Öncelikle elinize sağlık.
Bir soru sormak isterim.
Bahse konu kodu temalar içinde function.php içerisine yapıştırıyorum. Fakat site "kritik bir hata var" uyarısı veriyor.
Kodları nereye gömmemiz gerekiyor?
Açıklarsanız hem bana hem de bu başlığa gelenlere çok yardımcı olmuş olursunuz.
Şimdiden çok teşekkür ederim.
İyi çalışmalar.

Merhaba hocam, kodu yapıştırırken üst taraftaki <?php den sonrasını kopyalayıp yapıştırın öyle deneyin.

@holymong
Copy link
Author

teşekkür ederim. hayat kurtaran bir çalışma. elinize, emeğinize sağlık. kurumsal fatura seçince girilen tc no ya da vergi no için düzeltme istiyor. bu konuda bilgi verebilir misiniz?

Nasıl bir düzeltme istiyor hocam. Benim uyguladığım versiyonda çalışan halini www.smartbee.com.tr adresinde görebilirsiniz.

@holymong
Copy link
Author

merhaba hocam öncelikle elinize sağlık;
bir şey sormak istiyorum
kurumsal fatura seçince isim ve soyisim kısmı kayboluyor ama sipariş verirken boş kaldığı için hata veriyor.
bir güncelleme veyaöneriniz var mı acaba?

Merhaba, Ad alanı aslında kaybolmuyor. Ad alanının sadece ismi Firma Ünvanı olarak değişiyor aslında aynı input. Soyad alanı ise gizleniyor. Eğer wordpress ayarlarında soyad girilmesi zorunlu tutulmuşsa öyle bir ayar var ise soyad'ı opsiyonle olarak ayarlamanız gerek. Soyad girilmediği için düzenleme istiyor olabilir.

@gezmenadam
Copy link

merhaba benim ilk mesajımda yazdığım sorunun yanı sıra tüm tc veya kurumsal fatura isteği aktifse sitede adres girin gibi bir hata alıyoruz. bununla da alakalı bir bilgi rica edebilir miyim lütfen? uyguladığım 2 3 sitede bu hatayı aldık maalesef ve iptal etmek zorunda kaldım.

@holymong
Copy link
Author

merhaba benim ilk mesajımda yazdığım sorunun yanı sıra tüm tc veya kurumsal fatura isteği aktifse sitede adres girin gibi bir hata alıyoruz. bununla da alakalı bir bilgi rica edebilir miyim lütfen? uyguladığım 2 3 sitede bu hatayı aldık maalesef ve iptal etmek zorunda kaldım.

Merhaba, bu kod aynı zamanda 2. adress satırını da deaktif ediyor. 1. ve 2. adres satırı oluyor defaultta ama genelde müşterinin kafasını karıştıran bir durum. Yine dediğim gibi eğer woocommerce ayarlarında 2. adres satırı zorunlu hale getirildi ise hata ondan kaynaklanıyor olabilir. Tam olarak bende bilemiyorum.

@gezmenadam
Copy link

merhaba benim ilk mesajımda yazdığım sorunun yanı sıra tüm tc veya kurumsal fatura isteği aktifse sitede adres girin gibi bir hata alıyoruz. bununla da alakalı bir bilgi rica edebilir miyim lütfen? uyguladığım 2 3 sitede bu hatayı aldık maalesef ve iptal etmek zorunda kaldım.

Merhaba, bu kod aynı zamanda 2. adress satırını da deaktif ediyor. 1. ve 2. adres satırı oluyor defaultta ama genelde müşterinin kafasını karıştıran bir durum. Yine dediğim gibi eğer woocommerce ayarlarında 2. adres satırı zorunlu hale getirildi ise hata ondan kaynaklanıyor olabilir. Tam olarak bende bilemiyorum.

hocam şimdi denediğimde firma adını gizli yaptıktan sonra adres hatası almadım ama baştan beri olan vergi no hatası devam ediyor ve "Lütfen Doğru Bir Vergi No Girin." ibaresi çıkıyor tüm denemelerime rağmen. şahıslar için tc kimlik no ve kurumlar için de normal bir vergi numarası denedim ama maalesef sonuç alamadım.

@nuwii
Copy link

nuwii commented Dec 22, 2020

merhaba benim ilk mesajımda yazdığım sorunun yanı sıra tüm tc veya kurumsal fatura isteği aktifse sitede adres girin gibi bir hata alıyoruz. bununla da alakalı bir bilgi rica edebilir miyim lütfen? uyguladığım 2 3 sitede bu hatayı aldık maalesef ve iptal etmek zorunda kaldım.

Merhaba, bu kod aynı zamanda 2. adress satırını da deaktif ediyor. 1. ve 2. adres satırı oluyor defaultta ama genelde müşterinin kafasını karıştıran bir durum. Yine dediğim gibi eğer woocommerce ayarlarında 2. adres satırı zorunlu hale getirildi ise hata ondan kaynaklanıyor olabilir. Tam olarak bende bilemiyorum.

Hocam tekrar merhabalar.
Öncelikle teşekkür ederim yukarıdaki kodlar ilaç gibi geldi.
Elinize sağlık.
Bir sorundan bahsetmek isterim "gezmenadam"ın bahsettiği "Lütfen Doğru Bir Vergi No Girin "sorununu ben de yaşıyorum.
Acaba sizde nasıl diyerek yukarıda link paylaştığınız sitede denedim, belki farkında değilsiniz ama o sitede de aynı sorun yaşanıyor.
Belki problemin farkında değilsinizdir diyerek iletmek istedim.

@nuwii
Copy link

nuwii commented Dec 22, 2020

merhaba benim ilk mesajımda yazdığım sorunun yanı sıra tüm tc veya kurumsal fatura isteği aktifse sitede adres girin gibi bir hata alıyoruz. bununla da alakalı bir bilgi rica edebilir miyim lütfen? uyguladığım 2 3 sitede bu hatayı aldık maalesef ve iptal etmek zorunda kaldım.

Merhaba, bu kod aynı zamanda 2. adress satırını da deaktif ediyor. 1. ve 2. adres satırı oluyor defaultta ama genelde müşterinin kafasını karıştıran bir durum. Yine dediğim gibi eğer woocommerce ayarlarında 2. adres satırı zorunlu hale getirildi ise hata ondan kaynaklanıyor olabilir. Tam olarak bende bilemiyorum.

Hocam tekrar merhabalar.
Öncelikle teşekkür ederim yukarıdaki kodlar ilaç gibi geldi.
Elinize sağlık.
Bir sorundan bahsetmek isterim "gezmenadam"ın bahsettiği "Lütfen Doğru Bir Vergi No Girin "sorununu ben de yaşıyorum.
Acaba sizde nasıl diyerek yukarıda link paylaştığınız sitede denedim, belki farkında değilsiniz ama o sitede de aynı sorun yaşanıyor.
Belki problemin farkında değilsinizdir diyerek iletmek istedim.

Hocam ayrıca kurumsal faturayı seçtiğimizde;

"Lütfen Doğru Bir Vergi No Girin." uyarısının yanında "Fatura Soyad gerekli bir alandır." hatası da vermekte. Fatura soyad uyarısı "TC Kimlik No" sekmesindeki soyad kısmı doldurulduktan sonra tekrar "Kurumsal Fatura"ya geçiş yapıldığında gitmekte.

Yardımlarınız için şimdiden çok teşekkür ederim

@holymong
Copy link
Author

holymong commented Dec 22, 2020

merhaba benim ilk mesajımda yazdığım sorunun yanı sıra tüm tc veya kurumsal fatura isteği aktifse sitede adres girin gibi bir hata alıyoruz. bununla da alakalı bir bilgi rica edebilir miyim lütfen? uyguladığım 2 3 sitede bu hatayı aldık maalesef ve iptal etmek zorunda kaldım.

Merhaba, bu kod aynı zamanda 2. adress satırını da deaktif ediyor. 1. ve 2. adres satırı oluyor defaultta ama genelde müşterinin kafasını karıştıran bir durum. Yine dediğim gibi eğer woocommerce ayarlarında 2. adres satırı zorunlu hale getirildi ise hata ondan kaynaklanıyor olabilir. Tam olarak bende bilemiyorum.

Hocam tekrar merhabalar.
Öncelikle teşekkür ederim yukarıdaki kodlar ilaç gibi geldi.
Elinize sağlık.
Bir sorundan bahsetmek isterim "gezmenadam"ın bahsettiği "Lütfen Doğru Bir Vergi No Girin "sorununu ben de yaşıyorum.
Acaba sizde nasıl diyerek yukarıda link paylaştığınız sitede denedim, belki farkında değilsiniz ama o sitede de aynı sorun yaşanıyor.
Belki problemin farkında değilsinizdir diyerek iletmek istedim.

Merhaba, smartbee sitesinde bende tekrar denedim farklı browserlardan fakat vergi no ile alakalı bir hata almadım. Boş bırakılsada kurumsal fatura yada tc no seçilsede bir hata vermedi, gerkçek bilgileri girerek denedim. Aynı zamanda siteden sipariş alınırken de vergi numuraları geliyor şuan. Fakat eğer bu sorunu bir kaç kişi yaşıyorsa müşterilerde yaşıyor olabilir. Kaynağını tam çözemedim ama çözmek lazım biraz daha detay verebilir misiniz sorunla alakalı. Mesela boş bırakıldığında mı hata veriyor yoksa vergi numarası vs girildiğinde mi? Kodu functions.php'ye ekledikten sonra Custom CSS'leri de eklediniz mi? Siz smartbee'de denerken hangi browserı kullandınız?

@nuwii
Copy link

nuwii commented Dec 22, 2020

Hocam

merhaba benim ilk mesajımda yazdığım sorunun yanı sıra tüm tc veya kurumsal fatura isteği aktifse sitede adres girin gibi bir hata alıyoruz. bununla da alakalı bir bilgi rica edebilir miyim lütfen? uyguladığım 2 3 sitede bu hatayı aldık maalesef ve iptal etmek zorunda kaldım.

Merhaba, bu kod aynı zamanda 2. adress satırını da deaktif ediyor. 1. ve 2. adres satırı oluyor defaultta ama genelde müşterinin kafasını karıştıran bir durum. Yine dediğim gibi eğer woocommerce ayarlarında 2. adres satırı zorunlu hale getirildi ise hata ondan kaynaklanıyor olabilir. Tam olarak bende bilemiyorum.

Hocam tekrar merhabalar.
Öncelikle teşekkür ederim yukarıdaki kodlar ilaç gibi geldi.
Elinize sağlık.
Bir sorundan bahsetmek isterim "gezmenadam"ın bahsettiği "Lütfen Doğru Bir Vergi No Girin "sorununu ben de yaşıyorum.
Acaba sizde nasıl diyerek yukarıda link paylaştığınız sitede denedim, belki farkında değilsiniz ama o sitede de aynı sorun yaşanıyor.
Belki problemin farkında değilsinizdir diyerek iletmek istedim.

Merhaba, smartbee sitesinde bende tekrar denedim farklı browserlardan fakat vergi no ile alakalı bir hata almadım. Boş bırakılsada kurumsal fatura yada tc no seçilsede bir hata vermedi, gerkçek bilgileri girerek denedim. Aynı zamanda siteden sipariş alınırken de vergi numuraları geliyor şuan. Fakat eğer bu sorunu bir kaç kişi yaşıyorsa müşterilerde yaşıyor olabilir. Kaynağını tam çözemedim ama çözmek lazım biraz daha detay verebilir misiniz sorunla alakalı. Mesela boş bırakıldığında mı hata veriyor yoksa vergi numarası vs girildiğinde mi? Kodu functions.php'ye ekledikten sonra Custom CSS'leri de eklediniz mi? Siz smartbee'de denerken hangi browserı kullandınız?

Hocam sizin sitenizde hem chrome'dan hem microsoft edge'den tekrar denedim. Aynı problemi aldım. Sorunu buradan paylaşıyorum.
image
image

@nuwii
Copy link

nuwii commented Dec 22, 2020

"TC Kimlik No (isteğe bağlı)" sekmesine tıklayarak soyada . ekledim daha sonra tekrar "Kurumsal Fatura (isteğe bağlı)" geçerek siparişi onayla dediğimde bu kez yanlızca Lütfen "Doğru Bir Vergi No Girin." hatası almaktayım.

@holymong
Copy link
Author

"TC Kimlik No (isteğe bağlı)" sekmesine tıklayarak soyada . ekledim daha sonra tekrar "Kurumsal Fatura (isteğe bağlı)" geçerek siparişi onayla dediğimde bu kez yanlızca Lütfen "Doğru Bir Vergi No Girin." hatası almaktayım.

Anladığım kadarıyla Kurumsal Fatura kısmında Şahıs şirketi olması dolayısıyla 10 haneli vergi no yerine 11 haneli TC kimlik no giriliyor. Kurumsal Fatura seçildiğinde 10 haneli olarak vergi numarası doğrulaması yapılıyor. Kurumsal faturada TC ile sipariş oluştururken bu hata alınıyor. Konu hakkında bir çözüm bulabilir miyiz bakıcam. Geçici çözüm olarak TC ve Vergi No doğrulama kısmı kaldırılabilir. bu sefer yanlış bir numara girilse bile siparişi onaylar.

@holymong
Copy link
Author

Sorunu yaşayan arkadaşlar aşağıdaki kod satırını silerek geçici olarak çözüm bulabilir. Bir revizeyle düzeltebilir miyiz bakıcam.

// Vergi No Doğrulama Fonksiyonu
function validateTaxNo($taxNo)
{
if (strlen($taxNo) == 10) {
for ($i = 0; $i < 9; $i++) {
$v[$i + 1] = ($taxNo[$i] + (9 - $i)) % 10;
$vv[$i + 1] = ($v[$i + 1] * pow(2, (9 - $i))) % 9;
$vv[$i + 1] = ($v[$i + 1] != 0 && $vv[$i + 1] == 0) ? 9 : $vv[$i + 1];
}
$sum = array_sum($vv);
$sum = ($sum % 10 == 0) ? 0 : (10 - ($sum % 10));
return ($sum == $taxNo[9]) ? true : false;
}
return false;
}
// Vergi Noyu Doğrula
add_action('woocommerce_checkout_process', 'vergi_no_dogrula');

function vergi_no_dogrula()
{
$tc_kimlik_no = $_POST['billing_tc_kimlik_no'];
if (isset($_POST['checkbox_trigger'])) {
if (!validateTaxNo($tc_kimlik_no))
wc_add_notice(__('Lütfen Doğru Bir Vergi No Girin.'), 'error');
}
}

@gezmenadam
Copy link

gezmenadam commented Dec 22, 2020

hocam bilgiler için tşk. ilgiyle takip ediyoruz başlığı. :) bu arada sitenizde küçük bir kelime hatası gördüm, gözünüzden kaçıştır diye yazayım dedim. bu sayfada başlık hatalı. kolay gelsin, iyi çalışmalar.

https://www.smartbee.com.tr/siparis-takibi/

@nuwii
Copy link

nuwii commented Dec 23, 2020

Hocam tekrar merhabalar.
Problemi anladım.
Size de anlatayım belki kodu geliştirmenizde bir faydam olur.
Öncelikle soyad girme zorunluluğu aynen devam etmekte.
Vergi numarasındaki problem de şahıs firmalarının T.C. kimlik no girebilme durumundan kaynaklı.
10 haneli vergi numarası girdiğimizde problem yaşanmıyor. Fakat T.C. kimlik numarası girdiğimizde problem yaşanıyor.
Yani vergi numarası girdiğimiz doğrulama fonksiyonuna bir şekilde T.C. kimlik numarası da girebilme özelliği eklenmeli.
Saygılarımla.
İyi çalışalar.

@holymong
Copy link
Author

Hocam tekrar merhabalar.
Problemi anladım.
Size de anlatayım belki kodu geliştirmenizde bir faydam olur.
Öncelikle soyad girme zorunluluğu aynen devam etmekte.
Vergi numarasındaki problem de şahıs firmalarının T.C. kimlik no girebilme durumundan kaynaklı.
10 haneli vergi numarası girdiğimizde problem yaşanmıyor. Fakat T.C. kimlik numarası girdiğimizde problem yaşanıyor.
Yani vergi numarası girdiğimiz doğrulama fonksiyonuna bir şekilde T.C. kimlik numarası da girebilme özelliği eklenmeli.
Saygılarımla.
İyi çalışalar.

Sorunları bende fark ettim. Düzeltme olarak soyad alanı zorunlu değil opsiyonel olarak ayarladım. Vergi No ve TC Kimlik no doğrulaması tek bir input ile aynı anda yapılamayacağına karar verdim. 2 farklı girdi olarak almak gerekiyor bunun doğrulamasını fonksiyonla yapabilmek için. Fakat 2 girdi almak hem müşterinin kafasını karıştırabilir hemde muhasebe programları otomatik bu bilgiyi çekemeyecek hale gelebilir. Dolayısıyla güncellediğim kodda TC ve Vergi No doğrulamasını kaldırdım sadece 10 haneden az bir sayı yazılırsa yada checkbox seçilmiş ama alan doldurulmamışsa hata veriyor. Yardımlarınız için size de teşekkürler farkında olmadığımız bir sorunu çözmüş olduk.

@gezmenadam
Copy link

şu an yayındaki en güncel hali mi? bu şekilde alıp kullanabiliriz sanırım değil mi?

@holymong
Copy link
Author

şu an yayındaki en güncel hali mi? bu şekilde alıp kullanabiliriz sanırım değil mi?

Evet şuan ki en güncel hali

@nuwii
Copy link

nuwii commented Dec 23, 2020

Hocam ne demek.
Biz teşekkür ederiz.
Ellerinize sağlık.
Artık rüyalarınıza girecek sanırım ama :) iki sorundan daha bahsetmeliyim.
Birinci sorunumuz: 3 seçenekte de müşteri açıklama satırı "unset" edilmiş. Ne yaptıysam getiremedim. Burada yok edildiği gibi admin panelinde de yok edilmiş.
İkinci sorunumuz ise: "Farklı adrese gönderilsin mi? seçeneği"
Burada İç içe farklı sorunlar barınıyor.
Birincisi "farklı adrese gönderilsin mi" seçeneği kurumsal seçeneğinde var. Fakat bireysel seçeneğinde ya da default seçenekte yok. Ben jqueryler arasındaki hide() metotlarını show() metoduna çevirerek aktif ettim. Bu kez de farklı adrese gidecekler için telefon ve mail bilgisi görünmez halde geliyor.
İkincisi kurumsal seçeneği içerisindeki farklı adrese gönderilsine tıkladığımızda aşağıda yine telefon ve mail bilgisi olmadığı gibi ad soyad seçeneği çıkıyor.

Çok sorunla kapınıza geldim.
Şimdiden teşekkürler.
Yorduysam affola :)

@nuwii
Copy link

nuwii commented Dec 23, 2020

Hocam bir sorun daha buldum.
Kodlar arasında arasam da bir türlü bulamadım.
İlginç bir sorun.
Girilen şehir bilgisi plaka no olarak kayıt oluyor ve faturada gösteriliyor.
Yani şehir olarak Ankara'yı seçen birisinin faturasında TR06 yazıyor.
Woocommerce'in default halinde bu sorun olmuyordu.
Açıkcası neden olduğu hakkında da bir fikrim yok.
Umarım son sorun olur.
Sizi de yorduk.
İyi çalışmalar.

@nuwii
Copy link

nuwii commented Dec 24, 2020

Hocam yukarıda söylediğim problemleri aşağıda paylaştığım kodlarda çözdüm.
İki şeyi çözüme kavuşturamadım. Onları da umarım siz çözer ve paylaşırsınız.
1.si verilen şehir bilgisinin admin paneli ve faturada plaka bilgisine dönüşmesi;
2.si tc ve vergi numarası bilgisinin admin panelindeki sipariş ekle bölümünde pasif olmasının önüne geçemedim. Oradan da bir girdi yapılabilmesi gerekir diye düşünüyorum.
Bu iki sorun da çözülürse harika bir şey çıkmış olacak.

//WooCommerce Checkout duzenleme

function custom_override_checkout_fields( $fields ) {
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_company']);
//unset($fields['order']['order_comments']);
$fields['billing']['billing_address_1']['label'] = 'Adres';
$fields['billing']['billing_address_1']['placeholder'] = 'Mahalle, Sokak, Bina No, Daire vb.';
$fields['billing']['billing_address_1']['priority'] = '90';
$fields['billing']['billing_first_name']['placeholder'] = 'Ad';
$fields['billing']['billing_first_name']['label'] = 'Ad';
$fields['billing']['billing_last_name']['placeholder'] = 'Soyad';
$fields['billing']['billing_last_name']['label'] = 'Soyad';
$fields['billing']['billing_last_name']['required'] = false;
$fields['billing']['billing_city']['label'] = 'İlçe';
$fields['billing']['billing_city']['placeholder'] = 'İlçe';
unset($fields['shipping']['shipping_address_2']);
unset($fields['shipping']['shipping_country']);
unset($fields['shipping']['shipping_postcode']);
unset($fields['shipping']['shipping_company']);
$fields['shipping']['shipping_address_1']['label'] = 'Adres';
$fields['shipping']['shipping_address_1']['priority'] = '90';
$fields['shipping']['shipping_city']['label'] = 'İlçe';
$fields['shipping']['shipping_city']['placeholder'] = 'İlçe';
$fields['shipping']['shipping_address_1']['placeholder'] = 'Mahalle, Sokak, Bina No, Daire vb.';
$fields['shipping']['shipping_first_name']['placeholder'] = 'Ad';
$fields['shipping']['shipping_first_name']['label'] = 'Ad';
$fields['shipping']['shipping_last_name']['placeholder'] = 'Soyad';
$fields['shipping']['shipping_last_name']['label'] = 'Soyad';
return $fields;
}

add_filter('woocommerce_checkout_fields','custom_override_checkout_fields');

//add_filter( 'woocommerce_enable_order_notes_field', '__return_false', 9999 );

//T.C. No, Vergi No ve Vergi Dairesi Alanlarını Oluştur
add_filter('woocommerce_checkout_fields', 'tc_vergi_icin_new_checkout_field');

function tc_vergi_icin_new_checkout_field($fields)
{
$fields['billing']['checkbox_tckno'] = array(
'type' => 'checkbox',
'priority' => 5,
'label' => __('TC Kimlik No', 'woocommerce'),
'class' => array('form-row-left'),
'clear' => true
);
$fields['billing']['checkbox_trigger'] = array(
'type' => 'checkbox',
'priority' => 8,
'label' => __('Kurumsal Fatura', 'woocommerce'),
'class' => array('form-row-right'),
'clear' => true
);

$fields['billing']['billing_tc_kimlik_no'] = array(
    'label'     => __('Vergi / TC Kimlik No', 'woocommerce'),
    'placeholder'   => _x('Vergi No', 'placeholder', 'woocommerce'),
    'class'     => array('form-row form-row-last'),
    'required' => true,
    'priority' => 31,
    'clear'     => true
);

$fields['billing']['billing_vergi_dairesi'] = array(
    'label'     => __('Vergi Dairesi', 'woocommerce'),
    'placeholder'   => _x('Vergi Dairesi', 'placeholder', 'woocommerce'),
    'class'     => array('form-row form-row-first'),
    'required' => true,
    'priority' => 32,
    'clear'     => true
);

if (!isset($_POST['checkbox_trigger'])) {
	$fields['billing']['billing_tc_kimlik_no']['required'] = false;
    $fields['billing']['billing_vergi_dairesi']['required'] = false;
} else {
    $fields['billing']['billing_tc_kimlik_no']['required'] = true;        
	$fields['billing']['billing_vergi_dairesi']['required'] = true;
}
    if (!isset($_POST['checkbox_trigger'])) {
	$fields['billing']['billing_tc_kimlik_no']['default'] = '11111111111';
	} else {
	$fields['billing']['billing_tc_kimlik_no']['default'] = '11111111111';
}

return $fields;

}
// TC Doğrula Fonksiyonu
function isTcKimlik($tc)
{
if (strlen($tc) < 10) {
return false;
}
if ($tc[0] == '0') {
return false;
}

return true;

}
// TC Kimlik Noyu Doğrula
add_action('woocommerce_checkout_process', 'tc_numara_dogrula');

function tc_numara_dogrula()
{
$tcno = $_POST['billing_tc_kimlik_no'];
if (!empty($tcno)) {
if (!is_numeric($tcno) && !isset($_POST['checkbox_tckno'])) {
wc_add_notice(('Lütfen Vergi Numaranızı yada TC Kimlik Numaranızı kontrol edin.'), 'error');
} else if (!empty($tcno) && !isset($_POST['checkbox_tckno'])) {
if (!isTcKimlik($tcno))
wc_add_notice(
('Lütfen Vergi Numaranızı yada TC Kimlik Numaranızı kontrol edin.'), 'error');
}
}
}
//Adminin Sipariş Detayında Fatura Bilgilerinde TC No ve Vergi Dairesi Görebilmesi İçin
add_action('woocommerce_admin_order_data_after_billing_address', 'vergi_no_dairesi', 10, 1);

function vergi_no_dairesi($order)
{
echo '

' . __('Vergi / TC Kimlik No') . ': ' . $tc_kimlik_no = get_post_meta($order->get_id(), '_billing_tc_kimlik_no', true) . '

';
echo '

' . __('Vergi Dairesi') . ': ' . $vergi_dairesi = get_post_meta($order->get_id(), '_billing_vergi_dairesi', true) . '

';
}

//Koşullara göre alanları göstermek için gerekli javascript kodları

add_action('woocommerce_after_checkout_form', 'kosullu_alan_goster', 6);

function kosullu_alan_goster()
{

?>
<script type="text/javascript">
	jQuery('#payment_method_paytrcheckout').hide()
	jQuery('#ship-to-different-address').show()
	jQuery('.woocommerce-billing-fields > h3').html('Adres bilgileri');
    	jQuery('#billing_tc_kimlik_no').hide();
 		jQuery('#billing_vergi_dairesi').hide();
	jQuery('#billing_tc_kimlik_no_field  > label').hide();
    	jQuery('#billing_vergi_dairesi_field  > label').hide();
   		jQuery("#billing_tc_kimlik_no_field > label").append("<abbr class='required' title='gerekli'>*</abbr>");
    	jQuery("#billing_vergi_dairesi_field > label").append("<abbr class='required' title='gerekli'>*</abbr>");
	
    jQuery('input#checkbox_trigger').change(function() {
        if (this.checked) {

		jQuery('.woocommerce-billing-fields > h3').html('Fatura bilgileri');
		jQuery("#checkbox_tckno").prop( "checked", false );
		jQuery('#billing_tc_kimlik_no').show();
            	jQuery('#billing_vergi_dairesi').show();
            	jQuery('#billing_last_name_field').hide();
            	jQuery('#billing_tc_kimlik_no_field  > label').show();				
            	jQuery('#billing_vergi_dairesi_field  > label').show();
            	jQuery('#billing_tc_kimlik_no_field > label > span').remove();
            	jQuery('#billing_vergi_dairesi_field > label > span').remove();
            	jQuery('#billing_tc_kimlik_no_field').addClass('validate-required');
            	jQuery('#billing_vergi_dairesi_field').addClass('validate-required');
		jQuery('#billing_first_name_field > label').html('Şirket Ünvanı&nbsp;<abbr class="required" title="gerekli">*</abbr>')
		jQuery('#billing_tc_kimlik_no').attr("value", "")
		jQuery('#billing_first_name').attr("placeholder", "Şirket Ünvanı")
		jQuery('#billing_first_name_field').attr("class", "form-row form-row-first validate-required fullwidth_custom")

		jQuery('#ship-to-different-address').show()
		jQuery('#billing_tc_kimlik_no').attr("placeholder", "Vergi No")
		jQuery('#billing_tc_kimlik_no_field').attr("class", "form-row form-row form-row-last ")
		jQuery('#billing_tc_kimlik_no_field > label').html('Vergi No&nbsp;<abbr class="required" title="gerekli">*</abbr>')

        } else {				
		jQuery('.woocommerce-billing-fields > h3').html('Adres bilgileri');
            	jQuery('#billing_last_name_field').show();
            	jQuery('#billing_vergi_dairesi').hide();
            	jQuery('#billing_vergi_dairesi_field > label').hide();
            	jQuery('#billing_vergi_dairesi').hide();
            	jQuery('#billing_tc_kimlik_no').hide();
            	jQuery('#billing_vergi_dairesi_field > label').hide();
            	jQuery('#billing_tc_kimlik_no_field  > label').hide();
		jQuery('#billing_first_name_field > label').html('Ad&nbsp;<abbr class="required" title="gerekli">*</abbr>')
		jQuery('#billing_tc_kimlik_no').attr("value", "11111111111")
		jQuery('#billing_first_name').attr("placeholder", "Ad")
		jQuery('#billing_first_name_field').attr("class", "form-row form-row-first validate-required")
		jQuery('#billing_tc_kimlik_no_field > label').html('TC Kimlik No&nbsp;<abbr class="required" title="gerekli">*</abbr>')
		jQuery('#ship-to-different-address').show()
        }

    });
	jQuery('input#checkbox_tckno').change(function() {
        if (this.checked) {
		jQuery( "#checkbox_trigger" ).prop( "checked", false );
            	jQuery('#billing_tc_kimlik_no').show();
            	jQuery('#billing_tc_kimlik_no_field  > label').show();
            	jQuery('#billing_tc_kimlik_no_field > label > span').remove();
            	jQuery('#billing_tc_kimlik_no_field').addClass('validate-required');
		jQuery('#billing_tc_kimlik_no').attr("value", "")
		jQuery('#billing_first_name').attr("placeholder", "Ad")
		jQuery('#billing_tc_kimlik_no').attr("placeholder", "TC Kimlik No")
		jQuery('#billing_tc_kimlik_no_field').attr("class", "form-row form-row form-row-last fullwidth_custom ")
            	jQuery('#billing_last_name_field').show()
		jQuery('#billing_first_name_field > label').html('Ad&nbsp;<abbr class="required" title="gerekli">*</abbr>')
			
            	jQuery('#billing_vergi_dairesi').hide();
            	jQuery('#billing_vergi_dairesi_field > label').hide();
            	jQuery('#billing_vergi_dairesi').hide();
            	jQuery('#billing_vergi_dairesi_field > label').hide();
		jQuery('#billing_first_name_field').attr("class", "form-row form-row-first validate-required")
		jQuery('#billing_tc_kimlik_no_field > label').html('TC Kimlik No&nbsp;<abbr class="required" title="gerekli">*</abbr>')
		jQuery('#ship-to-different-address').show()
		jQuery('.woocommerce-billing-fields > h3').html('Adres bilgileri');

        } else {
            	jQuery('#billing_tc_kimlik_no').hide();
            	jQuery('#billing_tc_kimlik_no_field  > label').hide();
		jQuery('#billing_tc_kimlik_no').attr("value", "11111111111")
		jQuery('#billing_first_name').attr("placeholder", "Ad")
		jQuery('#billing_tc_kimlik_no').attr("placeholder", "Vergi No")
		jQuery('#billing_tc_kimlik_no_field').attr("class", "form-row form-row form-row-last ")
		jQuery('#billing_first_name_field').attr("class", "form-row form-row-first validate-required")
            	jQuery('#billing_last_name_field').show()
		jQuery('#billing_first_name_field > label').html('Ad&nbsp;<abbr class="required" title="gerekli">*</abbr>')
		jQuery('#billing_tc_kimlik_no_field > label').html('Vergi No&nbsp;<abbr class="required" title="gerekli">*</abbr>')
			
        }
    });
</script>

@nuwii
Copy link

nuwii commented Dec 24, 2020

Saygılarımla.

@nuwii
Copy link

nuwii commented Dec 29, 2020

Hocam tekrar merhabalar.
Rahatsız ediyorum kusuruma bakmayın.
"verilen şehir bilgisinin admin paneli ve faturada plaka bilgisine dönüşmesi" ile
"tc ve vergi numarası bilgisinin admin panelindeki sipariş ekle bölümünde pasif olması" problemlerini bulabildik mi acaba ?
Yardımınıza ihtiyacım var.

@tamwoo
Copy link

tamwoo commented Jan 27, 2021

@nuwii
"verilen şehir bilgisinin admin paneli ve faturada plaka bilgisine dönüşmesi" hatasını kodlarda country kısmını unset yaptığınız için alıyorsunuz muhtemelen. ilgili yeri düzenlerseniz sorun çözülecektir.

@holymong
Copy link
Author

@nuwii @tamwoo @gezmenadam @egebese @lord5521 Güncelleme yapıldı sizde test edebilirseniz sevinirim.

@sahanet
Copy link

sahanet commented Jun 12, 2022

Merhaba,
Bu eklenti/kodu nasıl kullanabilirim?

@gmgurgen
Copy link

gmgurgen commented Aug 4, 2022

@holymong Hocam merhaba, öncelikle elinize sağlık.
Ben görünümde bir kaç sorun yaşadım; İlçe / Şehir ve Telefon / E-posta alanlarında ve kurumsal fatura seçildiğinde vergi no / vergi dairesi alanlarında kaymalar meydana geliyordu ve tablet/mobil görünümünde alanlar üstüste biniyordu, margin-top: - değerli olduğu için.
Gördüğüm kadarı ile alanlar form-row-first ve form-row-last classlarına göre yerleşim yapıyor genel CSS'de.
Class ekle değiştir ile uğraşmadan sizin kodlarınızda;

$fields['billing']['billing_tc_kimlik_no'] = array(
        'label'     => __('Vergi / TC Kimlik No', 'woocommerce'),
        'placeholder'   => _x('Vergi No', 'placeholder', 'woocommerce'),
        'class'     => array('form-row form-row-last'),
        'required' => true,
        'priority' => 32,
        'clear'     => true
    );
	
    $fields['billing']['billing_vergi_dairesi'] = array(
        'label'     => __('Vergi Dairesi', 'woocommerce'),
        'placeholder'   => _x('Vergi Dairesi', 'placeholder', 'woocommerce'),
        'class'     => array('form-row form-row-first'),
        'required' => true,
        'priority' => 31,
        'clear'     => true
    );
şeklinde sıralamaları değiştirip, CSS kodlarında da aşağıdaki değişiklikleri yaparak sorunu çözdüm. 
    @media only screen and (min-width: 993px) {
.fullwidth_custom{width: 100% !important;}
#billing_first_name_field{width: 48%;}
#billing_last_name_field{width: 48%;}
#billing_vergi_dairesi_field{width: 48%;float:right;}
#billing_tc_kimlik_no_field{width: 48%;float:left;}
#billing_city_field{width: 48%;float: left;clear: none;}
#billing_state_field{width: 48%;float: right;clear: none;}
#billing_phone_field{width: 48%;float: left;clear: none;}
#billing_email_field{width: 48%;float: right; clear: none;}
#checkbox_trigger_field{width: 48%;float: right;}
#checkbox_tckno_field{width: 48%;float: left;}
}
#order_comments_field{display: inline-block;width: 100%;}
#billing_country{display: none;}
Aynı soruna yaşayan başkaları olduysa yardımcı olması dileğiyle.

@holymong
Copy link
Author

holymong commented Aug 4, 2022

@gmgurgen Teşekkürler paylaşım için. Şu kodu bir ara tekrar derleyip plugin haline getirebilsek güzel olacak.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment