2017-11-07 7 views
0

나는 어떻게 처리해야할지 모르겠다는 흥미로운 문제가있다. 최신 Woocommerce REST API를 사용하여 메타 데이터를 푸시하려고합니다. 내가 PHP에서 구걸하고 결과를 출력 할 때, 분명히 올바르게 추가 된 것을 볼 수 있습니다.Woocommerce REST API - 관리 제품 페이지에 단일 문자로 표시되는 맞춤 meta_data?

[meta_data] => Array 
    (
     [0] => Array 
      (
       [id] => 108536 
       [key] => _product_size_guide 
       [value] => thevalue 
      ) 

    ) 

이것은 훌륭합니다. 정확하게하고 싶습니다. 그러나 WP Admin을 사용하여 제품에 들어가면 저장된 값이 첫 글자처럼 나타납니다. 이 경우 "t"와 그 밖의 것은 없습니다. 공개 제품 페이지에서도 이와 같이 표시됩니다. 간단한 텍스트 필드입니다.

"t"이상 입력하고 저장하면 값이 올바르게 저장됩니다. 프런트 엔드에 표시해야합니다.

마치 REST API에서 푸시 된 meta_data가 wordpress에서 올바르게 꺼내지지 않는 것처럼 보입니다 ... 그래서 여기에서 내 머리카락을 꺼내는 원인이 무엇인지 묻고 있습니까?

공식 woocommerce PHP 랩퍼를 사용하고 있습니다.

내 functions.php :

add_action('woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields'); 

add_action('woocommerce_process_product_meta', 'woo_add_custom_general_fields_save'); 

function woo_add_custom_general_fields() { 
    global $woocommerce, $post; 
    echo '<div class="options_group">'; 
    ?> 
    <p class="form-field custom_field_type"> 
     <label for="custom_field_type"><?php echo __('Product Size Guide', 'woocommerce'); ?></label> 
     <span class="wrap"> 
      <?php $custom_field_type = get_post_meta($post->ID, '_product_size_guide', true); ?> 
      <input placeholder="<?php _e('URL to Size Guide', 'woocommerce'); ?>" class="" type="text" name="_size_guide" value="<?php echo $custom_field_type[0]; ?>" style="width: 180px;" /> 
     </span> 
     <span class="description"><?php _e('Image used for the size guide!', 'woocommerce'); ?></span> 
    </p> 
    <?php 
    echo '</div>'; 

} 
function woo_add_custom_general_fields_save($post_id){ 
    // Custom Field 
    $custom_field_type = array(esc_attr($_POST['_size_guide'])); 
    update_post_meta($post_id, '_product_size_guide', $custom_field_type); 

} 

//SUCCESSFULL WOOCOMMERCE SCIENCE 
add_filter('woocommerce_product_tabs', 'woo_new_product_tab'); 
function woo_new_product_tab($tabs) { 

    // Adds the new tab 

    $tabs['size-gude'] = array(
     'title'  => __('Size Guide', 'woocommerce'), 
     'priority' => 50, 
     'callback' => 'woo_new_product_tab_content' 
    ); 

    return $tabs; 

} 
function woo_new_product_tab_content() { 

    // The new tab content 

    echo '<h2>Size guide for garment</h2>'; 
    $getSizeLink =get_post_meta(get_the_ID(), '_product_size_guide', true); 
    if(empty($getSizeLink[0])){ 
    echo "No Size Guide Available."; 
    }else{ 
    echo "<img src='" . $getSizeLink[0] . "' />"; 
    } 
} 

답변

0

대답은 내가 바보 인 것을이었다. 예를 들어, 한 번에 몇 가지 다른 사용자 정의 필드를 저장하는 배열을 사용하여 일하고 있었는데, 나는 단지 배열과 반대로 배열 포인트를 호출하고있었습니다. 예 :

$custom_field_type[0] 

대신

$custom_field_type 

의 DERP 것에 대해 죄송합니다! 나는 이것이 내가 어리석은 다른 사람들을 도왔 으면 좋겠다.