Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 产品id(多站点设置)_Php_Woocommerce - Fatal编程技术网

Php 产品id(多站点设置)

Php 产品id(多站点设置),php,woocommerce,Php,Woocommerce,我们正在构建一个脚本,用于对订单进行xml导出。在出口中,我们需要获得已订购产品的EAN代码。目前,我们使用WooCommerce获取产品信息,并从那里获取_sku 然而,我们注意到我们的多站点设置出现了一些问题 当从站点B订购产品时,我们有时无法获取订购产品的EAN代码,或者获取错误的EAN代码 这是因为如果我们使用脚本并询问WooCommerce->getOrder->getItems,我们会从站点A而不是站点B获取产品id。因此,当我们试图从订购的项目获取_sku信息时,它会寻找错误的产品

我们正在构建一个脚本,用于对订单进行xml导出。在出口中,我们需要获得已订购产品的EAN代码。目前,我们使用WooCommerce获取产品信息,并从那里获取_sku

然而,我们注意到我们的多站点设置出现了一些问题

当从站点B订购产品时,我们有时无法获取订购产品的EAN代码,或者获取错误的EAN代码

这是因为如果我们使用脚本并询问WooCommerce->getOrder->getItems,我们会从站点A而不是站点B获取产品id。因此,当我们试图从订购的项目获取_sku信息时,它会寻找错误的产品

我们如何确保脚本在我们获取订单信息时知道需要哪些sku,这样无论订单来自哪个站点,订单信息都是正确的

function bol_2020_custom_process_order_manual($order_id) {

    global $voorletters;
    $order = new WC_Order( $order_id );
    // $myuser_id = (int)$order->user_id;
    // $user_info = get_userdata($myuser_id);
    // $customer = new WC_Customer($order_id);
    $items = $order->get_items();

    $xml_order_id = $order_id;
    $xml_ORDER_DATE = date('Y-m-d');
    $xml_DELIVERY_START_DATE = '2017-09-07';
    $xml_DELIVERY_END_DATE = '2017-09-08';


    $xml_SUPPLIER_NAME = 'DOMAINNAME.nl';
    $xml_SUPPLIER_NAME2 = '';
    $xml_SUPPLIER_NAME3 = '';
    $xml_SUPPLIER_STREET = '**** 71A';
    $xml_SUPPLIER_ZIP = '******';
    $xml_SUPPLIER_CITY = '********';
    $xml_SUPPLIER_COUNTRY = 'NL';

    $xml_BUYUR_NAME = get_post_meta($order_id,'_shipping_first_name',true).' '.get_post_meta($order_id,'_shipping_last_name',true);
    $xml_BUYUR_NAME2 = get_post_meta($order_id,'_shipping_company',true);
    $xml_BUYUR_NAME3 = '';
    $xml_BUYUR_STREET = get_post_meta($order_id,'_shipping_address_1',true).' '.get_post_meta($order_id,'_shipping_address_2',true);
    $xml_BUYUR_ZIP = get_post_meta($order_id,'_shipping_postcode',true);
    $xml_BUYUR_CITY = get_post_meta($order_id,'_shipping_city',true);
    $xml_BUYUR_COUNTRY = get_post_meta($order_id,'_shipping_country',true);


    $imp = new DOMImplementation;
    $dtd = $imp->createDocumentType('ORDER', '', 'openTRANS_ORDER_1_0.dtd');
    $dom = $imp->createDocument("", "", $dtd);
    $dom->encoding = 'UTF-8';

    $root = $dom->appendChild($root = $dom->createElement('ORDER'));
        $order_version = $root->appendChild($dom->createAttribute('version'));
        $order_version->value = '1.0';
        $order_type = $root->appendChild($dom->createAttribute('type'));
        $order_type->value = 'standard';

    $root->appendChild($client = $dom->createElement('ORDER_HEADER'));

        $order_info = $client->appendChild($dom->createElement('ORDER_INFO'));

            $order_info->appendChild($ORDER_ID = $order_info->appendChild($dom->createElement('ORDER_ID')));
                $ORDER_ID->appendChild($dom->createTextNode($voorletters.$xml_order_id));

            $order_info->appendChild($ALT_CUSTOMER_ORDER_ID = $order_info->appendChild($dom->createElement('ALT_CUSTOMER_ORDER_ID')));
                $ALT_CUSTOMER_ORDER_ID->appendChild($dom->createTextNode(''));

            $order_info->appendChild($ORDER_DATE = $order_info->appendChild($dom->createElement('ORDER_DATE')));
                $ORDER_DATE->appendChild($dom->createTextNode($xml_ORDER_DATE));

            $DELIVERY_DATE = $order_info->appendChild($order_info->appendChild($dom->createElement('DELIVERY_DATE')));
                $DELIVERY_DATE_ATT = $DELIVERY_DATE->appendChild($dom->createAttribute('type'));
                $DELIVERY_DATE_ATT->value = 'fixed';

                $DELIVERY_START_DATE = $DELIVERY_DATE->appendChild($dom->createElement('DELIVERY_START_DATE'));
                    $DELIVERY_START_DATE->appendChild($dom->createTextNode($xml_DELIVERY_START_DATE));

                $DELIVERY_END_DATE = $DELIVERY_DATE->appendChild($dom->createElement('DELIVERY_END_DATE'));
                    $DELIVERY_END_DATE->appendChild($dom->createTextNode($xml_DELIVERY_END_DATE));

            $ORDER_PARTIES = $order_info->appendChild($order_info->appendChild($dom->createElement('ORDER_PARTIES')));

                $BUYER_PARTY = $ORDER_PARTIES->appendChild($dom->createElement('BUYER_PARTY'));

                    $PARTY_ID = $BUYER_PARTY->appendChild($dom->createElement('PARTY'));

                        $PARTY_ID_ = $PARTY_ID->appendChild($dom->createElement('PARTY_ID'));
                            $PARTY_ID__ATT = $PARTY_ID_->appendChild($dom->createAttribute('type'));
                            $PARTY_ID__ATT->value = 'ILN';
                        //$PARTY_ID_->appendChild($dom->createTextNode('4317784032988'));
                        $PARTY_ID_->appendChild($dom->createTextNode('4317784044110'));

                $SUPPLIER_PARTY = $ORDER_PARTIES->appendChild($dom->createElement('SUPPLIER_PARTY'));

                    $PARTY_ID = $SUPPLIER_PARTY->appendChild($dom->createElement('PARTY'));

                        $PARTY_ID_ = $PARTY_ID->appendChild($dom->createElement('PARTY_ID'));
                            $PARTY_ID__ATT = $PARTY_ID_->appendChild($dom->createAttribute('type'));
                            $PARTY_ID__ATT->value = 'ILN';
                        $PARTY_ID_->appendChild($dom->createTextNode('4317784000000'));

                $SHIPMENT_PARTIES = $ORDER_PARTIES->appendChild($dom->createElement('SHIPMENT_PARTIES'));

                    $DELIVERY_PARTY = $SHIPMENT_PARTIES->appendChild($dom->createElement('DELIVERY_PARTY'));

                        $PARTY = $DELIVERY_PARTY->appendChild($dom->createElement('PARTY'));

                            $PARTY_ID = $PARTY->appendChild($dom->createElement('PARTY_ID'));
                                $PARTY_ID_ATT = $PARTY_ID->appendChild($dom->createAttribute('type'));
                                $PARTY_ID_ATT->value = 'supplier_specific';
                            $PARTY_ID->appendChild($dom->createTextNode(''));

                            $ADDRESS = $PARTY->appendChild($dom->createElement('ADDRESS'));

                                $NAME = $ADDRESS->appendChild($dom->createElement('NAME'));
                                $NAME->appendChild($dom->createTextNode($xml_SUPPLIER_NAME));

                                $NAME2 = $ADDRESS->appendChild($dom->createElement('NAME2'));
                                $NAME2->appendChild($dom->createTextNode($xml_SUPPLIER_NAME2));

                                $NAME3 = $ADDRESS->appendChild($dom->createElement('NAME3'));
                                $NAME3->appendChild($dom->createTextNode($xml_SUPPLIER_NAME3));

                                $STREET = $ADDRESS->appendChild($dom->createElement('STREET'));
                                $STREET->appendChild($dom->createTextNode($xml_SUPPLIER_STREET));

                                $ZIP = $ADDRESS->appendChild($dom->createElement('ZIP'));
                                $ZIP->appendChild($dom->createTextNode($xml_SUPPLIER_ZIP));

                                $CITY = $ADDRESS->appendChild($dom->createElement('CITY'));
                                $CITY->appendChild($dom->createTextNode($xml_SUPPLIER_CITY));

                                $COUNTRY = $ADDRESS->appendChild($dom->createElement('COUNTRY'));
                                $COUNTRY->appendChild($dom->createTextNode($xml_SUPPLIER_COUNTRY));

                    $FINAL_DELIVERY_PARTY = $SHIPMENT_PARTIES->appendChild($dom->createElement('FINAL_DELIVERY_PARTY'));

                        $PARTY = $FINAL_DELIVERY_PARTY->appendChild($dom->createElement('PARTY'));

                            $PARTY_ID = $PARTY->appendChild($dom->createElement('PARTY_ID'));
                                $PARTY_ID_ATT = $PARTY_ID->appendChild($dom->createAttribute('type'));
                                $PARTY_ID_ATT->value = 'buyer_specific';
                            $PARTY_ID->appendChild($dom->createTextNode(''));

                            $ADDRESS = $PARTY->appendChild($dom->createElement('ADDRESS'));

                                $NAME = $ADDRESS->appendChild($dom->createElement('NAME'));
                                $NAME->appendChild($dom->createTextNode($xml_BUYUR_NAME));

                                $NAME2 = $ADDRESS->appendChild($dom->createElement('NAME2'));
                                $NAME2->appendChild($dom->createTextNode($xml_BUYUR_NAME2));

                                $NAME3 = $ADDRESS->appendChild($dom->createElement('NAME3'));
                                $NAME3->appendChild($dom->createTextNode($xml_BUYUR_NAME3));

                                $STREET = $ADDRESS->appendChild($dom->createElement('STREET'));
                                $STREET->appendChild($dom->createTextNode($xml_BUYUR_STREET));

                                $ZIP = $ADDRESS->appendChild($dom->createElement('ZIP'));
                                $ZIP->appendChild($dom->createTextNode($xml_BUYUR_ZIP));

                                $CITY = $ADDRESS->appendChild($dom->createElement('CITY'));
                                $CITY->appendChild($dom->createTextNode($xml_BUYUR_CITY));

                                $COUNTRY = $ADDRESS->appendChild($dom->createElement('COUNTRY'));
                                $COUNTRY->appendChild($dom->createTextNode($xml_BUYUR_COUNTRY));

            $PARTIAL_SHIPMENT_ALLOWED = $order_info->appendChild($order_info->appendChild($dom->createElement('PARTIAL_SHIPMENT_ALLOWED')));
            $PARTIAL_SHIPMENT_ALLOWED->appendChild($dom->createTextNode('False'));

            $TRANSPORT = $order_info->appendChild($order_info->appendChild($dom->createElement('TRANSPORT')));

                $INCOTERM = $TRANSPORT->appendChild($dom->createElement('INCOTERM'));
                $INCOTERM->appendChild($dom->createTextNode(''));

                $LOCATION = $TRANSPORT->appendChild($dom->createElement('LOCATION'));
                $LOCATION->appendChild($dom->createTextNode('EKD'));

                $TRANSPORT_REMARK = $TRANSPORT->appendChild($dom->createElement('TRANSPORT_REMARK'));
                $TRANSPORT_REMARK->appendChild($dom->createTextNode('10'));

            $REMARK_GENERAL = $order_info->appendChild($order_info->appendChild($dom->createElement('REMARK')));
                $REMARK_GENERAL_ = $REMARK_GENERAL->appendChild($dom->createAttribute('type'));
                $REMARK_GENERAL_->value = 'general';
            $REMARK_GENERAL->appendChild($dom->createTextNode('SUPERHANDIG.NL IS HÉT ADRES VOOR PROF. GEREEDSCHAP EN ACCESSOIRES!'));

            $REMARK_ORDER = $order_info->appendChild($order_info->appendChild($dom->createElement('REMARK')));
                $REMARK_ORDER_ = $REMARK_ORDER->appendChild($dom->createAttribute('type'));
                $REMARK_ORDER_->value = 'order';
            $REMARK_ORDER->appendChild($dom->createTextNode($voorletters.$xml_order_id));

    $ORDER_ITEM_LIST = $root->appendChild($client = $dom->createElement('ORDER_ITEM_LIST'));

        $i = 0;

        foreach ($items as $item) {



                $ean = get_post_meta($item['product_id'], '_sku'); // for single products
                $qty = $item['qty'];

                if(empty($ean[0])){
                    $ean = get_post_meta($item['variation_id'], '_sku'); // for variable products
                }




            $i++;
            $ORDER_ITEM = $ORDER_ITEM_LIST->appendChild($dom->createElement('ORDER_ITEM'));

            $LINE_ITEM_ID = $ORDER_ITEM->appendChild($dom->createElement('LINE_ITEM_ID'));
            $LINE_ITEM_ID->appendChild($dom->createTextNode($i));

            $ARTICLE_ID = $ORDER_ITEM->appendChild($dom->createElement('ARTICLE_ID'));

                $SUPPLIER_AID = $ARTICLE_ID->appendChild($dom->createElement('SUPPLIER_AID'));
                $SUPPLIER_AID->appendChild($dom->createTextNode(''));

                $INTERNATIONAL_AID = $ARTICLE_ID->appendChild($dom->createElement('INTERNATIONAL_AID'));
                    $INTERNATIONAL_AID_ = $INTERNATIONAL_AID->appendChild($dom->createAttribute('type'));
                    $INTERNATIONAL_AID_->value = 'EAN';
                $INTERNATIONAL_AID->appendChild($dom->createTextNode($ean[0]));

                $BUYER_AID = $ARTICLE_ID->appendChild($dom->createElement('BUYER_AID'));
                    $BUYER_AID_ = $BUYER_AID->appendChild($dom->createAttribute('type'));
                    $BUYER_AID_->value = 'BP';
                $BUYER_AID->appendChild($dom->createTextNode(''));

                $BUYER_AID = $ARTICLE_ID->appendChild($dom->createElement('BUYER_AID'));
                    $BUYER_AID_ = $BUYER_AID->appendChild($dom->createAttribute('type'));
                    $BUYER_AID_->value = 'IN';
                $BUYER_AID->appendChild($dom->createTextNode(''));

                $DESCRIPTION_SHORT = $ARTICLE_ID->appendChild($dom->createElement('DESCRIPTION_SHORT'));
                $DESCRIPTION_SHORT->appendChild($dom->createTextNode(''));

            $QUANTITY = $ORDER_ITEM->appendChild($dom->createElement('QUANTITY'));
            $QUANTITY->appendChild($dom->createTextNode($qty));

            $ORDER_UNIT = $ORDER_ITEM->appendChild($dom->createElement('ORDER_UNIT'));
            $ORDER_UNIT->appendChild($dom->createTextNode('C62'));

        }


    $ORDER_SUMMARY = $root->appendChild($client = $dom->createElement('ORDER_SUMMARY'));

        $TOTAL_ITEM_NUM = $ORDER_SUMMARY->appendChild($dom->createElement('TOTAL_ITEM_NUM'));
        $TOTAL_ITEM_NUM->appendChild($dom->createTextNode($i));


    $dom->formatOutput = true;
    $dom->save($_SERVER['DOCUMENT_ROOT'].'/ede_orders/xml/'.$voorletters.$xml_order_id.'.xml');



}

显示发送订单数据的代码,显示接收此订单数据并更新订单详细信息的代码。请将相关代码部分复制并粘贴到您的问题中。我无法访问您的要点,因为我需要登录。嗨,马丁,感谢您迄今为止的支持!