我正在尝试修改过滤器“ 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文件中!
谢谢您的协助!