MENU

料金プラン

機能一覧

デモ

ご利用の流れ

お役立ちコラム



イベントフォーム

操作ガイド

Amelia JavaScriptフック – イベントフォーム

フックの使用には一定レベルのプログラミングスキルが必要であり、プラグインで提供されるサポートには含まれていません。これらのフックは、新しいイベントリストフォーム([ameliaeventslistbooking])でのみトリガーされます。

パラメータ

  • success function: 成功時のコールバック関数。'beforeBooking' フックでのみ使用されます。
  • error function: エラー時のコールバック関数。'beforeBooking' フックでのみ使用されます。
  • data object: イベントと予約のデータオブジェクト。

フォームの読み込み完了

'ViewContent' フックは、フォームが読み込まれた後にトリガーされます。

window.ameliaActions = {
    ViewContent: function (success = null, error = null, data) {
        console.log('ViewContent HOOK')
        console.log(data)
        console.log('------------')
    }
}

イベントが選択されました

'SelectEvent' フックは、フォームでイベントが選択/変更されたときにトリガーされます。

window.ameliaActions = {
    SelectEvent: function (success = null, error = null, data) {
        console.log('SelectEvent HOOK')
        console.log(data)
        console.log('------------')
    }
}

イベントチケット

'EventTickets' フックは、イベントフォームでイベントチケットが表示されたときにトリガーされます。

window.ameliaActions = {
    EventTickets: function (success = null, error = null, data) {
        console.log('EventTickets HOOK')
        console.log(data)
        console.log('------------')
        let tickets = data.event.customTickets 
        
        // ===========================
        // 並べ替えオプション(いずれかを選択)
        // ===========================
        // --- 名前昇順で並べ替え ---
        // tickets = tickets.sort((a, b) => a.name.localeCompare(b.name, undefined, {sensitivity: 'base'}))
        // --- 名前降順で並べ替え ---
        // tickets = tickets.sort((a, b) => b.name.localeCompare(a.name, undefined, {sensitivity: 'base'}))
        // --- ID昇順で並べ替え ---
        // tickets = tickets.sort((a, b) => a.id - b.id)
        // --- ID降順で並べ替え ---
        // tickets = tickets.sort((a, b) => b.id - a.id)
        // --- 価格昇順で並べ替え ---
        // tickets = tickets.sort((a, b) => a.price - b.price)
        // --- 価格降順で並べ替え ---
        // tickets = tickets.sort((a, b) => b.price - a.price)
        
        data.setTickets(tickets)
    }
}

情報入力ステップの読み込み完了

'InitInfoStep' フックは、お客様情報入力ステップが読み込まれたときにトリガーされます。

window.ameliaActions = {
    InitInfoStep: function (success = null, error = null, data) {
        console.log('InitInfoStep HOOK')
        console.log(data)
        console.log('------------')
    }
}

情報入力ステップでのカスタム検証

'customValidation' フックは、お客様情報入力ステップが検証される際、決済ステップが読み込まれる前にトリガーされます。

window.ameliaActions = {
    customValidation: function (success = null, error = null, data) {
        console.log('customValidation HOOK')
        console.log('------------')
        console.log(data)
        const customValidator = (rule, value, callback) => {
            if (value.includes('SOME_REGEX')) {
                callback(new Error())
            } else {
                callback()
            }
        }
        // これはメール入力フィールドの例です
        data.rules.email.push({message: 'カスタムメッセージ', validator: customValidator})
        // これはカスタム項目の例です
        var customFieldId = 2
        data.rules['cf' + customFieldId].push({message: 'カスタムメッセージ', validator: customValidator})
    }
}

決済ステップの読み込み完了

'InitiateCheckout' フックは、決済ステップが読み込まれたときにトリガーされます。

window.ameliaActions = {
    InitiateCheckout: function (success = null, error = null, data) {
        console.log('InitiateCheckout HOOK')
        console.log(data)
        console.log('------------')
    }
}

「確定」ボタンがクリックされました

'beforeBooking' フックは、「確定」ボタンがクリックされた後、予約が完了する前にトリガーされます。このフックは現在、MollieおよびWooCommerceの決済では機能しません。

window.ameliaActions = {
    beforeBooking: function (success = null, error = null, data) {
        console.log('Before booking is created HOOK')
        console.log(data)
        console.log('------------')
        
        // 予約を完了するために success コールバックを呼び出す
        success()
    }
}

当日払い予約の完了

'Schedule' フックは、当日払い予約が完了した後、完了ステップが読み込まれる前にトリガーされます。

window.ameliaActions = {
    Schedule: function (success = null, error = null, data) {
        console.log('Schedule HOOK')
        console.log(data)
        console.log('------------')
    }
}

オンライン決済予約の完了

'Purchased' フックは、オンライン決済予約が完了した後、完了ステップが読み込まれる前にトリガーされます。

window.ameliaActions = {
    Purchased: function (success = null, error = null, data) {
        console.log('Purchased HOOK')
        console.log(data)
        console.log('------------')
    }
}