我正在努力建立一个电子商务网站。我的经销商为我提供了一个实时XML数据源,因此我基本上可以在我的网站上显示他们的整个目录。我正在使用WP All Imports将此Feed解析为产品类别,这至少可以说很难。
在XML Feed中,他们提供{Price[1]}
这是他们的整个销售价格。我可以编写一个数学函数来增加这个xPath的数量吗?
例如
{Price[1]}*1.2
或
{{Price[1]}*1.2}
答案 0 :(得分:0)
是的,您可以在XPath 1.0中执行数学运算。例如,在您提供的XML文件中:
doc.xpath('//Item[ItemNo="AC45G"]/Price')
#=> <Price>422.83</Price>
doc.xpath('//Item[ItemNo="AC45G"]/Price/text()')
#=> 422.83
doc.xpath('//Item[ItemNo="AC45G"]/Price * 2')
#=> 845.66
doc.xpath('sum(//Price)')
#=> 2886778.14
doc.xpath('sum(//Price) * 2')
#=> 5773556.28
使用Ruby库Nokogiri进行测试,该库使用XPath下的非常标准的libxml2。
但是,WordPress“All Imports”插件仅显示use XPath for filtering。您最好的选择是尝试使用语法{Price[1] * 1.2}
并查看是否有效,因为{…}
似乎是XPath表达式的分隔符。您也可以尝试{Price[1]/text() * 1.2}
更明确。
答案 1 :(得分:0)
很抱歉发布这个答案花了这么长时间,但我想出了WordPress WP All Import产品标记问题。
首先,您必须将此脚本添加到主题功能页面(我选择将其添加到开头,这样我就不必在我想要更改标记的时候追逐它):
function add_markup($x) {
$markup = 1.2;
$y = $x * $markup;
return $y;
}
上述脚本会将您的产品标记为20%。只需编辑$ markup = 1.2;什么你想要你的保证金。确保将其输入1.a数字,这样会增加您的产品价格。这里不包括数字会降低产品价格的百分比。例如
function add_markup($x) {
$markup = 0.3;
$y = $x * $markup;
return $y;
}
将价格降低30%。
然后在WP All Imports WooCommerce Products页面的“常规价格($)”框中,您需要输入这个我输入括号和所有
的方式。[add_markup({Price[1]})]
答案 2 :(得分:0)
我想为你提供这个,因为我已经工作了很长一段时间,因为我没有解决方案。这真的是您需要的唯一解决方案。
有了这个,您可以告诉WP所有导入,当它导入产品时,它必须查看该项目属于哪个价格类别,然后设置分配的标记。
您可以下载&#34;自定义功能&#34; WordPress的插件,粘贴下面的@WilliamCornettPMP和@Phrogz说,导入时只需将[add_markup({Price[1]})]
放在价格字段中。
function add_markup($x) {
if ($x>0 && $x<500)
$markup=1.482;
else
if ($x>501 && $x<1000)
$markup=1.333;
else
if ($x>1001 && $x<4000)
$markup=1.231;
else
if ($x>4001 && $x<8000)
$markup=1.220;
else
if ($x>8001 && $x<10000)
$markup=1.197;
else
if ($x>10001 && $x<15000)
$markup=1.186;
else
if ($x>15001 && $x<20000)
$markup=1.186;
else
if ($x>20001 && $x<25000)
$markup=1.174;
else
if ($x>25000)
$markup=1.166;
return $x*$markup;
}