【WordPress】EventManagerで予約項目を増やす方法
EventManagerというプラグインで予約するときの項目を増やす方法です。
wp-content/plugins/events-manager/em-functions.php
をテキストエディタで開いて下さい。
ここでは住所を追加したいと思います。
以下のコードを追記して下さい。
function bweb_add_custom_event_fields(){ ?> <p> <label for='user_company'><?php esc_html_e('住所', 'textdomain'); ?></label> <input type="text" name="user_company" id="user-company" class="input" value="<?php if(!empty($_REQUEST['user_company'])) echo esc_attr($_REQUEST['user_company']); ?>" /> </p> <?php } add_action('em_register_form','bweb_add_custom_event_fields'); function bweb_save_custom_event_fields (){ global $EM_Booking ; if( ! empty( $_REQUEST['user_company'] ) ){ $EM_Booking->booking_meta['registration']['user_company'] = wp_kses( $_REQUEST['user_company'], array() ); } } add_filter('em_booking_add','bweb_save_custom_event_fields'); function bweb_table_custom_event_fields($template, $EM_Bookings_Table){ $template['user_company'] = __('住所', 'textdomain'); return $template; } add_action('em_bookings_table_cols_template', 'bweb_table_custom_event_fields',10,2); function bweb_display_col_custom_event_fields($val, $col, $EM_Booking, $EM_Bookings_Table, $csv){ if( $col == 'user_company' ){ $val = $EM_Booking->get_person()->user_company; } return $val; } add_filter('em_bookings_table_rows_col','bweb_display_col_custom_event_fields', 10, 5);
上記コードにある二箇所の「住所」を好きな項目に変更してください。
閉じてアップロードすれば項目が追加されたはずです。
データベースにも追加されますので、管理画面の予約管理→歯車を押せば項目をドロップすればCMSに落とす際にも追加されます。
※追記です
自動返信メールで上記で追加した項目のプレースホルダーが必要かと思います。その場合は、
wp-content/plugins/events-manager/classes/em-booking.php
1029行目あたりからメールで使えるプレースホルダーの設定がありますので
case '#_RESCOMPANY' : //deprecated case '#_BOOKINGCOMPANY': $replace = $this->get_person()->user_company; break;
を追加してアップロードして下さい。
これでメール設定で#_BOOKINGCOMPANYが使えるようになります。