2014-05-22 5 views
2

woocommerce 플러그인을 사용하여 제품 관리 화면에 사용자 정의 필드를 추가하려고하므로 새로 선택하거나 제품의 조건으로 사용할 드롭 다운 메뉴를 사용할 수 있습니다.woocommerce 사용자 정의 제품 필드

관리자 화면에 드롭 다운 목록이 표시되지만 새로 표시되거나 제품의 프론트 엔드에 사용되지 않습니다.

은 내가 functions.php에이 코드를 추가 :

// Select 
woocommerce_wp_select(array( 
‘id’ => ‘_conditionselect’, 
‘label’ => __(‘Condition’, ‘woocommerce’), 
‘options’ => array(
‘one’ => __(‘New’, ‘woocommerce’), 
‘two’ => __(‘Used’, ‘woocommerce’), 
) 
) 
); 
} 

function woo_add_custom_general_fields_save($post_id){ 
// Select 
$woocommerce_select = $_POST['_conditionselect']; 
if(!empty($woocommerce_select)) 
update_post_meta($post_id, ‘_conditionselect’, esc_attr($woocommerce_select)); 
} 

나는 짧은 description.php이 추가 :

<?php _e('Condition: ', ‘woocommerce’); ?> 
<?php 
echo get_post_meta(get_the_ID(), ‘_conditionselect’, true); 
?> 

어떤 생각이 왜 작동하지 않습니다 ?

좋아요. 나는 무엇을했는지 모르겠지만 프론트 엔드의 "조건"옆에 "2"라는 단어가 나타납니다. 하지만 제품 중 하나에서만 나타납니다. 나는이 코드에서 올 것이라고 생각했다 :

그래서 "two"를 "used"로 변경했지만 프런트 엔드에는 여전히 "two"가 표시됩니다.

답변

1

작성한 코드를 검토 한 후 나는 'get_post_meta'에 대한 구문이 현재 상황에서 정확하다는 것을 관찰했다. "two"를 "used"로 변경 한 후에도 여전히 프런트 엔드에 'two'가 표시되는 이유는 이러한 변경을 한 후에 해당 제품을 업데이트하지 않았기 때문입니다. 이전 사용자 정의 필드 값이 표시됩니다.

woocommerce_wp_select의 올바른 구문은 다음과 같습니다.

// Stock status 
     woocommerce_wp_select(array('id' => '_stock_status', 'label' => __('Stock status', 'woocommerce'), 'options' => array(
      'instock' => __('In stock', 'woocommerce'), 
      'outofstock' => __('Out of stock', 'woocommerce') 
     ), 'desc_tip' => true, 'description' => __('Controls whether or not the product is listed as "in stock" or "out of stock" on the frontend.', 'woocommerce'))); 

'때문에 inStock'와 'outofstock은'품절 '프런트 엔드에 표시되는 DB 및'재고 '와에 저장됩니다 옵션에 대한 값입니다.

관련 문제