Comment forcer Gutenberg sur les Produits WooCommerce

Pourquoi?

WooCommerce désactive Gutenberg dans ses Produits (qui sont un Custom Post Type — désolée je suis trop paresseuse pour apprendre le terme franco).

Si, comme moi, vous appréciez Gutenberg et avez des clients et des sites web utilisant des modèles compatibles avec elle, et vous n’employez pas la vitrine pour vos magasins WooCommerce (ou peut-être vous faites mais alors je ne sais pas pourquoi vous êtes ici), vous voudrez substituer la désactivation de WooCommerce.

Comment faire?

En ce moment, mai 2019, ce que j’ai trouvé travaillé a été la réinitialisation de WooCommerce propres lignes de désactivation. Dans le plugin WooCommerce, j’ai trouvé ce qui suit

woocommerce\includes\class-wc-post-types.php

add_filter( 'gutenberg_can_edit_post_type', array( __CLASS__, 'gutenberg_can_edit_post_type' ), 10, 2 );
add_filter( 'use_block_editor_for_post_type', array( __CLASS__, 'gutenberg_can_edit_post_type' ), 10, 2 );

public static function gutenberg_can_edit_post_type( $can_edit, $post_type ) {
     return 'product' === $post_type ? false : $can_edit;
}

Basé sur cette découverte, j’ai créé les lignes suivantes et les mettre dans le fichierfunctions. php de mon thème:

my-child-theme\functions.php

add_filter( 'gutenberg_can_edit_post_type', 'mechamyu_override_gutenberg_can_edit_post_type', 100, 2 );
add_filter( 'use_block_editor_for_post_type', 'mechamyu_override_gutenberg_can_edit_post_type', 100, 2 );

function mechamyu_override_gutenberg_can_edit_post_type( $can_edit, $post_type ) {
     return 'product' === $post_type ? true : $can_edit;
}

Et ça a marché!

Note: vous pouvez probablement remarquer que j’ai mis la priorité à 100, et c’est simplement parce que je ne fait pas confiance au système. Je suppose qu’on pourrait mettre 11, et que ça fonctionnerait quand même.

Pourquoi, encore??

Quand j’ai fait des recherches pour forcer Gutenberg dans WooCommerce, je n’ai rien trouvé.

J’ai essayé de trouver cette solution en ligne pendant un certain temps avant de réaliser que de googler « force Gutenberg activer WooCommerce » ou toute variante ne serait retourner soit « Comment utiliser les blocs de produits WooCommerce » ou « Comment forcer à désactiver Gutenberg dans WordPress, » qui est plutôt loin de ce que je cherchais.

De plus, j’ai essayé de chercher « Enable custom post type Gutenberg » qui m’a donné quelques pistes (qui a corrigé d’autres questions que j’avais avec Gutenberg), mais je ne pouvais pas comprendre comment contourner les propriotés d’un Custom Post Type déjà défini. Et, même si j’ai réussi à modifier/ajouter à ce Post Type, ça n’aurait pas fonctionné, en raison des filtres que WooCommerce avait pour désactiver Gutenberg.

Quand j’ai finalement réussi à faire fonctionner Gutenberg, je me suis dit que je ne pouvais pas être la seule à vouloir ce résultat, non? Je ne pouvais pas être la seule développeure qui méprise vraiment les thèmes Storefront et qui a fait leur propre thèmes pour WooCommerce, non??

Bref, j’espère que cela puisse aider quelqu’un d’autre.

Si vous avez des questions, n’hésitez pas à laisser vos commentaires. Ça me fera plaisir d’essayer d’aider. Je vais ajouter bientôt tous les articles de blog et les liens de StackOverflow que j’ai lu avant d’avoir pris le problème dans mes propres mains.

À la prochaine!


About Karine Frenette-G

Talk WordPress to me.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *