MAK*_*MAK 20 wordpress woocommerce
我有一个非常简单的问题.但它困扰了我很多.
任何人都可以告诉我,从WordPress woo-commerce网站下载订单后,订单及其中的所有内容都存储在数据库中.更准确的是,任何人都可以告诉我如何在不使用WC_Order类等woocommerce类的情况下获取我的送货地址?我的意思是我需要通过自定义数据库查询手动获取数据,但我无法在数据库中找到订单及其相关的所有内容?我知道订单存储在数据库中作为wp-posts表中的帖子,但其余部分是哪里,即送货地址账单地址等等?我希望我不要混淆任何人.
最好的祝福,
MAK
小智 28
订单是自定义帖子类型(CPT),因此它们存储在wp_posts表中.如果在post_type字段中搜索"shop_order",SQL将检索所有订单.
然后,您必须在wp_postmeta表中搜索所有记录,其中post_id与订单帖子的ID匹配.然后,您将在wp_postmeta表中找到的字段将是整个送货地址和帐单地址.
小智 7
此外,订单数据将存储在woocommerce_order_items和woocommerce_order_itemmeta表中(对于WooCommerce> 2.5我相信)这些表包含与客户购买的实际产品有关的内容.
shop_order帖子条目的post_id与woocommerce_order_items中的order_id相匹配.woocommerce_order_items中的order_item_id与woocommerce.order_itemmeta中的order_item_id相匹配.
select
p.ID as order_id,
p.post_date,
max( CASE WHEN pm.meta_key = '_billing_email' and p.ID = pm.post_id THEN pm.meta_value END ) as billing_email,
max( CASE WHEN pm.meta_key = '_billing_first_name' and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_first_name,
max( CASE WHEN pm.meta_key = '_billing_last_name' and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_last_name,
max( CASE WHEN pm.meta_key = '_billing_address_1' and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_address_1,
max( CASE WHEN pm.meta_key = '_billing_address_2' and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_address_2,
max( CASE WHEN pm.meta_key = '_billing_city' and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_city,
max( CASE WHEN pm.meta_key = '_billing_state' and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_state,
max( CASE WHEN pm.meta_key = '_billing_postcode' and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_postcode,
max( CASE WHEN pm.meta_key = '_shipping_first_name' and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_first_name,
max( CASE WHEN pm.meta_key = '_shipping_last_name' and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_last_name,
max( CASE WHEN pm.meta_key = '_shipping_address_1' and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_address_1,
max( CASE WHEN pm.meta_key = '_shipping_address_2' and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_address_2,
max( CASE WHEN pm.meta_key = '_shipping_city' and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_city,
max( CASE WHEN pm.meta_key = '_shipping_state' and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_state,
max( CASE WHEN pm.meta_key = '_shipping_postcode' and p.ID = pm.post_id THEN pm.meta_value END ) as _shipping_postcode,
max( CASE WHEN pm.meta_key = '_order_total' and p.ID = pm.post_id THEN pm.meta_value END ) as order_total,
max( CASE WHEN pm.meta_key = '_order_tax' and p.ID = pm.post_id THEN pm.meta_value END ) as order_tax,
max( CASE WHEN pm.meta_key = '_paid_date' and p.ID = pm.post_id THEN pm.meta_value END ) as paid_date,
( select group_concat( order_item_name separator '|' ) from wp_woocommerce_order_items where order_id = p.ID ) as order_items
from
wp_posts p
join wp_postmeta pm on p.ID = pm.post_id
join wp_woocommerce_order_items oi on p.ID = oi.order_id
where
post_type = 'shop_order' and
post_date BETWEEN '2015-01-01' AND '2015-07-08' and
post_status = 'wc-completed' and
oi.order_item_name = 'Product Name'
group by
p.ID
Run Code Online (Sandbox Code Playgroud)
来源在这里。
归档时间: |
|
查看次数: |
44025 次 |
最近记录: |