Смарт-купоны Woocommerce — remove_action() не работают

#php #woocommerce

#php #woocommerce

Вопрос:

Плагин смарт-купонов woocommerce генерирует купон в woocommerce_email_after_order_table . Я хотел бы удалить это из электронных писем заказа. Для меня это выглядит как простое действие, но оно не работает. Это действие из плагина.

 if ( ! class_exists( 'WC_SC_Display_Coupons' ) ) {
    class WC_SC_Display_Coupons {
        private static $instance = null;
        public static $endpoint;
        private function __construct() {
                add_action( 'woocommerce_email_after_order_table', array( $this, 'generated_coupon_details_after_order_table' ), 10, 3 );
        }
  

Это то, что я пробовал в functions.php:

 remove_action( 'woocommerce_email_after_order_table', array( 'WC_SC_Display_Coupons', 'generated_coupon_details_after_order_table' ), 10, 3 );
  

и

 remove_action( 'woocommerce_email_after_order_table', array( $GLOBALS['WC_SC_Display_Coupons'], 'generated_coupon_details_after_order_table' ), 10, 3 );
  

Комментарии:

1. Куда вы его добавляете?

2. @m4n0 functions.php

3. Я предполагаю, что add_action ограничено классом. Поэтому вы можете захотеть получить доступ к функции внутри класса с помощью WC_SC_Display_Coupons()-> . Я могу только дать вам подсказку. Вы также можете сделать класс доступным по всему миру. Дополнительная информация здесь: mekshq.com/remove-wordpress-action-filter-class

4. @m4n0I также попробовал установить $ GLOBALS внутри действия global $WC_SC_Display_Coupons; . Я обновил это в вопросе.

5. wordpress.stackexchange.com/a/311686/70936