扩展WooCommerce的WC_Coupon类触发“类未找到”错误求助
解决WC_Coupon类找不到的问题
你遇到的Class 'WC_Coupon' not found错误,根本原因不是需要“导入”WooCommerce,而是你的代码加载时机太早——在WooCommerce核心类还没被初始化的时候,就尝试继承WC_Coupon了。第三方插件没问题,是因为它们的代码是在WooCommerce加载完成后才执行的。
解决方法很简单,把你的类定义代码挂到WooCommerce的初始化钩子上:
add_action('woocommerce_loaded', function() { class Email_Coupon extends \WC_Coupon { // 在这里添加你的自定义方法或属性 } });
或者也可以用plugins_loaded钩子,但要注意设置合适的优先级(确保晚于WooCommerce的加载优先级):
add_action('plugins_loaded', function() { class Email_Coupon extends \WC_Coupon { // 自定义内容 } }, 20); // 优先级设为20,比默认的10高,确保WooCommerce先加载
另外,如果你是通过单独文件引入这个类,不要在插件主文件的顶部直接require或include,而是把引入操作也放到上述钩子的回调里,确保WooCommerce加载完成后再引入你的类文件。
内容的提问来源于stack exchange,提问作者Vlado
相关产品推荐
相关产品推荐

