[英](mysql) Get woocommerce Order by meta_key and product_id
[英]How to get the product Id from a meta key and a meta value in WooCommerce
我是編碼新手。 但我這樣做並得到了預期的一系列值。 極好的!
$thearray= get_post_meta( $product, $metakey, true );
如果我有 meta_value(當然還有 key)並且想要 post_ids 作為一個數組呢?
謝謝
您無法從定義的元鍵和元值中獲取帖子 ID ,因為許多帖子 ID 可以具有相同的元鍵和元值。
僅當元鍵的元值唯一時,您才可以使用自定義 SQL 查詢,例如:
function get_post_id_from_meta( $meta_key, $meta_value ) {
return $wpdb->get_var( $wpdb->prepare("
SELECT post_id
FROM {$wpdb->prefix}postmeta
WHERE meta_key = '%s'
AND meta_value = '%s'",
$meta_key, $meta_value ) );
}
它應該可以工作(僅當元鍵的元值是唯一的時)。
示例用法:
$post_id = get_post_id_from_meta( '_color', 'Red' );
從WC_product
Object 獲取元數據
使用WC_product
Object 使用WC_Data
方法get_meta()
從定義的元鍵:
$value = $product->get_meta('some_meta_key');
從 Post Id (或產品 Id)獲取元數據
使用 WordPress get_post_meta()
function 來自已定義元鍵的產品 ID:
$value = get_post_meta( $product_id, 'some_meta_key', true );
在這兩種情況下some_meta_key
都需要用正確的所需元密鑰替換。
謝謝你。 鑰匙是獨一無二的,是的。 但我在掙扎。 我不能確定我在這里得到了任何價值。 一條記錄將此作為元值:a:3:{i:0;s:9:"Sri Lanka";i:1;s:5:"Tonga";i:2;s:19:"Trinidad and Tobago ";}
而notship是關鍵。
我使用了您的代碼並添加了這樣的功能:
add_action( 'woocommerce_before_main_content', 'trying');
function trying(){
$post_id = get_post_id_from_meta( 'notship', 'Tonga' );
?><span class="notshipped"><?php echo "Testing ",$post_id?></span><?php
}
卻一無所獲。 我還添加了全局 $wpdb 以避免運行時出現錯誤按摩。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.