XML的Woocommerce Live PHP订单提要

时间:2018-11-14 12:12:18

标签: php xml wordpress woocommerce feed

好的,所以在过去的几个小时里,我一直在努力使自己了解API,但似乎也行不通,这似乎是按特定顺序或在特定位置输出订单详细信息的唯一方法最不相似的是JSON,但我需要XML。

这是我需要的格式:

<div id={"map"} > 

最终目标是使此脚本每小时在CRON作业上运行以提取所有订单。

谢谢您的帮助/建议。

1 个答案:

答案 0 :(得分:0)

所以我弄清楚了,这是我将来对任何可能需要帮助通过XML获取Woocommerce订单数据的人的解决方案。

这是您可以获取哪种数据的基本示例:

<?php


header('Content-type: text/xml');
header('Pragma: public');
header('Cache-control: private');
header('Expires: -1');
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";

    include(__DIR__ . "/../wp-load.php");
    global $woocommerce;

    $filters = array(
        'post_status' => 'any',
        'post_type' => 'shop_order',
        'posts_per_page' => -1,
        'paged' => 1,
        'orderby' => 'modified',
        'order' => 'ASC'
    );

    $loop = new WP_Query($filters);

    while ($loop->have_posts()) {

        $loop->the_post();

        $order = new WC_Order(get_the_ID());
        $customer = new WC_Customer($order->get_order_number());        

        foreach ($order->get_items() as $key => $lineItem) {

            $output .= '<xml>';
            $output .= '<paymentInfo>';
            $output .= '<method>' . $order->payment_method . '</method>';
            $output .= '</paymentInfo>';
            $output .= '<personalDetails>';
            $output .= '<firstName>' . $order->billing_first_name . '</firstName>';
            $output .= '<lastName>' . $order->billing_last_name . '</lastName>';
            $output .= '</personalDetails>';

            $output .= '<item>';
            $output .= '<productId>' . $lineItem['product_id'] . '</productId>';
            $output .= '<quantity>' . $lineItem['quantity'] . '</quantity>';
            $output .= '<name>' . $lineItem['name'] . '</name>';
            $output .= '<subtotal>' . $order->cart_tax . '</subtotal>';
            $output .= '<subtotalTax>' . $order->total_tax . '</subtotalTax>';
            $output .= '</item>';

           $output .= '</xml>';

           echo $output;

        }
    }
?>

输出:

<xml>
  <paymentInfo>
    <method>other</method>
  </paymentInfo>
  <personalDetails>
    <firstName>first K</firstName>
    <lastName>second K</lastName>
  </personalDetails>
  <item>
    <productId>561</productId>
    <quantity>1</quantity>
    <name>
      Woodlets Premium Wood Pellets - Full Pallet - 980kg
    </name>
    <subtotal>0</subtotal>
    <subtotalTax>0</subtotalTax>
  </item>
</xml>