2013-08-02 3 views
1

В настоящее время я работаю с Woocommerce. следующий код в настоящее время добавить это цена, изменение в раскрывающемся меню на странице продукта:Варианты woocommerce - добавить post_meta в раскрывающееся меню

function display_price_in_variation_option_name($term) { 
global $wpdb, $product; 

$result = $wpdb->get_col("SELECT slug FROM {$wpdb->prefix}terms WHERE name = '$term'"); 

$term_slug = (!empty($result)) ? $result[0] : $term; 


$query = "SELECT postmeta.post_id AS product_id 
      FROM {$wpdb->prefix}postmeta AS postmeta 
       LEFT JOIN {$wpdb->prefix}posts AS products ON (products.ID = postmeta.post_id) 
      WHERE postmeta.meta_key LIKE '_wholesale_price%' 
       AND postmeta.meta_value = '$term_slug' 
       AND products.post_parent = $product->id"; 

$variation_id = $wpdb->get_col($query); 

$parent = wp_get_post_parent_id($variation_id[0]); 

if ($parent > 0) { 
    $_product = new WC_Product_Variation($variation_id[0]); 
    return $term . ' (' . woocommerce_price($_product->get_price()) . ')'; 
} 
return $term; 

} 

Я хотел бы изменить следующую строку:

return $term . ' (' . woocommerce_price($_product->get_price()) . ')'; 

Вместо того, что тяговое в цене, я хотел бы чтобы показать custom_meta, который уже сохранен.

Я попытался заменить выше с:

return $term . ' (' . get_post_meta(get_the_ID(), '_wholesale_price', true) . ')'; 

Но это ничего не возвращает. Кто-нибудь знает правильный способ достичь этого?

ответ

0

Я сведущий, чтобы решить эту проблему, выполнив следующие действия:

return $term . ' (' . $value['data']->variation_id, '_wholesale_price', true) . ')'; 
+0

Вы знаете, откуда берется переменная $ value? Он не установлен в вашем коде и не включен в качестве глобального. – jmotes

+0

Кроме того, я думаю, что вам не хватает вызова get_post_meta. – jmotes

0

Вам нужно сначала получить данные, если они находятся вне цикла. Попробуйте это:

global $post; 
return $term . ' (' . get_post_meta($post->ID, '_wholesale_price', true) . ')'; 
+0

Привет это не работает для изменения идентификатора. Это возвращает идентификатор основного сообщения. – danyo