首页 > 解决方案 > 读取 XML 数据并更新变量数量

问题描述

正如标题所说,我想从 XML 文件更新 woocommerce 产品变体数量,使用 SKU 作为公分母。

以下是我到目前为止的代码:

<?php
$xmldata = simplexml_load_file("URL_REMOVED") or die("Failed to load");

$dproduct_id = null;
$dsku = null;
$dqty = null;

foreach($xmldata->children() as $prod) {         
 $dsku = $prod->sku;       
 $dqty = $prod->qty; 

$idfromsku = wc_get_product_id_by_sku( $dsku );

echo $idfromsku;

}

以下是 XML 数据的示例:

<products>
<product>
<sku>D0001B</sku>
<qty>100</qty>
</product>
</products>

我的逻辑是“对于每个产品,将 $dsku 设置为 sku 的值,并将 $dqty 设置为 qty 的值”,确实如此,但我正在努力从 sku 获取产品 ID。

PHP 不是我最擅长的语言,所以这里的任何帮助将不胜感激。

干杯 D

标签: phpxmlwordpresswoocommerce

解决方案


一个常见的问题是,尽管您的数据看起来好像是一个字符串。当你做echo一些事情时——这会自动将输出转换为字符串,并可能调用__toString()类中的方法,所以它看起来还不错。在您的示例中

$dsku = $prod->sku;

如果您转储值 ( var_dump()),您应该会发现它是 SimpleXMLElement 的一个实例。因此,如果您想将此值传递给一个函数,就像wc_get_product_id_by_sku()您需要强制它成为一个字符串...

$idfromsku = wc_get_product_id_by_sku( (string)$dsku );

推荐阅读