나는 어떻게 처리해야할지 모르겠다는 흥미로운 문제가있다. 최신 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] . "' />";
}
}