Измените продолжительность, используя фильтр-хук в бронировании Woocommerce.

Как woocommerce_booking_form_get_posted_data Работа с крючками и как использовать ее для изменения длительности бронирования для каждого продукта уже в корзине? Не смог найти никакой информации об этом в интернете.

Можете ли вы сделать пересчет продолжительности на этом крючке? Когда это уволено? Будет ли изменение длительности на этом крючке пересчитывать цену товаров в корзине, а также после оформления заказа?
Любая информация об этом будет оценена!

0

Решение

Вот пример, который покажет вам, как вносить изменения в продолжительность бронирования в Woocommerce, используя woocommerce_booking_form_get_posted_data крючок фильтра:

add_filter( 'woocommerce_booking_form_get_posted_data', 'filter_booking_form_get_posted_data', 10, 3 );
function filter_booking_form_get_posted_data( $posted_data, $product, $duration_length ) {

## --- Settings :: New duration --- ##

$new_start_date ='2018-05-08 00:00:00'; // new start date
$new_duration = 6; // new duration
$duration_unit = __('day', 'woocommerce'); // (if needed)

## --- Calculations and changes --- ##

$day_time = 86400;
$new_start_time = strtotime($new_start_date);
$new_end_time   = $new_start_time + ( $day_time * $new_duration ) - 1;

$posted_data['_year']       = date('Y', $new_start_time);
$posted_data['_month']      = date('n', $new_start_time);
$posted_data['_day']        = date('j', $new_start_time);

$posted_data['_date']       = date('Y-n-j', $new_start_time);
$posted_data['date']        = date('M j, Y', $new_start_time);

$posted_data['_start_date'] = $new_start_time;
$posted_data['_end_date']   = $new_end_time;

$posted_data['_duration']   = $new_duration;
$posted_data['duration']   = sprintf( _n( '%s day', '%s days', $new_duration, 'woocommerce' ), $new_duration );

return $posted_data;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

Но это не изменит цену, так как это нужно сделать другим способом и другим способом.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]