👏

WordPressのプラグインAmeliaでデフォルトにない時間枠のステップを設定する

2024/05/31に公開

この記事ではWordPressのプラグインAmeliaにおいてデフォルトの予約時間枠以外に新しい時間枠を追加する方法について説明します。

Ameliaとは...

予約機能が備わった無料でも使用可能なプラグインです。
イベントやサービスを複数設定した時間ごとの予約などを受け付けることができる大変使いやすいプラグインです。
https://wpamelia.com/

デフォルトの状態

以下の環境で実行しています。

Version
WordPress 6.5.3
Amelia 7.2

WordPressの管理画面で「Amelia > 設定 > 基本設定」で基本設定のモーダルを開きます。
「デフォルトの時間枠のステップ」という項目でサービスの時間枠を設定することができるようになります。
例えば営業時間を10:00からにし、デフォルトの時間枠のステップを2時間に設定したとすると、サービスは10:00, 12:00, 14:00, 16:00...と区切られて続いていくことになります。[1]

しかし、ここでは決まった選択肢しか設けられておらず、ここにない時間枠は通常では設定できないことになっています。

Ameliaの基本設定
1分~8時間まで決まった時間しか指定できない

今回私は2時間15分刻みでサービスの時間を設定したかったため次の手順で時間枠を追加しました。

対処法

1. プラグインファイルにアクセスする

「プラグイン > プラグインファイルエディター」もしくは「ツール > プラグインファイルエディター」を開きます。
右上の「編集するプラグインを選択」からAmeliaを選択します。

プラグインファイルエディター

2. デフォルトの時間枠に新規追加する

public > js > chunks > amelia-booking-settings-******.jsファイルを開きます。
下記コードが書かれている箇所を探します。

amelia-booking-settings-******.js
timeSlotLength:[
    {label:this.$root.labels.min1,value:60},
    {label:this.$root.labels.min2,value:120},
    {label:this.$root.labels.min5,value:300},
    {label:this.$root.labels.min10,value:600},
    {label:this.$root.labels.min12,value:720},
    {label:this.$root.labels.min15,value:900},
    {label:this.$root.labels.min20,value:1200},
    {label:this.$root.labels.min30,value:1800},
    {label:this.$root.labels.min45,value:2700},
    {label:this.$root.labels.h1,value:3600},
    {label:this.$root.labels.h1min30,value:5400},
    {label:this.$root.labels.h2,value:7200},
    {label:this.$root.labels.h3,value:10800},
    {label:this.$root.labels.h4,value:14400},
    {label:this.$root.labels.h6,value:21600},
    {label:this.$root.labels.h8,value:28800}
]

このコードが先ほどのデフォルト時間枠のステップのプルダウンの選択肢になります。

上記に今回の目的の時間2時間15分を追加します。

追加したコードはこちら

amelia-booking-settings-******.js
+   {label:this.$root.labels.h2min15,value:8100}

3. 追加した時間の日本語を設定する

プラグインファイルエディターからsrc > Infrastructure > WP > Translations > LiteBackendStrings.phpを開き、次のように編集します。

LiteBackendStrings.php
    'h2'            => __('2h', 'wpamelia'),
+   'h2min15'       => __('2h 15min', 'wpamelia'),
    'h3'            => __('3h', 'wpamelia'),

次は2h 15minを日本語の「2時間15分」に変換します。
日本語への変換ファイルはプラグインファイルエディターでは編集できないため、FTPサーバーなどを通して編集します。
編集するファイルはlanguages > ja > wpamelia-ja.poになります。

wpamelia-ja.po
+   #: LiteBackendStrings.php:276
+   msgid "2h 15min"
+   msgstr "2時間15分"

これでできるかと思ったのですが、これだけでは日本語に翻訳されませんでした💦
どなたか翻訳の方法がお分かりでしたらコメントお願いします!

一応上記の方法で「デフォルト時間枠のステップ」に新しい時間枠を追加することはできます。

注意事項

プラグインのアップデート時など、編集したファイルが更新される場合があります。
プラグインのアップデートを停止するか、アップデート時に都度編集を行うかの対応が必要になりますのでご注意ください。

最後に

今回はAmeliaのデフォルトの時間枠の追加を設定してみました。
プラグインは工数少なく豊富な機能が使える反面、要件通りに思い通りに動かないところも多く歯がゆく感じるところが多々あります。
今回のようにさっとファイルの目的の箇所を見つけ修正できれば良いのですが、そうでないときの方が多いので簡単に自作でさっとシステムを作れるようになりたいものですね。

脚注
  1. General Settings for the Amelia WordPress Booking Plugin ↩︎

Discussion