5
제조를 위해 며칠을 삽입하기 위해 제품 페이지의 일반 설정 탭에서 WooCommerce 관리자에 맞춤 필드를 만들었습니다. 장바구니 및 체크 아웃 페이지에 각 제품 이름 위에 맞춤 입력란 값을 표시하고 싶습니다.관리자 제품 페이지 맞춤 필드가 장바구니 및 체크 아웃에 표시됩니다.
여기 내 코드입니다 :
// 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);
하지만 장바구니 체크 아웃 페이지에 사용자 정의 필드 값을 표시 할 수 없기 때문에이 작동하지 않습니다.
어떻게하면됩니까?
덕분에
우수, 완벽하게 일했다. 너는 천재 야. 고마워요! 한 번 더 질문합니다. 이제는 .get_post_meta를 착용하기 전에 제품 화면에 값을 표시해야하는 경우 더 이상 작동하지 않습니다. –