概要
wpforms_datetime_time_intervals
フィルタは、WordPressのWPFormsプラグインで、日付と時間選択フィールドの時間間隔をカスタマイズするために使用されます。このフィルタを利用することで、デフォルトの時間オプションに加えて、特定の要件に応じた時間インターバルを追加することが可能になります。特に、以下のような機能を実装する際によく使われます:
- 特定の時間帯の設定
- 細かい時間選択の提供
- 営業時間に基づく時間の制限
- イベントや予約システムでのカスタム時間設定
- ユーザーの利便性向上に向けたUIの改善
- 特定の条件に基づいた時間オプションの動的変更
構文
add_filter( 'wpforms_datetime_time_intervals', 'your_custom_function', 10, 2 );
パラメータ
$time_intervals
(array) – デフォルトの時間インターバルの配列。$form_data
(array) – 現在のフォームのデータ。
戻り値
- カスタマイズされた時間インターバルの配列。
バージョン情報
- WPFormsバージョン: 1.0.0以降
- WordPressバージョン: 4.0以降
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード1: 特定の時間間隔を追加
このサンプルコードは、通常の時間インターバルに「特別な時間」を追加します。
add_filter( 'wpforms_datetime_time_intervals', function( $time_intervals ) {
$time_intervals[] = '10:00 AM';
return $time_intervals;
}, 10, 2 );
引用元: https://wpforms.com/docs/wpforms-datetime-time-intervals-filter/
サンプルコード2: 営業時間に基づく時間設定
このサンプルコードでは、営業時間外の時間を除外する設定を行います。
add_filter( 'wpforms_datetime_time_intervals', function( $time_intervals ) {
return array_filter( $time_intervals, function( $time ) {
// 営業時間を9 AM - 5 PMに設定
return ( strtotime( $time ) >= strtotime( '09:00 AM' ) && strtotime( $time ) <= strtotime( '05:00 PM' ) );
});
}, 10, 2 );
引用元: https://wpforms.com/docs/wpforms-datetime-time-intervals-filter/
サンプルコード3: カスタム時間の追加
特定の条件に基づいてカスタムの時間を追加する例です。
add_filter( 'wpforms_datetime_time_intervals', function( $time_intervals, $form_data ) {
if ( isset( $form_data['fields'][1]['value'] ) && $form_data['fields'][1]['value'] === 'option_value' ) {
$time_intervals[] = '2:00 PM';
}
return $time_intervals;
}, 10, 2 );
引用元: https://wpforms.com/docs/wpforms-datetime-time-intervals-filter/
サンプルコード4: 特定日付向けの時間設定
指定された日にだけ特定の時間を追加します。
add_filter( 'wpforms_datetime_time_intervals', function( $time_intervals, $form_data ) {
$selected_date = $form_data['fields'][0]['value']; // 日付フィールドを取得
if ( date('Y-m-d', strtotime($selected_date)) === '2023-12-25' ) {
$time_intervals[] = '12:00 PM';
}
return $time_intervals;
}, 10, 2 );
引用元: https://wpforms.com/docs/wpforms-datetime-time-intervals-filter/
サンプルコード5: 時間のインターバルを変更
デフォルトの時間間隔を30分間隔に変更する例です。
add_filter( 'wpforms_datetime_time_intervals', function( $time_intervals ) {
$new_intervals = [];
for ($i = 0; $i < 24; $i++) {
$new_intervals[] = sprintf('%02d:00', $i);
$new_intervals[] = sprintf('%02d:30', $i);
}
return $new_intervals;
}, 10, 2 );
引用元: https://wpforms.com/docs/wpforms-datetime-time-intervals-filter/