Есть ли способ переопределить основные функции woocommerce в functions.php?
например, расположение файла в: wp-content / plugins / woocommerce / includes / class-wc-order-item-shipping.php
существует следующая общественная функция
public function set_method_title( $value ) { $this->set_prop( 'name', wc_clean($value) ); $this->set_prop( 'method_title', wc_clean($value) ); }
Как изменить это на это:
public function set_method_title( $value ) { $this->set_prop( 'name', $value ); $this->set_prop( 'method_title', $value ); }
Вы не можете заменить какую-либо функцию плагина на свой собственный код, если :
function_exists()
. Это делает функцию подключаемой , что означает, что если вы сначала определите ее, плагин не будет пытаться определить ее снова, и ваш будет использоваться. Эта функция не подключается. apply_filters()
, которая позволяет вам заменить значение. Это значение может быть результатом функции, и с помощью фильтра вы можете заменить вывод своим собственным. У конкретной функции, которую вы идентифицируете, также нет, поэтому ее нельзя заменить. Я бы подумал, что у WooCommerce, вероятно, есть веская причина для применения wc_clean()
к этим свойствам, и если бы это было не так, все могло бы работать не так, как ожидалось, или это может представлять угрозу безопасности.
Удаление этих функций очень плохое. Он готовит данные для входа в базу данных. Эти записи принимают только простой текст, поэтому функция wc_clean запускает функцию sanitize_text_field WordPress. Согласно документации WordPress , эта функция:
Даже если вы можете удалить их, они могут неправильно сохраняться в базе данных. Он также откроет вас для возможных атак, потому что это позволит ввести потенциально опасный код. Перед сохранением данных необходимо всегда очищать данные, а данные должны соответствовать настройкам столбца таблицы, чтобы избежать отсечения.