W C Бронирование - фильтр - передано несколько аргументов - PullRequest
2 голосов
/ 19 февраля 2020

Использование WooCoomerce вместе с Плагин WooCommerce . В их API Reference есть фильтр для изменения стоимости бронирования: woocommerce_bookings_calculated_booking_cost. Короче говоря, вот как это применяется в коде:

return apply_filters( 'woocommerce_bookings_calculated_booking_cost', $booking_cost, $product, $data );

Теперь я добавил следующий код, чтобы попытаться изменить цену:

function foobar_price_changer( $booking_cost, $product, $data ) {
   return $booking_cost;
}

add_filter( 'woocommerce_bookings_calculated_booking_cost', 'foobar_price_changer' );

Теперь, когда Я использую этот код, он выдает ошибку в моих журналах:

PHP Fatal error:  Uncaught ArgumentCountError: Too few arguments to function sbnb_modify_wc_bookings_price(), 1 passed in /mywppath/wp-includes/class-wp-hook.php on line 290 and exactly 3 expected in /mywppath/wp-content/themes/enfold-child/functions.php:155

Насколько я прочитал, 3 аргумента передаются обратным вызовам add_filter, но в моем случае он пропускает только один. В чем может быть проблема здесь?

1 Ответ

2 голосов
/ 19 февраля 2020

Попробуй вот так

function foobar_price_changer( $booking_cost, $product, $data ) {
   return $booking_cost;
}
add_filter( 'woocommerce_bookings_calculated_booking_cost', 'foobar_price_changer', 10, 3 ); // Where $priority is 10, $args is 3.
...