Woocommerce Extension Filter Hook не работает в functions.php - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь изменить фильтр 'woocommerce_bookings_booked_day_blocks', в функции которого есть обратная строка find_booked_day_blocks в class-wc-bookings-controller.php:

return apply_filters( 'woocommerce_bookings_booked_day_blocks', $booked_day_blocks, $bookable_product );

Этот фильтр указан здесь: https://docs.woocommerce.com/document/bookings-action-and-filter-reference/

Даже базовый фильтр, который должен просто получить две переменные и вернуть их снова (если я делаю это правильно), не работает на functions.php, отладка wordpress включенаи отображает «Синтаксическая ошибка, ожидаемый конец файла»:

    add_filter( 'woocommerce_bookings_booked_day_blocks', 
    'wcmb_maxbookings');

    function wcmb_maxbookings($booked_day_blocks , $bookable_product) {
        //do something here
        return $booked_day_blocks;
    }

Этот код из фрагмента кода работает, если он находится в том же месте в этом файле:

    add_filter( 'woocommerce_page_title', 'woo_shop_page_title');

        function woo_shop_page_title( $page_title ) {

            if( 'Shop' == $page_title) {
                 return "My new title";
            }
        }

Кроме того, яв конце концов, я хочу добавить дополнительный код, как только он заработает, который включает переменные из функции woocommerce_bookings_booked_day_blocks, такие как $ check_date, которые не передаются в фильтре, но необходимы для моего кода.Нужно ли переопределять их в моей функции или они будут унаследованы через вызов фильтра?

Я не хочу переопределять их, так как они вычисляются через переменные в исходном вызове функции, которые я не могу передать снова, поскольку они вызываются рядом других функций woocommerce-bookings (например, в циклах foreach).где для конкретной даты месяца вызывается find_booked_day_blocks).Переопределение каждого из этих значений было бы невозможно для моего случая, я только хочу добавить код / ​​изменить следующую функцию:

public static function find_booked_day_blocks( $bookable_product, $min_date = 0, $max_date = 0, $default_date_format = 'Y-n-j', $timezone_offset = 0 )

Примечание: я понимаю, что это не такЛучшая практика для редактирования темы functions.php, я пытаюсь заставить фрагмент кода работать для плагина woocommerce-bookings и полностью намереваюсь поместить его в сам плагин фрагментов кода, а не в файл functions.php после проверкичто это работает!

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...