我正在根据用户在产品价格中选择的选项查找产品价格的位置。例如this WooCommerce shop 具有根据用户选择更改价格的选项。
我想知道DB中存储的不同选项的价格在哪里。
谢谢
所有数据都不一样prices 产品自定义贴子类型的postmeta table.
查找post id 在您必须使用此查询的所有产品中posts table:
SELECT * FROM \'posts\' WHERE \'post_type\' = \'product\'
对于每个product id (post_id
), 您可以在上通过此查询检索所有相关数据postmeta table:SELECT * FROM \'postmeta\' WHERE \'post_id\' = nnnn
(nnnn是数字id(post_id
) 您将获得所有产品属性的列表metakey
和metavalues
. meta_key
(s) 例如,您有:_regular_price
_sale_price
_price
要获取产品meta\\u键的特定值,可以使用wordpress函数:
get_post_meta($post_id, \'$meta_key\');
正如LoicTheAztec所说,产品数据保存在POST和POSTETA表中。这里有一个查询,我以前在我的环境中获取价格(安装了基于WC角色的价格)
SELECT
wpp.ID,
wppm.meta_key AS FIELD,
wppm.meta_value AS VALUE,
wppm.*
FROM wp_posts AS wpp
LEFT JOIN wp_postmeta AS wppm
ON wpp.ID = wppm.post_id
WHERE wpp.post_type = \'product\'
AND (wppm.meta_key = \'_regular_price\'
OR wppm.meta_key = \'_sale_price\'
OR wppm.meta_key = \'_price\'
OR wppm.meta_key = \'_product_attributes\')
ORDER BY wpp.ID ASC, FIELD ASC, wppm.meta_id DESC;
也许这是有帮助的。Η中有三个meta\\u键postmeta 桌子
[ _sale_price, _regular_price, _price ]
第一个数组包含值,第二个数组包含WHERE条件。您可以添加更多条件。可以使用以下代码更新值。
//update _price
$wpdb->update(
$wpdb->postmeta,
array( \'meta_value\' => $default_product_price ),
array( \'meta_key\' => \'_price\' )
);
//update _regular_price
$wpdb->update(
$wpdb->postmeta,
array( \'meta_value\' => $default_product_price ),
array( \'meta_key\' => \'_regular_price\' )
);
//update _price
$wpdb->update(
$wpdb->postmeta,
array( \'meta_value\' => $default_sale_price ),
array( \'meta_key\' => \'_sale_price\' )
);
打印产品名称和价格。
SELECT distinct p.id, p.post_title,pm.meta_key, pm.meta_value
FROM {db_prefix}_postmeta pm
inner join {db_prefix}_posts p on p.id= pm.post_id
WHERE pm.meta_key = \'_sale_price\'