web-dev-qa-db-fra.com

HTML dans les paramètres WooCommerce

Je dois ajouter un bloc de texte par défaut à chaque description de produit (le même texte pour chaque produit) dans WooCommerce. J'ai donc créé un plugin simple qui ajoute un nouveau champ de paramètres en tant qu'éditeur de texte enrichi (wp_editor) dans l'onglet "WooCommerce> Paramètres> Catalogue".

Tout fonctionne bien et je peux entrer/enregistrer du texte brut, mais il supprime les balises HTML. Je crois que les tags sont supprimés par woocommerce_clean dans settings-save.php

if ( isset( $value['id'] ) && isset( $_POST[$value['id']] ) ) {
 update_option($value['id'], woocommerce_clean($_POST[$value['id']]));
} elseif( isset( $value['id'] ) ) {
 delete_option($value['id']);
}

Comment cela peut-il être corrigé sans changer le code principal?

1
Tomas

La fonction woocommerce_clean: return trim( strip_tags( stripslashes( $var ) ) ); va à peu près stipuler n'importe quel html. Vous pourrez peut-être utiliser les fonctions essentielles d'assainissement et d'échappement de WordPress, mais rien ne garantit que WooCommerce va réagir.

Jetez un coup d'œil à la validation des données sur le Codex WordPress pour connaître les autres options.

Le texte standard étant le même pour tous les produits, votre solution la plus simple peut être de copier le ou les modèles WooCommerce par défaut dans le répertoire de votre thème et de modifier le ou les fichiers en fonction des besoins. Cela semble excessif d'écrire une interface utilisateur pour cela.

Si vous souhaitez afficher ceci dans la description abrégée du produit, le fichier est alors ../wp-content/plugins/woocommerce/templates/single-product/short-description.php. Copiez ce fichier dans le répertoire de votre thème ../wp-content/themes/***your theme directory***/woocommerce/single-product/short-description.php

Une fois que vous avez copié, vous pouvez modifier le fichier sans craindre que vos modifications ne soient écrasées lors de la mise à jour de WooCommerce.

Les documents relatifs à la personnalisation des modèles se trouvent à documents WooCommerce .

NOTE: Si vous voulez cela dans l'onglet Description, vous pouvez utiliser le fichier ../wp-content/plugins/woocommerce/templates/single-product/tabs/description.php

2
Steve