IF と WHEN を利用する XML/XSLT ドキュメントを作成する必要があります。PHP のこれらのステートメント (if/else ではありますが) はよく知っていますが、XML/XSLT には慣れていません。
たとえば、私は製品を持っています。製品には 2 つの名前の可能性があります: 1) ラミネート加工された名刺 2) 名刺
オプション 1 の場合、その注文のカスタム オプションの値を取得し、次のようにエコーする必要があります。
<xsl:choose>
<xsl:when test="custom_options/option[name='Lamination Options (Your printing looks great unlaminated, if you wish you can add gloss or matt lamination below)']/value='Matt Lamination (Both sides)'">
<Extrinsic name="Laminating?">Matt Lam DS SRA3</Extrinsic>
</xsl:when>
<xsl:when test="custom_options/option[name='Lamination Options (Your printing looks great unlaminated, if you wish you can add gloss or matt lamination below)']/value='Gloss Lamination (Both sides)'">
<Extrinsic name="Laminating?">Gloss Lam DS SRA3</Extrinsic>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
したがって、製品の名前にラミネート加工という単語が含まれているかどうかを確認し、別の if ステートメントを実行しない場合は別の if ステートメントを実行する必要があるため、PHP の場合は次のようになります。
<?php $product = "Laminated Business Cards";
if(strpos($product,'Laminated')){
if(value of custom option == 'Matt Laminated'){
echo "Matt Lam";
} elseif(value of custom option == 'Gloss Laminated'){
echo "Gloss Lam";
} else echo "No Lamination";
} elseif(value of custom option == 'Matt Laminated +2days'){
echo "Matt Lam";
} elseif(value of custom option == 'Gloss Laminated +2days'){
echo "Gloss Lam";
} else
echo "No Lamination";
?>
したがって、それを XSLT/XML で再現する必要があります。少し面倒なことはわかっていますが、このルートを取る以外に選択肢がほとんどない、設計が不十分なシステムの制約内で作業しています。
乾杯。