Php 当变量与WooCommerce中的ACF自定义字段匹配时获取Json数据

Php 当变量与WooCommerce中的ACF自定义字段匹配时获取Json数据,php,json,wordpress,woocommerce,advanced-custom-fields,Php,Json,Wordpress,Woocommerce,Advanced Custom Fields,我试图从json文件中获取数据,并将其加载到我的WooCommerce网站中。我想得到的价格从匹配的名称的产品的网站,我爬网 我需要产品名称与我添加到Wordpress产品页面的产品页面中添加的值高级自定义字段相匹配,然后如果名称与我添加的属性相匹配,则获取价格 下面的代码部分工作,但由于某些原因,对高级自定义字段值的调用不起作用。它显示文本的值,而不是将其与json中的名称字段相匹配。有什么建议吗 $str = file_get_contents('http://gold.exploretha

我试图从json文件中获取数据,并将其加载到我的WooCommerce网站中。我想得到的价格从匹配的名称的产品的网站,我爬网

我需要产品名称与我添加到Wordpress产品页面的产品页面中添加的值高级自定义字段相匹配,然后如果名称与我添加的属性相匹配,则获取价格

下面的代码部分工作,但由于某些原因,对高级自定义字段值的调用不起作用。它显示文本的值,而不是将其与json中的名称字段相匹配。有什么建议吗

$str = file_get_contents('http://gold.explorethatstore.com/wp-content/themes/divi-ETS-child-theme/run_results_apmex.json');

// decode JSON
$json = json_decode($str, true);

// default value
$coinPrice = "Not Available";
$vendorName = the_field('apmex_vendor_name');
// loop the json array
foreach ($json['coin'] as $value){
    // check the condition
    if ($value['name'] == $vendorName){
        $coinPrice = $value['price']; // get the price
        break; // exit the loop
    }
}

echo $coinPrice;

使用
$vendorName=_字段('apmex_vendorName')将不起作用,因为ACF函数等效于
echo get_field()如果要在变量中设置值,则该选项无效

相反,您只需使用:

现在它应该可以工作了


您的代码的其余部分似乎是正确的(我已经对其进行了测试).

这里的问题是什么。。。。_字段(“apmex_供应商名称”)是否不起作用?因为foreach在我的测试中工作正常,所以结果是“apmex\u vendor\u name”的值打印在“notavailable”旁边,而不是返回与“apmex\u vendor\u name”字段匹配的对象名称的结果。我说得通吗?天哪,我真不敢相信我错过了。非常感谢你。它工作得很好。谢谢,谢谢!!再次感谢,我正在修改一点,以匹配结构稍有不同的json文件。当像这样识别json时,是否存在层次结构?或者php可以用来识别一个对象的“名称”吗?好吧,那么我遇到的最后一个问题是这个json文件,它的结构与我问题中的第一个稍有不同:我猜我的原始php不能处理这个文件,那么我的$value会改变吗?我只是不明白为什么它不是相同的函数。我如何确保你明白这个问题?好的,我在这里问了:
$vendorName = get_field('apmex_vendor_name');