Documentation

Ajoutez ces extraits de code au fichier functions.php de votre thème enfant, ou utilisez une extension comme Code snippets. N’ajoutez pas de code directement au fichier functions.php de votre thème parent car il serait écrasé par les mises à jour. Personnalisez les textes en rouge comme bon vous semble.

Supprimer le calcul du prix

add_filter( 'easy_booking_calculate_booking_price', '__return_false' );

Supprimer le calcul du prix pour certains produits seulement

add_filter( 'easy_booking_calculate_booking_price', 'wceb_calculate_booking_price', 10, 2 );

function wceb_calculate_booking_price( $calc, $_product ) {

    if ( $_product->get_id() == 'ID' ) {
        $calc = true; // Set true to enable price calculation, or false to disable.
    }

    return $calc;

}

Prix préférentiel (réservation à l’avance)

Exemple d’une réduction de 5% si le client réserve au moins 10 jours à l’avance.

add_filter( 'easy_booking_one_date_price', 'wceb_early_bird_pricing', 40, 5 );
add_filter( 'easy_booking_two_dates_price', 'wceb_early_bird_pricing', 40, 5 );

function wceb_early_bird_pricing( $new_price, $product, $_product, $booking_data, $price_type ) {

    $current_date = time();
    $start_date = strtotime( $booking_data['start'] );

    // Get interval between current date and start date
    $interval = (int) ( $start_date - $current_date ) / 86400;

    if ( $interval >= 10 ) {
        $new_price *= 0.95;
    }

    return $new_price;

}

Ajouter des prix de réservation en masse

Exemple pour définir le prix des Samedi et Dimanche à 0 pour tous les produits. Ajoutez le code, sauvegardez les options d’Easy Booking, puis retirez le code.

function set_weekend_prices() {

    $prices = array(

        array(
            'type'        => 'day', // day, date or daterange
            'date_from'   => '6', // Int from 1 to 7 or yyyy-mm-dd
            'date_to'     => null, // null or yyyy-mm-dd
            'price'       => '0',
            'sale_price'  => null,
            'unit'        => 'single', // single or mutli
            'repeat'      => 'no' // yes or no
        ),
        array(
            'type'        => 'day',
            'date_from'   => '7',
            'date_to'     => null,
            'price'       => '0',
            'sale_price'  => null,
            'unit'        => 'single',
            'repeat'      => 'no'
        )

    );

    $args = array(
        'post_type'      => array( 'product', 'product_variation' ),
        'posts_per_page' => -1,
        'post_status'    => 'publish'
    );

    $query = new WP_Query( $args );

    while ( $query->have_posts() ) : $query->the_post();
        global $post;
        wceb_save_product_prices( $post->ID, $prices );
    endwhile;
}

add_action( 'easy_booking_save_settings', 'set_weekend_prices' );