#wordpress #woocommerce
#wordpress #woocommerce
Вопрос:
Я пытаюсь расширить класс WooCommerce, который относится к интерфейсу администратора WordPress. В настоящее время я пытаюсь изменить одну из функций внутри класса, расширив ее. Я пытаюсь это:
if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
add_action('plugins_loaded', "overwrite_woocommerce");
}
function overwrite_woocommerce() {
class Extend_WC_Admin_Permalink_Settings extends WC_Admin_Permalink_Settings{
public function settings_save() {
// Stuff that happens
}
}
}
Но после попытки использовать как плагины plugins_loaded, так и admin_init, ни один из них, похоже, не работает. Редактирование класса WooCommerce непосредственно в папке плагина позволяет достичь желаемого результата.
Я пытаюсь удалить эти строки, в частности, из функции:
if ( '/%product_cat%/' === trailingslashit( $product_base ) ) {
$product_base = '/' . _x( 'product', 'slug', 'woocommerce' ) . $product_base;
}
И эта функция решает с
update_option( 'woocommerce_permalinks', $permalinks );
В конечном счете я мог бы использовать хуки update_option, проблема в том, что WooCommerce использует «/product/» в качестве базы, если «/%product_cat%/» задан в качестве пользовательской базы URL, что не дает мне возможности узнать, было ли исходное значение «/%product_cat%/» для началас тем, как он установлен перед срабатыванием хука. Следовательно, почему я хочу расширить класс в первую очередь.
Ответ №1:
Я думаю, что вы не сможете этого сделать. Я не знаю, используете ли вы Prestashop или Joomla, когда перезапись файла core / modules является обычным делом, но в WP лучше всего проанализировать ту часть, которую вы пытаетесь перезаписать, и посмотреть, есть ли в ней какие-либо зацепки, чтобы заставить ее работать так, как вы хотите.
Если этого ответа недостаточно, опубликуйте ту часть, которую вы пытаетесь изменить, и мы постараемся сообщить вам, есть ли другой способ сделать это
Комментарии:
1. Это не отвечает на вопрос. Я знаю, что могу использовать хуки, и добавил исходный вопрос, указывающий, какие проблемы это может вызвать. Я ищу подходящий хук или способ расширения класса WC_Admin_Permalink_Settings. Я расширил множество других классов плагинов WordPress, но ни один из них не относится к административной части.
2. Ответ был дан перед вашим редактированием, я не мог понять, какую часть функции вы на самом деле хотели изменить.