我正在开发一个WooCommerce插件,简而言之就是一个允许店铺经理为每个产品页面定义块“Magento样式”的插件。
实施例: 对于产品X,我希望相关产品块可见,对于产品Y,我只想显示加售块和特色产品块。
我正在尝试定义过滤器,以便主题开发人员可以挂钩一些自定义块。
我有WC_Block_Loader类
在构造函数方法中有这行代码:
$this->blocks = array()
$this->blocks = apply_filters('woocommerce_blocks_register', $this->blocks);
var_dump($this->blocks); //empty
在主题的functions.php中是一段代码:
function hook_my_custom_wc_blocks ( $blocks ) {
$blocks['WC_My_Custom_Block'] = get_template_directory().'/includes/blocks/block-my-custom-block.php';
return $blocks;
}
add_filter('woocommerce_blocks_register', 'hook_my_custom_blocks', 10, 1);
我认为问题在于我正在使用'plugins_loaded'动作启动插件,并且在此挂钩之后运行functions.php,但我不确定。
有什么建议吗?谢谢和愉快的节目。
答案 0 :(得分:0)
我解决了这个问题,只需将plugins_loaded挂钩更改为init挂钩即可。