Existe-t-il un moyen de remplacer les fonctions principales de woocommerce dans functions.php?
par exemple, l'emplacement du fichier dans: wp-content/plugins/woocommerce/includes/class-wc-order-item-shipping.php
il y a une fonction publique suivante
public function set_method_title( $value ) {
$this->set_prop( 'name', wc_clean($value) );
$this->set_prop( 'method_title', wc_clean($value) );
}
Comment le changer en ceci:
public function set_method_title( $value ) {
$this->set_prop( 'name', $value );
$this->set_prop( 'method_title', $value );
}
Vous ne pouvez pas remplacer n'importe quelle fonction de plugin par votre propre code, à moins que :
function_exists()
. Cela rend la fonction pluggable , ce qui signifie que si vous la définissez d’abord, le plugin ne tentera plus de la définir, et le vôtre sera utilisé. Cette fonction n'est pas connectable.apply_filters()
, qui vous permet de remplacer une valeur. Cette valeur peut être la sortie d'une fonction et, en utilisant le filtre, vous pouvez remplacer la sortie par la vôtre.La fonction spécifique que vous identifiez ne l’a pas non plus, elle ne peut donc pas être remplacée. Je pense que WooCommerce a probablement une très bonne raison d’appliquer wc_clean()
à ces propriétés, et s’il n’y avait pas lieu, les choses ne fonctionneraient peut-être pas comme prévu ou pourraient poser un risque pour la sécurité.
Supprimer ces fonctions est très mal avisé. Il prépare les données pour la saisie dans la base de données. Ces entrées n'acceptant que du texte simple, la fonction wc_clean exécute la fonction WordPress sanitize_text_field . Selon documentation WordPress , cette fonction:
Même si vous pouviez les supprimer, ils pourraient ne pas être enregistrés correctement dans la base de données. Cela vous ouvrirait également la porte à d'éventuelles attaques car cela permettrait d'injecter du code potentiellement dangereux. Les données doivent toujours être nettoyées avant de les enregistrer, et les données doivent correspondre aux paramètres de colonne du tableau pour éviter que certaines ne soient coupées.