Zen Cartで、言語によって都道府県又は、State/Provinceのプルダウンメニュー表示非表示を切り替える

Zen Cartの都道府県や海外の州などの選択が邪魔

ZenCart 1.3.8a – 1.5.1
日本国内では配送モジュールで都道府県から送料を算出しているので、ドロップダウンメニューが必要。

 
しかし海外対応にした際に、State/Provinceとでてドロップダウンをクリックしても、アメリカ以外は州などが選べない。

 
言語によって表示・非表示を切り替える。
大規模カスタマイズになると、チェック部分などに問題が発生するので、あえて小規模なとりあえずカスタマイズにしておく。日本語ができて英語ができない台湾人などには対応できないが、その場合は、日本語ページで外国在住用、日本在住用・英語ページ外国在住用の3つに分ける手間が必要となる。

 

Zen Cartの送料カスタマイズ

触る場所は、

includes/templates/template_default/templates/tpl_modules_create_account.php

85行目~110行目辺り。

<?php
if (ACCOUNT_STATE == ‘true’) {
$country_zones_pull_down = array();
if ($flag_show_pulldown_states == true) {
$country_zones_pull_down = zen_prepare_country_zones_pull_down($selected_country);
?>
<label class=”inputLabel” for=”stateZone” id=”zoneLabel”><?php echo ENTRY_STATE; ?></label>
<?php
echo zen_draw_pull_down_menu(‘zone_id’, $country_zones_pull_down, $zone_id, ‘id=”stateZone”‘);
if (zen_not_null(ENTRY_STATE_TEXT)) echo ‘&nbsp;<span class=”alert”>’ . ENTRY_STATE_TEXT . ‘</span>’;
?>
<br class=”clearBoth” id=”stBreak” />
<?php }
?>
<label class=”inputLabel” for=”state” id=”stateLabel”><?php echo $state_field_label; ?></label>
<?php
echo zen_draw_input_field(‘state’, ”, zen_set_field_length(TABLE_ADDRESS_BOOK, ‘entry_state’, ’40’) . ‘ id=”state”‘);
if (zen_not_null(ENTRY_STATE_TEXT)) echo ‘&nbsp;<span class=”alert” id=”stText”>’ . ENTRY_STATE_TEXT . ‘</span>’;
if ($flag_show_pulldown_states == false) {
echo zen_draw_hidden_field(‘zone_id’, $zone_name, ‘ ‘);
}
?>
<br class=”clearBoth” />

 
———————————————————-
この前の部分、85行目のところを、ADD_FURIGANA の一文を追加。
最後の部分、110行目あたりに、<?php } ?> の一文を追加。

<?php if (ADD_FURIGANA == ‘true’) { ?>
<?php
if (ACCOUNT_STATE == ‘true’) {
$country_zones_pull_down = array();
~~~~~ 中略 ~~~~~
echo zen_draw_hidden_field(‘zone_id’, $zone_name, ‘ ‘);
}
?>
<?php } ?>
<br class=”clearBoth” />

これで、入力時にふりがながいる言語=日本語 の際には都道府県が表示され、それ以外(英語など)には表示されないこととなる。
あとは必須入力を解除するだけなので、管理画面-一般設定-最小値の設定 から、都道府県の最小値を0にしておく。

これでとりあえずは大丈夫。今回はめんどうだったので「ふりがな」あるなしで場合分けしたが、国IDやその他の値で場合分けすれば、日本語の海外在住者にも対応可能となる。

参考までに。

 

Zen Cart送料カスタマイズの注意点

この設定だと、料金自動計算などのある特定の状況下においてアカウント作成時にエラーが起こる場合がある。
もしも、アカウント作成時にエラーが発生する場合はこのカスタマイズでは対応できないので注意。

コメントを残す