下面这句话对我来说毫无意义。我很难理解为什么这会导致“免费送货”。有人能详细解释一下解释吗?
%%[
var @statusTier, @amount, @freeShipping
set @statusTier = "Bronze"
set @amount = 300
if @statusTier == "Bronze" or @statusTier == "Silver" and @amount > 500 then
set @freeShipping = true
endif
]%%
<p>You %%=Iif(@freeShipping == true, "qualify","do not qualify")=%% for free shipping.</p>
Output:
The join operators in the above if statement will be evaluated as a single expression and will produce the following result:
<p>You qualify for free shipping.</p>根据我的理解,300的设置值不是> 500,因此这不应该是一个真正的语句,并且应该输出“您不符合免费传送的条件”。我漏掉了什么吗?请帮帮忙,我是AMPscript的新手,对JavaScript知之甚少。
原版AMPSCRIPT指南:https://ampscript.guide/controlling-expression-evaluation/
,谢谢您的提前输入!
发布于 2022-12-02 22:17:41
ampscript指南文章中的示例是演示操作顺序。
当OR条件周围没有括号时,代码将计算为true,因为它将整个条件看作一个表达式。
添加括号时的:
if (@statusTier == "Bronze" or @statusTier == "Silver") and @amount > 500首先计算()中的OR条件,然后计算and条件。这将以false的形式出现,因为@ result实际上小于500。
https://stackoverflow.com/questions/74661845
复制相似问题