В настоящее время я работаю с 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) . ')';
Но это ничего не возвращает. Кто-нибудь знает правильный способ достичь этого?
Вы знаете, откуда берется переменная $ value? Он не установлен в вашем коде и не включен в качестве глобального. – jmotes
Кроме того, я думаю, что вам не хватает вызова get_post_meta. – jmotes