プロが教える店舗&オフィスのセキュリティ対策術

PHPに関して素人なのですが、是非お力をお貸し下さいませ。

下記の内容は「商品番号」が「B001」なら「700円」がプラスされる仕組みです。
そして「B001」以外なら「0円」がプラスされるようになっております。
ここまでは問題なく動作しているのですが、この内容を、
「商品番号にBが含まれていたら700円プラス」に変更する場合はどのように記述したらよいでしょうか?

EC-CUBEをカスタマイズしていたのですが、
なにぶん素人ですので上手くできませんでした。
是非どなたかご教授下さいませ。
------------------------------------------------------
// 送料カテゴリごとの個別設定
$arrProductsFee = array();
foreach ($objPage->arrProductsClass as $item) {
switch ($item['product_code']) {
case 'B001':
$arrProductsFee[$item['product_code']] = 700;
break;
default:
$arrProductsFee[$item['product_code']] = 0;
}
}
$arrData['deliv_fee'] += array_sum($arrProductsFee);
------------------------------------------------------

何卒宜しくお願い致します。

A 回答 (2件)

たとえばpreg_match



<?
$arrProductsFee = array();
$pattern="/B/";
foreach ($objPage->arrProductsClass as $item) {
$arrProductsFee[$item['product_code']] = 0;
if(preg_match($pattern,$item['product_code'])) {
$arrProductsFee[$item['product_code']] = 700;
}
}
$arrData['deliv_fee'] += array_sum($arrProductsFee);
?>

もし、Bがbでもマッチしたいなら
$pattern="/B/i";

もし、Bで始まるものにマッチしたいなら
$pattern="/^B/";
    • good
    • 0
この回答へのお礼

見事に問題が解決致しました。
本当にありがとうございました。
わずか7分で的確かつ丁寧なコメントを頂けるとは思いませんでした。

あとはこの「商品番号にBが含まれている商品」単体がカートに入ったら700円はプラスされないようにする・・・という最後の問題と戦っていますが、こちらはEC-CUBEに関する新しい質問を立てようかと思っております。
ありがとうございました。

お礼日時:2010/02/25 14:40

switch{~}を


if (strpos($item['product_code'],'B')>0) $arrProductsFee[$item['product_code']] = 700;
とすればいいと思います。
    • good
    • 0
この回答へのお礼

素早い回答ありがとうございます。
こちらの方法では上手くいきませんでしたが、参考になりました。
ありがとうございました。

お礼日時:2010/02/25 14:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!