lostyazilim
tr.link

🧭woocommerce ürün sayfasına kişiselleştirilebilir satır ekleme

9 Mesajlar 1.473 Okunma
lstbozum
tr.link

bhdstandart bhdstandart WM Aracı Kullanıcı
  • Üyelik 18.04.2017
  • Yaş/Cinsiyet 34 / E
  • Meslek icra Takip Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad B** D**
  • Mesajlar 487
  • Beğeniler 64 / 56
  • Ticaret 0, (%0)
Herkese selamlar
woocommerce alışveriş temasında ürün sayfasına girildiğinde iki tane kişiselleştirilebilen not ekletmek istiyorum.
Mesela müşteri bardak siparişi verecekse üzerine hangi notun yazılması gerektiğini ürün sayfasından yazmalı ardından sepete eklemeli.
Bu işlem veritabanında sepete ekle satırının üzerine bir satır açılarak okunuyormuş sanırım. bu konuda bana yol gösterebilecek olan var mı kodlamadan pek anlamıyorum da. Bu işlem eklenti ile de yapılıyor ama sitemde eklenti yoğunluğu olsun istemediğinden eklenti düşünmüyorum.

Örnek siteyi aşağıda paylaştım bu ürün sayfasındaki gibi kutucuklardan iki tane yerleştirmek istiyorum

https://www.garbalia.com/urun/garbalia-orleans-vintage-deri-hardal-sarisi-telefon-bolmeli-el-cantasi-cuzdan-kartlik/
 

 

İcra Takip Uzmanı
wmaraci
reklam

forces forces WM Aracı Kullanıcı
  • Üyelik 23.01.2016
  • Yaş/Cinsiyet 45 / E
  • Meslek bilgisayar mühendisi
  • Konum İstanbul Avrupa
  • Ad Soyad M** E**
  • Mesajlar 1366
  • Beğeniler 9 / 379
  • Ticaret 0, (%0)
Temanın function.php dosyası içerisine aşağıdaki kodları ekleyin ;


// Add a custom product note below product meta in single product pages
add_action('woocommerce_single_product_summary', 'custom_product_note', 100 );
function custom_product_note() {

echo '
';

woocommerce_form_field('customer_note', array(
'type' => 'textarea',
'class' => array( 'my-field-class form-row-wide') ,
'label' => __('Product note') ,
'placeholder' => __('Add your note here, please…') ,
'required' => false,
) , '');
echo '
';

//
?>
<script>
jQuery( function($){
$('#customer_note').on( 'input blur', function() {
$('#product_note').val($(this).val());
});
});
</script>

}

// Custom hidden field in add to cart form
add_action( 'woocommerce_before_add_to_cart_button', 'hidden_field_before_add_to_cart_button', 5 );
function hidden_field_before_add_to_cart_button(){
echo '';
}

// Add customer note to cart item data
add_filter( 'woocommerce_add_cart_item_data', 'add_product_note_to_cart_item_data', 20, 2 );
function add_product_note_to_cart_item_data( $cart_item_data, $product_id ){
if( isset($_POST['product_note']) && ! empty($_POST['product_note']) ){
$product_note = sanitize_textarea_field( $_POST['product_note'] );
$cart_item_data['product_note'] = $product_note;
}
return $cart_item_data;
}
bhdstandart

kişi bu mesajı beğendi.

bhdstandart bhdstandart WM Aracı Kullanıcı
  • Üyelik 18.04.2017
  • Yaş/Cinsiyet 34 / E
  • Meslek icra Takip Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad B** D**
  • Mesajlar 487
  • Beğeniler 64 / 56
  • Ticaret 0, (%0)
forces üstadım Allah razı olsun. Verdiğiniz kodu eklediğim zaman ürün sayfasında bi kutucuk çıkıyor ancak o kutuyu doldurup sepete ekleyince ek bilgi ile birlikte kaydolmuyor.
Ben bu kutucuk sepete eklenin üzerinde çıkmasını ve bununla birlikte açılır seçenekli menü de çıkmasını isterdim. Ama burda şuan en önemli olan kutu içeriği ile (isteğe bağlı değil zorunlu olarak) siparişin kaydolması...
 

 

İcra Takip Uzmanı

bhdstandart bhdstandart WM Aracı Kullanıcı
  • Üyelik 18.04.2017
  • Yaş/Cinsiyet 34 / E
  • Meslek icra Takip Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad B** D**
  • Mesajlar 487
  • Beğeniler 64 / 56
  • Ticaret 0, (%0)
Yok mu bu işlemin devamını getirebilecek??
 

 

İcra Takip Uzmanı
wmaraci
wmaraci

forces forces WM Aracı Kullanıcı
  • Üyelik 23.01.2016
  • Yaş/Cinsiyet 45 / E
  • Meslek bilgisayar mühendisi
  • Konum İstanbul Avrupa
  • Ad Soyad M** E**
  • Mesajlar 1366
  • Beğeniler 9 / 379
  • Ticaret 0, (%0)
şunu eklermisiniz

// Display Fields
add_action('woocommerce_product_options_general_product_data', 'woocommerce_product_custom_fields');
// Save Fields
add_action('woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save');
function woocommerce_product_custom_fields()
{
global $woocommerce, $post;
echo '
';
// Custom Product Text Field
woocommerce_wp_text_input(
array(
'id' => '_custom_product_text_field',
'placeholder' => 'Custom Product Text Field',
'label' => __('Custom Product Text Field', 'woocommerce'),
'desc_tip' => 'true'
)
);

//Custom Product Number Field
woocommerce_wp_text_input(
array(
'id' => '_custom_product_number_field',
'placeholder' => 'Custom Product Number Field',
'label' => __('Custom Product Number Field', 'woocommerce'),
'type' => 'number',
'custom_attributes' => array(
'step' => 'any',
'min' => '0'
)
)
);
//Custom Product Textarea
woocommerce_wp_textarea_input(
array(
'id' => '_custom_product_textarea',

'placeholder' => 'Custom Product Textarea',
'label' => __('Custom Product Textarea', 'woocommerce')
)
);
echo '
';
}
 

 

forces forces WM Aracı Kullanıcı
  • Üyelik 23.01.2016
  • Yaş/Cinsiyet 45 / E
  • Meslek bilgisayar mühendisi
  • Konum İstanbul Avrupa
  • Ad Soyad M** E**
  • Mesajlar 1366
  • Beğeniler 9 / 379
  • Ticaret 0, (%0)
veri tabanına eklemek için ;





function woocommerce_product_custom_fields_save($post_id)
{
// Custom Product Text Field
$woocommerce_custom_product_text_field = $_POST['_custom_product_text_field'];
if (!empty($woocommerce_custom_product_text_field))
update_post_meta($post_id, '_custom_product_text_field', esc_attr($woocommerce_custom_product_text_field));
// Custom Product Number Field
$woocommerce_custom_product_number_field = $_POST['_custom_product_number_field'];
if (!empty($woocommerce_custom_product_number_field))
update_post_meta($post_id, '_custom_product_number_field', esc_attr($woocommerce_custom_product_number_field));
// Custom Product Textarea Field
$woocommerce_custom_procut_textarea = $_POST['_custom_product_textarea'];
if (!empty($woocommerce_custom_procut_textarea))
update_post_meta($post_id, '_custom_product_textarea', esc_html($woocommerce_custom_procut_textarea));
}
 

 

forces forces WM Aracı Kullanıcı
  • Üyelik 23.01.2016
  • Yaş/Cinsiyet 45 / E
  • Meslek bilgisayar mühendisi
  • Konum İstanbul Avrupa
  • Ad Soyad M** E**
  • Mesajlar 1366
  • Beğeniler 9 / 379
  • Ticaret 0, (%0)
veri tabanına kayıt edilenleri okumak için ;



// Display the value of custom product text field
echo get_post_meta($post->ID, '_custom_product_text_field', true);
// Display the value of custom product number field
echo get_post_meta(get_the_ID(), '_custom_product_number_field', true);
// Display the value of custom product text area
echo get_post_meta(get_the_ID(), '_custom_product_textarea', true);
?>
 

 

bhdstandart bhdstandart WM Aracı Kullanıcı
  • Üyelik 18.04.2017
  • Yaş/Cinsiyet 34 / E
  • Meslek icra Takip Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad B** D**
  • Mesajlar 487
  • Beğeniler 64 / 56
  • Ticaret 0, (%0)
forces çok tşk ederim.3 tane daha kod attınız. Function dosyasına toplamda 4 farklı kod mu eklemem gerekecek?
 

 

İcra Takip Uzmanı

forces forces WM Aracı Kullanıcı
  • Üyelik 23.01.2016
  • Yaş/Cinsiyet 45 / E
  • Meslek bilgisayar mühendisi
  • Konum İstanbul Avrupa
  • Ad Soyad M** E**
  • Mesajlar 1366
  • Beğeniler 9 / 379
  • Ticaret 0, (%0)
son eklediğim 3 kodu kullanmak yeterli olmalı
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al