如何移除WooBookings预订表单下拉框中的(XX Minutes)内容?
WooBookings移除时长下拉框的“(XX Minutes)”文本
问题场景
用WooBookings搭建预订系统,业务规则为1小时1个预订时段、最低预订2小时,需设置15分钟缓冲期。因缓冲期单位与时段类型绑定,只能将时段单位改为分钟(60分钟=1个时段),但前端下拉框内时长会显示“120分钟”“600分钟”这类格式,希望完全移除括号及其中的“XX Minutes”内容。已有一段移除资源选择框“(+$xx)”内容的代码,需通过类似正则替换实现需求。
实现代码
通过woocommerce_booking_form_fields钩子修改时长字段的选项文本,代码如下:
function remove_duration_minutes_label( $fields ) { if ( isset( $fields['wc_bookings_field_duration'] ) ) { // 精准匹配 "(数字 Minutes)" 格式的内容 $pattern = '#\(\d+ Minutes\)#'; foreach ( $fields['wc_bookings_field_duration']['options'] as $key => &$value ) { $fields['wc_bookings_field_duration']['options'][ $key ] = preg_replace( $pattern, '', $value ); } } return $fields; } add_filter( 'woocommerce_booking_form_fields', 'remove_duration_minutes_label' );
代码说明
- 钩子
woocommerce_booking_form_fields是WooBookings提供的表单字段修改入口,可直接干预预订表单的字段内容 - 正则表达式
#\(\d+ Minutes\)#专门匹配括号内的分钟标识,避免误改其他文本内容 - 将代码添加到主题的
functions.php文件或自定义插件中即可生效
内容的提问来源于stack exchange,提问作者Danielcomben
相关产品推荐
相关产品推荐

