Você tem que verificar se a classe existe, mas antes disso você deve esperar que todo o plugin seja carregado: ninguém pode assegurar que o seu plugin é carregado após o WooCommerce.
Para executar um código do plug-in quando todos os plug-ins forem carregados, conecte-se ao plugins_loaded
hook.
Esteja ciente de que você não pode usar este gancho em um tema, porque quando o tema carregar esse gancho já foi acionado.
add_action('plugins_loaded', 'my_coupon_init');
function my_coupon_init() {
if ( class_exists('WC_Coupon') ) {
$coupon = new WC_Coupon($some_code);
// some code here
} else {
add_action('admin_notices', 'wc_not_loaded');
}
}
function wc_not_loaded() {
printf(
'<div class="error"><p>%s</p></div>',
__('Sorry cannot create coupon because WooCommerce is not loaded')
);
}