我需要在我的插件中扩展WooCommerce类WC_COUPON,如下所示:

class Email_Coupon extends \WC_Coupon 
{
}

但我得到了一个错误:

PHP Fatal error:  Uncaught Error: Class 'WC_Coupon' not found in /var/www/vhosts/....../models/Email_Coupon.php:4

已安装并启用WooCommerce.我发现第三方插件在安装时使用相同的声明,不会触发此类错误.我需要以某种方式进口WooCommerce吗?

推荐答案

您必须在WooCommerce已经初始化的钩子中声明您的类,例如init钩子.

function register_email_coupon_class()
{
    class Email_Coupon extends \WC_Coupon 
    {
    }
}
add_action('init', 'register_email_coupon_class');

Php相关问答推荐

Postgrid Webhook不叫laravel

从WooCommerce Checkout Country Select2下拉列表中重新排序国家/地区

在Laravel中,如果我用session—put()存储一些信息,客户端浏览器是否可以使用这些信息?>

显示WooCommerce当前产品类别或标签的短代码

添加登录:需要app.yaml仍然允许所有拥有Google帐户的人访问

使用MySQLi使用连接字符串设置字符集

将一个按钮添加到WooCommerce产品的管理视图中,该按钮链接到一个自定义的WebHook,并在末尾附加产品ID

函数存储到变量中

防止在WordPress短代码中显示重复产品并请求代码更正

Shopware 6 插件:如何删除/迁移布尔配置到多选配置

如何使用 PHP 创建简化的 twig 替换?

Font Awesome 加载图标未显示在 WooCommerce 管理员列表中

使用 phpseclib 验证 RSA-PSS

在 PHP 8.2 中使用 PHP Spreadsheet 和 CodeIgniter 3 导出 Excel 时出错

WooCommerce订单支付页面上的附加支付订单按钮

php如何删除括号内的百分比值

如何使用动态变量定义 bind_result?

获取具有所有特定相关模型的模型

如何在 php/laravel 中获取元素在数组中的位置

如何在 Laravel 9 中判断异常是否可报告?