woocommerce mysql выбор позиции заказа sku - PullRequest
0 голосов
/ 30 августа 2018
    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 = '_order_shipping' and p.ID = pm.post_id THEN pm.meta_value END ) as order_shipping,
    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
    order_id='54384'  
group by
    p.ID

как я могу добавить к предыдущему коду элементы sku, цену, цену продажи, кол-во, обычную цену и получить результат, сгруппированный по sku

вывод должен быть примерно таким (любезно запустите фрагмент)

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link type="text/css" rel="stylesheet" href="resources/sheet.css" >
<style type="text/css">.ritz .waffle a { color: inherit; }.ritz .waffle .s0{background-color:#ffffff;text-align:center;color:#000000;font-family:'Arial';font-size:10pt;vertical-align:bottom;white-space:nowrap;direction:ltr;padding:2px 3px 2px 3px;}.ritz .waffle .s2{background-color:#ffffff;text-align:right;color:#000000;font-family:'Arial';font-size:10pt;vertical-align:bottom;white-space:nowrap;direction:ltr;padding:2px 3px 2px 3px;}.ritz .waffle .s1{background-color:#ffffff;text-align:left;color:#000000;font-family:'Arial';font-size:10pt;vertical-align:bottom;white-space:nowrap;direction:ltr;padding:2px 3px 2px 3px;}</style><div class="ritz grid-container" dir="ltr"><table class="waffle" cellspacing="0" cellpadding="0"><thead><tr><th class="row-header freezebar-origin-ltr"></th><th id="1054657101C0" style="width:100px" class="column-headers-background">A</th><th id="1054657101C1" style="width:100px" class="column-headers-background">B</th><th id="1054657101C2" style="width:100px" class="column-headers-background">C</th><th id="1054657101C3" style="width:148px" class="column-headers-background">D</th><th id="1054657101C4" style="width:148px" class="column-headers-background">E</th><th id="1054657101C5" style="width:148px" class="column-headers-background">F</th><th id="1054657101C6" style="width:148px" class="column-headers-background">G</th><th id="1054657101C7" style="width:148px" class="column-headers-background">H</th><th id="1054657101C8" style="width:100px" class="column-headers-background">I</th><th id="1054657101C9" style="width:115px" class="column-headers-background">J</th><th id="1054657101C10" style="width:115px" class="column-headers-background">K</th><th id="1054657101C11" style="width:149px" class="column-headers-background">L</th><th id="1054657101C12" style="width:115px" class="column-headers-background">M</th><th id="1054657101C13" style="width:100px" class="column-headers-background">N</th><th id="1054657101C14" style="width:100px" class="column-headers-background">O</th><th id="1054657101C15" style="width:107px" class="column-headers-background">P</th><th id="1054657101C16" style="width:131px" class="column-headers-background">Q</th><th id="1054657101C17" style="width:130px" class="column-headers-background">R</th><th id="1054657101C18" style="width:149px" class="column-headers-background">S</th><th id="1054657101C19" style="width:131px" class="column-headers-background">T</th><th id="1054657101C20" style="width:100px" class="column-headers-background">U</th><th id="1054657101C21" style="width:123px" class="column-headers-background">V</th><th id="1054657101C22" style="width:100px" class="column-headers-background">W</th><th id="1054657101C23" style="width:100px" class="column-headers-background">X</th><th id="1054657101C24" style="width:100px" class="column-headers-background">Y</th><th id="1054657101C25" style="width:100px" class="column-headers-background">Z</th></tr></thead><tbody><tr style='height:20px;'><th id="1054657101R0" style="height: 20px;" class="row-headers-background"><div class="row-header-wrapper" style="line-height: 20px;">1</div></th><td class="s0" dir="ltr">sku</td><td class="s0" dir="ltr">order_id</td><td class="s0" dir="ltr">order_item</td><td class="s0" dir="ltr">product_price</td><td class="s0" dir="ltr">_regular_price</td><td class="s0" dir="ltr">_sale_price</td><td class="s0" dir="ltr">_product_qty</td><td class="s0" dir="ltr">post_date</td><td class="s1" dir="ltr">billing_email</td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 112px; left: -1px;">_billing_first_name</div></td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 112px; left: -1px;">_billing_last_name</div></td><td class="s1" dir="ltr">_billing_address_1</td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 112px; left: -1px;">_billing_address_2</div></td><td class="s1" dir="ltr">_billing_city</td><td class="s1" dir="ltr">_billing_state</td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 104px; left: -1px;">_billing_postcode</div></td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 128px; left: -1px;">_shipping_first_name</div></td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 127px; left: -1px;">_shipping_last_name</div></td><td class="s1" dir="ltr">_shipping_address_1</td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 128px; left: -1px;">_shipping_address_2</div></td><td class="s1" dir="ltr">_shipping_state</td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 120px; left: -1px;">_shipping_postcode</div></td><td class="s1" dir="ltr">order_total</td><td class="s1" dir="ltr">order_tax</td><td class="s1" dir="ltr">order_shipping</td><td class="s1" dir="ltr">paid_date</td></tr><tr style='height:20px;'><th id="1054657101R1" style="height: 20px;" class="row-headers-background"><div class="row-header-wrapper" style="line-height: 20px;">2</div></th><td class="s0" dir="ltr">b26.154</td><td class="s0" dir="ltr">54384</td><td class="s0" dir="ltr">coca cola</td><td class="s0" dir="ltr">50</td><td class="s0" dir="ltr">50</td><td class="s0" dir="ltr"></td><td class="s0" dir="ltr">1</td><td class="s0" dir="ltr">2018-07-31 12:55:39</td><td class="s1" dir="ltr">t@t.com</td><td class="s1" dir="ltr">jack</td><td class="s1" dir="ltr">mackfy</td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 146px; left: -1px;">London mailbox2201546</div></td><td class="s2" dir="ltr">3333</td><td class="s1" dir="ltr">london</td><td></td><td></td><td class="s1" dir="ltr">jack</td><td class="s1" dir="ltr">mackfy</td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 146px; left: -1px;">London mailbox2201546</div></td><td class="s2" dir="ltr">3333</td><td class="s1" dir="ltr">london</td><td></td><td class="s2" dir="ltr">500</td><td class="s2" dir="ltr">75.95</td><td class="s2" dir="ltr">60</td><td></td></tr><tr style='height:20px;'><th id="1054657101R2" style="height: 20px;" class="row-headers-background"><div class="row-header-wrapper" style="line-height: 20px;">3</div></th><td class="s0" dir="ltr">1635465</td><td class="s0" dir="ltr">54384</td><td class="s0" dir="ltr">pepsi</td><td class="s0" dir="ltr">100</td><td class="s0" dir="ltr">100</td><td class="s0" dir="ltr"></td><td class="s0" dir="ltr">1</td><td class="s0" dir="ltr">2018-07-31 12:55:39</td><td class="s1" dir="ltr">t@t.com</td><td class="s1" dir="ltr">jack</td><td class="s1" dir="ltr">mackfy</td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 146px; left: -1px;">London mailbox2201546</div></td><td class="s2" dir="ltr">3333</td><td class="s1" dir="ltr">london</td><td></td><td></td><td class="s1" dir="ltr">jack</td><td class="s1" dir="ltr">mackfy</td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 146px; left: -1px;">London mailbox2201546</div></td><td class="s2" dir="ltr">3333</td><td class="s1" dir="ltr">london</td><td></td><td class="s2" dir="ltr">500</td><td class="s2" dir="ltr">75.95</td><td class="s2" dir="ltr">60</td><td></td></tr><tr style='height:20px;'><th id="1054657101R3" style="height: 20px;" class="row-headers-background"><div class="row-header-wrapper" style="line-height: 20px;">4</div></th><td class="s0" dir="ltr">123154</td><td class="s0" dir="ltr">54384</td><td class="s0" dir="ltr">olive</td><td class="s0" dir="ltr">50</td><td class="s0" dir="ltr">50</td><td class="s0" dir="ltr"></td><td class="s0" dir="ltr">1</td><td class="s0" dir="ltr">2018-07-31 12:55:39</td><td class="s1" dir="ltr">t@t.com</td><td class="s1" dir="ltr">jack</td><td class="s1" dir="ltr">mackfy</td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 146px; left: -1px;">London mailbox2201546</div></td><td class="s2" dir="ltr">3333</td><td class="s1" dir="ltr">london</td><td></td><td></td><td class="s1" dir="ltr">jack</td><td class="s1" dir="ltr">mackfy</td><td class="s1 softmerge" dir="ltr"><div class="softmerge-inner" style="width: 146px; left: -1px;">London mailbox2201546</div></td><td class="s2" dir="ltr">3333</td><td class="s1" dir="ltr">london</td><td></td><td class="s2" dir="ltr">500</td><td class="s2" dir="ltr">75.95</td><td class="s2" dir="ltr">60</td><td></td></tr></tbody></table></div>
<script type='text/javascript' nonce='6pXheYrwVsOhMeF9A1OoNryJozw'>
function posObj(sheet, id, row, col, x, y) {
  var rtl = false;
  var sheetElement = document.getElementById(sheet);
  if (!sheetElement) {
    sheetElement = document.getElementById(sheet + '-grid-container');
  }
  if (sheetElement) {
    rtl = sheetElement.getAttribute('dir') == 'rtl';
  }
  var r = document.getElementById(sheet+'R'+row);
  var c = document.getElementById(sheet+'C'+col);
  if (r && c) {
    var objElement = document.getElementById(id);
    var s = objElement.style;
    var t = y;
    while (r && r != sheetElement) {
      t += r.offsetTop;
      r = r.offsetParent;
    }
    var offsetX = x;
    while (c && c != sheetElement) {
      offsetX += c.offsetLeft;
      c = c.offsetParent;
    }
    if (rtl) {
      offsetX -= objElement.offsetWidth;
    }
    s.left = offsetX + 'px';
    s.top = t + 'px';
    s.display = 'block';
    s.border = '1px solid #000000';
  }
};
function posObjs() {
};
posObjs();</script>

или, если вы считаете, что это может быть лучше, пожалуйста, дайте мне знать, основная идея состоит в том, чтобы привести каждую деталь, которая имеет отношение к номеру заказа,

Большое спасибо за то, что потратили время на помощь мне <3 </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...