私はPHPの初心者ですが、これを行う方法がわかりません。
カート内の同じ商品クラスの商品の数量に応じて、各商品の価格を変更しようとしています。たとえば、商品クラスが「フルーツ」で、「アップル」、「オレンジ」、「バナナ」などの10個のアイテムがあるとします。そして、どの組み合わせでも、最初のアイテムを$ 10、2番目のアイテムを$ 0、3番目のアイテムを$ 0にします。だから私は C Custom Price を使ってこのコードを試しましたが、うまくいきません。
$firstPrice = 10;
$secondPrice = 0;
$thirdPrice = 0;
if ($item->qty = 1) {
$item->price = $firstPrice;
}
elseif($item->qty = 2) {
$item->price = $secondPrice;
}
elseif ($item->qty = 3) {
$item->price = $thirdPrice;
}
明らかに$item->qty
は、単一のアイテム(同じノード)の数量です。では、カート内のこの製品クラス「フルーツ」のアイテムの数を使用して、これをどのように呼び出すことができますか? $item->price
は使用される最終価格です。
$item->qty
の値を比較する代わりに、各制御ステートメントでそれらを設定しているため、コードが間違っています。 =
を==
に置き換えます。
if ($item->qty == 1) {
$item->price = $firstPrice;
}
elseif($item->qty == 2) {
$item->price = $secondPrice;
}
elseif ($item->qty == 3) {
$item->price = $thirdPrice;
}
代入ステートメントは、代入された値を値として持つ式でもあるため、作成したコードは機能します。
IFステートメントを作成する代わりに、SWITCHステートメントを使用できます。
switch ($item->qty) {
case 1:
$item->price = $firstPrice;
break;
case 2:
$item->price = $secondPrice;
break;
case 3:
$item->price = $thirdPrice;
break;
}
@kiamlalunoのおかげで、私は自分の必要性のためにこのようになり、それは機能します。また this は役に立ちました
// Load the current shopping cart.
$items = uc_cart_get_contents($cid = NULL, $action = NULL);
// Count the number of items
$number_of_items = count($items);
$firstPrice = 10;
$secondPrice = 0;
$thirdPrice = 0;
switch ($number_of_items) {
case 0:
$item->price = $firstPrice;
break;
case 1:
$item->price = $secondPrice;
break;
case 2:
$item->price = $thirdPrice;
break;
}