Расширение класса администратора WooCommerce

#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. Ответ был дан перед вашим редактированием, я не мог понять, какую часть функции вы на самом деле хотели изменить.