php 从预订时间删除禁用日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 从预订时间删除禁用日期相关的知识,希望对你有一定的参考价值。

add_filter( 'ebdd_booking_duration', 'ebdd_remove_disabled_days_from_discount', 10, 3 );

function ebdd_remove_disabled_days_from_discount( $duration, $data, $id ) {

    $start = strtotime( $data['start'] );
    $end = strtotime( $data['end'] );

    $days = array();

    // Get all days and dates inside selected daterange
    for ( $date = $start; $date <= $end; $date = strtotime( "+1 day", $date ) ) {
        $day = date( 'w', $date );

        if ( $day === '0' ) {
            $day = '7';
        }

        $days[$day][] = $date;
    }

    // Get Easy Booking: Disable Dates settings
    $ebdd_settings = get_option('ebdida_settings');

    // Get disabled dates for all products
    $global_disabled_dates = (array) $ebdd_settings['ebdida_disabled_dates'];
    $product_disabled_dates = get_post_meta( $id, '_ebdida_disabled_dates', true );

    $disabled_dates = array_merge( $product_disabled_dates, $global_disabled_dates );

    if ( ! empty( $disabled_dates ) ) {

        foreach ( $disabled_dates as $disabled_date ) {

            if ( $disabled_date['type'] === 'ebdida_day' ) {

                $weekday = $disabled_date['disabled'];

                if ( array_key_exists( $weekday, $days ) ) {

                    foreach ( $days[$weekday] as $single_day ) {
                        $duration -= 1;
                    }
                    
                }

            }

        }

    }

    return $duration;
}

以上是关于php 从预订时间删除禁用日期的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jQuery datetimepicker 中禁用选定的日期和时间

php [轻松预订]从报告页面中删除“预订状态”列。

如何在 jQuery UI 日期选择器中禁用公共假期?

在 PHP 和 Mysql 的 jquery datepickers 中禁用给定范围内的日期

AntD React:在 DateRangePicker 中禁用特定日期的时间范围

选择第一个日期后禁用过去日期为datepicker