/** * 配送住所のプルダウン用連想配列を取得する. * * 会員ログイン済みの場合は, 会員登録住所及び追加登録住所を取得する. * 非会員の場合は, 「お届け先の指定」画面で入力した住所を取得する. * * @param Customer $objCustomer Customer インスタンス * @param PurchaseHelper $objPurchase PurchaseHelper インスタンス * @param AddressHelper $objAddress * @return array 配送住所のプルダウン用連想配列 */ public function getDelivAddress(Customer &$objCustomer, PurchaseHelper &$objPurchase, AddressHelper &$objAddress) { $masterData = Application::alias('eccube.db.master_data'); $arrPref = $masterData->getMasterData('mtb_pref'); $arrResults = array('' => '選択してください'); // 会員ログイン時 if ($objCustomer->isLoginSuccess(true)) { $addr = array(array('other_deliv_id' => NULL, 'customer_id' => $objCustomer->getValue('customer_id'), 'name01' => $objCustomer->getValue('name01'), 'name02' => $objCustomer->getValue('name02'), 'kana01' => $objCustomer->getValue('kana01'), 'kana02' => $objCustomer->getValue('kana02'), 'zip01' => $objCustomer->getValue('zip01'), 'zip02' => $objCustomer->getValue('zip02'), 'pref' => $objCustomer->getValue('pref'), 'addr01' => $objCustomer->getValue('addr01'), 'addr02' => $objCustomer->getValue('addr02'), 'tel01' => $objCustomer->getValue('tel01'), 'tel02' => $objCustomer->getValue('tel02'), 'tel03' => $objCustomer->getValue('tel03'))); $arrAddress = array_merge($addr, $objAddress->getList($objCustomer->getValue('customer_id'))); foreach ($arrAddress as $val) { $other_deliv_id = Utils::isBlank($val['other_deliv_id']) ? 0 : $val['other_deliv_id']; $arrResults[$other_deliv_id] = $val['name01'] . $val['name02'] . ' ' . $arrPref[$val['pref']] . $val['addr01'] . $val['addr02']; } // 非会員 } else { $arrShippings = $objPurchase->getShippingTemp(); foreach ($arrShippings as $shipping_id => $val) { $arrResults[$shipping_id] = $val['shipping_name01'] . $val['shipping_name02'] . ' ' . $arrPref[$val['shipping_pref']] . $val['shipping_addr01'] . $val['shipping_addr02']; } } return $arrResults; }