WooCommerce为数据库中的位置定价

时间:2016-01-27 作者:sali

我正在根据用户在产品价格中选择的选项查找产品价格的位置。例如this WooCommerce shop 具有根据用户选择更改价格的选项。

我想知道DB中存储的不同选项的价格在哪里。

谢谢

4 个回复
SO网友:LoicTheAztec

所有数据都不一样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) 您将获得所有产品属性的列表metakeymetavalues.
相关价格meta_key(s) 例如,您有:_regular_price
-_sale_price
-_price
-…

要获取产品meta\\u键的特定值,可以使用wordpress函数:

get_post_meta($post_id, \'$meta_key\');

SO网友:Marcel Lange

正如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;
也许这是有帮助的。

SO网友:Umair Idrees

Η中有三个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\' )
);

SO网友:Albert S.

打印产品名称和价格。

 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\'

相关推荐