これは配送モジュールで、ローカル ピックアップの店舗ブランチを選択できます。ブランチは、データベースではなく csv にリストされます。
<?php
if ( ($n > 1) || ($n2 > 1) ) {
if ($quotes[$i]['id'] == 'localdelivery') {
if (file_exists($quotes[$i]['pricesL'])) {
echo '<td class="main" style="padding-right:15px;"><select name="locdeliv">';
$file_handle = fopen($quotes[$i]['pricesL'], "r");
while (!feof($file_handle)) {
$line_of_text = fgetcsv($file_handle, 1024);
echo '<option value="' . $line_of_text[1] . '">' . $line_of_text[0] . '</option>';
}
fclose($file_handle);
}
else {
echo '<td class="main"><select name="locdeliv"><option value="0">file missing</option>';
}
echo '</select></td>';
}
//else {
?>
それはうまくいきます。ユーザーに表示される配送の説明を示すコードは次のとおりです。
function quote($method = '') {
global $order;
$this->quotes = array('id' => $this->code,
'module' => MODULE_SHIPPING_LOCALDELIVERY_TEXT_TITLE,
'pricesL' => MODULE_SHIPPING_LOCALDELIVERY_PRICESFILE,
'methods' => array(array('id' => $this->code,
'title' => print $line_of_text[1],
'cost' => MODULE_SHIPPING_LOCALDELIVERY_COST)));
if ($this->tax_class > 0) {
$this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
}
if (tep_not_null($this->icon)) $this->quotes['icon'] = tep_image($this->icon, $this->title);
return $this->quotes;
}
この部分
'title' => print $line_of_text[1],
ユーザーがドロップダウン リストから選択した内容をエコーする必要があります。$file_handle など色々試してみたのですが、結果はいつも「1」になってしまいます。選択したドロップダウン値を「タイトル」に取得する簡単な方法はありますか? これにより、タイトルを後でデータベースに保存できます。他のモジュールでは、「タイトル」は言語ファイルから取得されるため、データベースから取得されることはなく、チェックアウトページはその行が何であるかを「気にしません」。データベースに保存されるため、選択されたオプションを確認できます行政で。CSV を使用する理由は、会社がブランチを頻繁に更新するためであり、これが頻繁に更新する最も簡単な方法です。