現在作成しているのがテストサイトでデバックでコードを表示させてもいいのであれば、まずは
public function checkMailDeliverAvailable($productTypeId, &$objCartSession)
{
$available = false;
// カート内の情報を取得
$items = $objCartSession->getCartList($productTypeId);
if (count(array_keys($items))) {
$available = true;
foreach (array_keys($items) as $key) {
$item = & $items[$key];
$product = & $item['productsClass'];
if ($product['mail_deliver_enabled'] === MAIL_DELIVER_ENABLED) {
continue;
} else {
$available = false;
}
}
}
return $available;
}
このソースを
public function checkMailDeliverAvailable($productTypeId, &$objCartSession)
{
$available = false;
// カート内の情報を取得
$items = $objCartSession->getCartList($productTypeId);
if (count(array_keys($items))) {
$available = true;
foreach (array_keys($items) as $key) {
$item = & $items[$key];
$product = & $item['productsClass'];
echo $product['mail_deliver_enabled']." === ".MAIL_DELIVER_ENABLED."<BR>";
if ($product['mail_deliver_enabled'] === MAIL_DELIVER_ENABLED) {
echo $product['product_id']."<BR>";
echo "mail_deliver true<BR>";
continue;
} else {
echo $product['product_id']."<BR>";
echo "mail_deliver false<BR>";
$available = false;
}
}
}
return $available;
}
このように途中のデータを出力させて
どの部分が原因でうまく動かないかを確認するのがいいと思います。
おそらくfunction checkMailDeliverAvailableの部分とは思いますが、順番にどの部分はうまく動いていて、どの部分がうまく動いてないのかを判断するのが必要ですので、順に処理をチェックしていってください