Drupal Commerceの住所関係は、日本風にはなっていません。
請求情報、配送情報の入力フォームや表示を日本的(郵便番号、都道府県、市区町村、住所、、、)にすには、どうしたら良いですか?
Drupal Commerceの請求情報、配送情報の住所を日本的(郵便番号、都道府県、市区町村、住所、、、)
OTHER FAQ
カテゴリ | Core Ver. | 関連モジュール | タイトル |
---|---|---|---|
ユーザ | 7.34 | ip_ranges | ログインアタック対策は? |
JavaScript | 7.34 | PHP | PHPからJavaScriptに変数値を渡したい |
コンテンツの作成 | 7.31 | CKEditor | CKEditorの新規生成ダイアログ内の初期値の変更 |
サイトの構築 | 7.31 | Views | ブロックViewsの絞り込みが表示されない |
言語 | 7.28 | vim | vimで全角が化けてしまう |
GoogleMaps | 7.28 | Javascript | IE9でGoogle Map APIを利用した住所情報所得がうまくゆかない |
アップデート | 7.28 | Views | Pagerが表示されなくなった |
アップデート | 7.28 | DisableMessages | モジュールのアップデートガイダンスを非表示にしたい |
ユーザの管理 | 7.27 | PHP | 新規ユーザーの追加ができない |
サイトの構築 | 7.27 | Context block | ページ別、カテゴリ別等でブロックの表示有無を簡単にするには |
チューニング | 7.26 | PHP | DrupalはNginxで動く? |
排他 | 7.26 | lock | Viewsモジュールの設定ページのような排他機能 |
コンテンツの作成 | 7.26 | PHP | ノード内の一部(フィールド)を変更する |
テーマ | 7.23 | hook | ページや状況によってテーマを切り替える |
ユーザ | 7.23 | User | 長い投稿者名の表示が切れる |
サイトの環境設定 | 7.23 | Image Style | 画像スタイルの使い方(Crop) |
サイトの構築 | 7.23 | Conditional fields | ノード編集フォームを動的にしたい |
コンテンツの作成 | 7.23 | maxlength | テキストフィールドの最大長のチェック&カウントダウン |
ユーザ | 7.23 | PHP | user_load_multiple()の復帰値 |
ブロック | 7.23 | 伸縮するfieldsetブロックを追加したい |
コメント
Drupal Commerceにおいて
パーマリンク Submitted by actbrain on 2015/01/09 14:23.
Drupal Commerceにおいて、住所を制御しているのはAddressfieldフィールドです。
Addressfieldには、入力フォームや表示に手を加えるAPIが用意されています。
サーバー内:/path/to//addressfield/addressfield.api.php
〜
8 /**
9 * Format generation callback.
10 *
11 * @param $format
12 * The address format being generated.
13 * @param $address
14 * The address this format is generated for.
15 * @param $context
16 * An associative array of context information pertaining to how the address
17 * format should be generated. If no mode is given, it will initialize to the
18 * default value. The remaining context keys should only be present when the
19 * address format is being generated for a field:
20 * - mode: either 'form' or 'render'; defaults to 'render'.
21 * - field: the field info array.
22 * - instance: the field instance array.
23 * - langcode: the langcode of the language the field is being rendered in.
24 * - delta: the delta value of the given address.
25 *
26 * @ingroup addressfield_format
27 */
28 function CALLBACK_addressfield_format_callback(&$format, $address, $context = array()) {
29 // No example.
30 }
〜
こちら、説明がないので解りにくいのですが、以下の方法で実現できます。
1./path/to/your-module/your-module.module内でAddressfieldプラグイン登録を行います。
〜
36 /**
37 * Implements hook_ctools_plugin_directory().
38 */
39 function or_commerce_ctools_plugin_directory($module, $plugin) {
40 if ($module == 'addressfield') {
41 return "$plugin/$module"; // この場合、'/your-module/format/addressfield'になります。
42 }
43 }
〜
2.プラグインファイルを用意します(/path/to/your-module/format/addressfield/japanese.inc)
〜
1 <?php
2
3 /**
4 * @file
5 * Generates Japanese format.
6 */
7
8 $plugin = array(
9 'title' => t('Ajustment Japanese format'),
10 'format callback' => 'your-module_format_japanese_ajustment',
11 'type' => 'name',
12 'weight' => 100,
13 );
14
15 /**
16 * Format callback.
17 *
18 * @see CALLBACK_addressfield_format_callback()
19 */
20 function your-module_format_japanese_ajustment(&$format, $address) {
21
22 // 住所:入力フォーム表示順調整
23 $weight = $format['country']['#weight'];
24 $format['locality_block']['#weight'] = ++$weight;
25 $format['street_block']['#weight'] = ++$weight;
26 $format['organisation_block']['#weight'] = ++$weight;
27 $format['name_block']['#weight'] = ++$weight;
28
29 // 住所:入力フォームサイズ調整
30 $width = 30; // とか
31 foreach (array('locality_block', 'street_block', 'organisation_block', 'name_block') as $n) {
32 foreach ($format[$n] as $nam => &$ele) {
33 if (strpos($nam, '#') !== 0) {
34 if (isset($ele['#size'])) {
35 $ele['#size'] = $width;
36 }
37 }
38 }
39 }
40
41 // 住所:並びを「郵便番号・都道府県・市区町村」に調整
42 $locality = $format['locality_block']['locality'];
43 unset($format['locality_block']['locality']);
44 $format['locality_block']['locality'] = $locality;
45
46 // 住所:「郵便番号・都道府県・市区町村」の横配置(locality-block)を解除・・・クラス名変更
47 foreach ($format['locality_block']['#attributes']['class'] as &$class) {
48 if ($class == 'locality-block') {
49 $class .= '-your-module';
50 }
51 elseif ($class == 'addressfield-container-inline') {
52 $class .= '-your-module';
53 }
54 }
55 }
〜
Or
パーマリンク Submitted by actbrain on 2015/10/08 00:41.
Or CommerceモジュールをインストールしてDrupal Commerceの住所情報を日本風にする手順を公開しました。
http://www.act-brain.co.jp/howto/override-commerce-install
Or Commerceモジュールは https://support.cms-pr.com/download-module からダウンロードできます。
ページ