![](/img/trans.png)
[英](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.