Woocommerce扩展筛选器挂钩无法在functions.php

时间:2019-02-14 16:04:36

标签: wordpress woocommerce hook-woocommerce

我正在尝试修改过滤器“ woocommerce_bookings_booked_day_blocks”,该过滤器在以下类的wc-bookings-controller.php中的函数find_booked_day_blocks中具有返回行:

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 )

注意:我意识到编辑主题功能不是最佳实践。php,我正在尝试获取适用于woocommerce-bookings插件的代码段,并完全打算将其放置在代码段插件本身中,一旦确认此功能有效,就不在functions.php文件中!

谢谢您的协助!

0 个答案:

没有答案