web-dev-qa-db-fra.com

Supprimer l'action du plug-in de codes-barres woocommerce

j'essaie d'apporter des modifications au plug-in de codes-barres woocommerce. Je souhaite supprimer cette action du plugin class-woocommerce-order-barcodes.php:

class WooCommerce_Order_Barcodes {
...
public function __construct ( $file = '', $version = '1.0.0' ) {
...
add_action( 'woocommerce_order_details_after_order_table', array( $this, 'get_display_barcode' ), 1, 1 );
...
}
}

La raison pour laquelle je veux supprimer est parce que j'ai déjà l'extrait de code à barres à un autre endroit (à l'intérieur d'un DIV rangé dans mon modèle enfant order-detail.php) et que celui inséré par le plugin est automatiquement répété ci-dessous (voir image) Code à barres de l’ordre Woocommerce . Le code personnalisé à l'intérieur du modèle est celui-ci

<div class="barcode">
    <?php echo WC_Order_Barcodes()->display_barcode($order_id);?>
</div>

Bien sûr, si un supprime manuellement l'add_action de la classe de plugin, j'obtiens le résultat que je veux, mais je ne veux pas modifier les fichiers du plugin. Une idée?

Merci d'avance.

EDIT: l'article de ici n'a pas résolu mon problème, j'utilise le code ci-dessous et cela n'a pas résolu le problème = (

2
chenci

Vous devez accéder à la variable de classe pour supprimer une action ajoutée dans une classe.

function remove_default_order_barcode(){
   global $WooCommerce_Order_Barcodes ;
 remove_action( 'woocommerce_order_details_after_order_table', array( $WooCommerce_Order_Barcodes, 'get_display_barcode' ), 1, 1 );

}
 add_action('init','remove_default_order_barcode');

espérons que cela vous aidera!

3
Harry