Üretim için birkaç gün eklemek üzere, ürün sayfalarının genel ayarları sekmesinde WooCommerce Yönetimi'nde bir Özel Alan oluşturdum. Bu özel alan değerini her bir ürünün adının üzerindeki alışveriş sepeti ve ödeme sayfalarına göstermek istiyorum.Yönetici ürün sayfalarında özel alan Kart ve kasada görüntülenir
İşte benim kodudur:
// Insert a Custom Admin Field
function woo_add_custom_general_fields() {
echo '<div class="options_group">';
woocommerce_wp_text_input(array(
'id' => 'days_manufacture',
'label' => __('Days for Manufacture', 'woocommerce'),
'placeholder' => '',
'description' => __('Insert here', 'woocommerce'),
'type' => 'number',
'custom_attributes' =>
array(
'step' => 'any',
'min' => '1'
)
));
echo '</div>';
}
add_action('woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields');
// Save field
function woo_add_custom_general_fields_save($post_id){
$woocommerce_number_field = $_POST['days_manufacture'];
if(!empty($woocommerce_number_field))
update_post_meta($post_id, 'days_manufacture', esc_attr($woocommerce_number_field));
}
add_action('woocommerce_process_product_meta', 'woo_add_custom_general_fields_save');
function save_days_field($cart_item_data, $product_id) {
if(isset($_REQUEST['days_manufacture'])) {
$cart_item_data[ 'days_manufacture' ] = get_post_meta($post->ID, 'days_manufacture',true);
/* below statement make sure every add to cart action as unique line item */
$cart_item_data['unique_key'] = md5(microtime().rand());
}
return $cart_item_data;
}
add_action('woocommerce_add_cart_item_data', 'save_days_field', 10, 2);
function render_meta_on_cart_and_checkout($cart_data, $cart_item = null) {
$custom_items = array();
/* Woo 2.4.2 updates */
if(!empty($cart_data)) {
$custom_items = $cart_data;
}
if(isset($cart_item['days_manufacture'])) {
$custom_items[] = array("name" => 'Days:', "value" => $cart_item['days_manufacture']);
}
return $custom_items;
}
add_filter('woocommerce_get_item_data', 'render_meta_on_cart_and_checkout', 10, 2);
Ama sepeti ve ödeme sayfalarında özel alan değerini gösteremez olarak bu çalışmıyor.
Bunu nasıl başarabilirim?
Teşekkür
Mükemmel, mükemmel çalıştı. Sen bir dahisin. Çok teşekkür ederim! Bir daha soru, eğer giymeden önce ürünümü ekrana göstermem gerekiyorsa .get_post_meta artık çalışmıyor. –