自定义The Events Calendar RSVP表单 修改位置及后台同步方案咨询
解决方案
1. RSVP表单正确修改路径
- 不要直接修改插件核心文件,否则后续插件更新会覆盖你的自定义内容,优先使用官方推荐的模板覆盖机制
- 原始表单核心文件路径:
wp-content/plugins/event-tickets/src/views/tickets/rsvp/form.php - 自定义覆盖操作:在你当前使用的WordPress主题根目录下创建层级目录
tribe-events/tickets/rsvp/,将上述原始form.php文件复制到该目录下,后续修改这个主题内的副本即可生效
2. 新增下拉选择框示例
你可以在form.php的合适位置(比如姓名、邮箱字段下方)插入非动态下拉框代码,示例:
<div class="tribe-tickets__rsvp-form-field"> <label for="custom_attendee_type">参会者类型 <span class="required">*</span></label> <select id="custom_attendee_type" name="custom_attendee_type" required> <option value="">请选择</option> <option value="internal">内部员工</option> <option value="partner">合作伙伴</option> <option value="guest">外部访客</option> </select> </div>
3. 保存自定义字段值
需要在主题的functions.php中添加钩子逻辑,将用户提交的下拉值存储到参会者元数据中:
/** * 保存RSVP表单自定义下拉字段 */ add_action( 'tribe_tickets_rsvp_attendee_created', function( $attendee_id, $order_id, $ticket_id, $attendee_data ) { if ( isset( $_POST['custom_attendee_type'] ) ) { update_post_meta( $attendee_id, 'custom_attendee_type', sanitize_text_field( $_POST['custom_attendee_type'] ) ); } }, 10, 4 );
4. 后台Attendees页面显示自定义字段
同样在functions.php中添加钩子,在参会者列表中新增列展示下拉值:
/** * 参会者列表新增自定义字段列 */ add_filter( 'tribe_events_tickets_attendees_table_columns', function( $columns ) { $columns['custom_attendee_type'] = '参会者类型'; return $columns; } ); /** * 填充自定义字段列内容 */ add_action( 'tribe_events_tickets_attendees_table_column', function( $attendee, $column ) { if ( $column === 'custom_attendee_type' ) { echo get_post_meta( $attendee->ID, 'custom_attendee_type', true ); } }, 10, 2 );
内容的提问来源于stack exchange,提问作者Ka' de Xaeoc
相关产品推荐
相关产品推荐

